autoconf-patches
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: 3-bigendian-tests.patch


From: Akim Demaille
Subject: Re: 3-bigendian-tests.patch
Date: 13 Aug 2001 14:56:11 +0200
User-agent: Gnus/5.0808 (Gnus v5.8.8) XEmacs/21.4 (Academic Rigor)

I believe Alexandre meant to keep the CC.

--- 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 ---

reply via email to

[Prev in Thread] Current Thread [Next in Thread]