--- Begin Message ---
Subject: |
Re: 3-bigendian-tests.patch |
Date: |
12 Aug 2001 17:24:53 +0200 |
User-agent: |
Gnus/5.0808 (Gnus v5.8.8) Emacs/20.7 |
>>> "Akim" == Akim Demaille <address@hidden> writes:
[...]
Akim> BTW, are you sure it works? My memory (and the sources
Akim> :) seem to reveal that at-* files are considered as by
Akim> products of the test suite, hence are irrelevant for
Akim> AC_STATE_SAVE.
Damned!, you're right. I did all my tests with files named
`bendian' and `lendian' (I checked it can fail in these
conditions), and then renamed the files as `at-bendian' and
`at-lendian' because I saw other places using this naming
scheme...
I'm checking in the fix below, which performs explicit tests as
you suggested.
Akim> In fact, if you intend to change anything about this
Akim> issue, I'd like to ask you to move state- into
Akim> at-state-something (by be sure to remain distinguishible
Akim> (don't know if this is actual English, but you understand
Akim> me :) in 8.3).
Sorry I won't have the time for that today (BTW, `at-state'
already uses 8 characters, it seems ugly to abbreviate
`-something-somewhen' in a three letter extension).
--
Alexandre Duret-Lutz
Index: ChangeLog
===================================================================
RCS file: /cvs/autoconf/ChangeLog,v
retrieving revision 1.1558
diff -u -r1.1558 ChangeLog
--- ChangeLog 2001/08/12 13:17:35 1.1558
+++ ChangeLog 2001/08/12 14:56:37
@@ -1,3 +1,8 @@
+2001-08-12 Alexandre Duret-Lutz <address@hidden>
+
+ * tests/semantics.at (AC_C_BIGENDIAN): Explicitelly save and load
+ endianness for comparison instead of relying on AT_CHECK_ENV.
+
2001-08-11 Paul Eggert <address@hidden>
* doc/autoconf.texi, doc/install.texi: Add a copyright notice
Index: tests/semantics.at
===================================================================
RCS file: /cvs/autoconf/tests/semantics.at,v
retrieving revision 1.26
diff -u -r1.26 semantics.at
--- tests/semantics.at 2001/08/12 13:05:12 1.26
+++ tests/semantics.at 2001/08/12 14:56:38
@@ -329,38 +329,33 @@
AT_SETUP(AC_C_BIGENDIAN)
# Make sure that AC_C_BIGENDIAN behave the same whether we are
-# cross-compiling or not. Actually, the tests are differents in both
-# case, and the cross-compiling case is allowed to fail (BTW, it might
-# be interesting to replace [:] by [touch at-uendian] to cach systems for
-# which AC_C_BIGENDIAN does fail, just to know if such a system
-# exists.)
+# cross-compiling or not.
-# The following is an manually-expansed call to _AT_CHECK_AC_MACRO
-# with the call to AC_CHECK_ENV removed. We don't want AC_CHECK_ENV
-# because we are creating a new file (at-bendian or at-lendian)
-# as a side effect of AT_CHECK_CONFIGURE.
-AT_CONFIGURE_AC([AC_C_BIGENDIAN([touch at-bendian],[touch at-lendian],[:])])
-AT_CHECK_AUTOCONF
-AT_CHECK_AUTOHEADER
-AT_CHECK_CONFIGURE
+_AT_CHECK_AC_MACRO(
+ [AC_C_BIGENDIAN([ac_endian=big],[ac_endian=little],[ac_endian=unknown])
+ echo $ac_endian > at-endian
+])
rm -f config.hin # So that next run of autoheader is quiet.
-# The last run of AC_CHECK_CONFIGURE has created at-bendian or at-lendian.
-# Now we'll perform the same in cross-compiling mode, and make sure
-# that no new file is created (if a new file is created it means
-# AC_C_BIGENDIAN computed a different result). Checking for a new
-# file is done using AC_CHECK_ENV which is called by _AT_CHECK_AC_MACRO.
_AT_CHECK_AC_MACRO(
[cross_compiling=yes
- AC_C_BIGENDIAN([touch at-bendian],[touch at-lendian],[:])])
-
+ AC_C_BIGENDIAN([ac_endian=big],[ac_endian=little],[ac_endian=unknown])
+ ac_prevendian=`cat at-endian`
+ # Chech we have found the same result as in the previous run
+ # or unknown (because the cross-compiling check is allowed to fail;
+ # although it might be interesting to suppress this comparison, just
+ # to know on which system it fails if it ever does).
+ if test $ac_endian != $ac_prevendian -a $ac_endian != unknow; then
+ AC_MSG_ERROR([unexpected endianness: first run found '$ac_prevendian' but
second run found '$ac_endian'])
+ fi
+])
# Make sure AC_C_BIGENDIAN with no argument will define WORDS_BIGENDIAN
AT_CONFIGURE_AC([AC_C_BIGENDIAN])
AT_CHECK_AUTOHEADER
AT_CHECK([grep WORDS_BIGENDIAN config.hin], [], [ignore])
-AT_CLEANUP(at-bendian at-lendian)
+AT_CLEANUP(at-endian)
# ------------------------------ #
# AC_PATH_PROG & AC_PATH_PROGS. #
--- End Message ---