From 1424cffa4f87f8c4354dbebb0d865e713e75296d68e665f2d6f787ef36a3fa57 Mon Sep 17 00:00:00 2001 From: OBS User unknown Date: Fri, 18 Jul 2008 19:47:38 +0000 Subject: [PATCH] OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/autoconf?expand=0&rev=7 --- ac-c-bigendian.diff | 250 ++++++++++++++++++++++++++++++++++++ autoconf-el.changes | 6 + autoconf-el.spec | 5 +- autoconf.changes | 6 + autoconf.spec | 9 +- output-headers-prepare.diff | 62 +++++++++ 6 files changed, 336 insertions(+), 2 deletions(-) create mode 100644 ac-c-bigendian.diff create mode 100644 output-headers-prepare.diff diff --git a/ac-c-bigendian.diff b/ac-c-bigendian.diff new file mode 100644 index 0000000..2b7900b --- /dev/null +++ b/ac-c-bigendian.diff @@ -0,0 +1,250 @@ +--- doc/autoconf.texi ++++ doc/autoconf.texi +@@ -6739,7 +6739,7 @@ New programs need not use this macro. + + @anchor{AC_C_BIGENDIAN} + @defmac AC_C_BIGENDIAN (@ovar{action-if-true}, @ovar{action-if-false}, @ +- @ovar{action-if-unknown}, @ovar{action-if-universal}) ++ @ovar{action-if-unknown}) + @acindex{C_BIGENDIAN} + @cvindex WORDS_BIGENDIAN + @cindex Endianness +@@ -6753,26 +6753,11 @@ system header files. When cross-compili + grep'ed for some magic values. @var{action-if-unknown} is executed if + the latter case fails to determine the byte sex of the host system. + +-In some cases a single run of a compiler can generate code for multiple +-architectures. This can happen, for example, when generating Mac OS X +-universal binary files, which work on both PowerPC and Intel +-architectures. In this case, the different variants might be for +-different architectures whose endiannesses differ. If +-@command{configure} detects this, it executes @var{action-if-universal} +-instead of @var{action-if-unknown}. +- + The default for @var{action-if-true} is to define + @samp{WORDS_BIGENDIAN}. The default for @var{action-if-false} is to do +-nothing. The default for @var{action-if-unknown} is to +-abort configure and tell the installer how to bypass this test. +-And finally, the default for @var{action-if-universal} is to define +-@samp{WORDS_BIGENDIAN} or not, depending on the architecture that the +-code is being generated for. +- +-If you use this macro without specifying @var{action-if-universal}, you +-should also use @code{AC_CONFIG_HEADERS}; otherwise +-@samp{WORDS_BIGENDIAN} may be set incorrectly for Mac OS X universal +-binary files. ++nothing. And finally, the default for @var{action-if-unknown} is to ++abort configure and tell the installer which variable he should preset ++to bypass this test. + @end defmac + + @anchor{AC_C_CONST} +--- lib/autoconf/c.m4 ++++ lib/autoconf/c.m4 +@@ -1393,140 +1393,74 @@ fi + ])# AC_C_CHAR_UNSIGNED + + +-# AC_C_BIGENDIAN ([ACTION-IF-TRUE], [ACTION-IF-FALSE], [ACTION-IF-UNKNOWN], +-# [ACTION-IF-UNIVERSAL]) ++# AC_C_BIGENDIAN ([ACTION-IF-TRUE], [ACTION-IF-FALSE], [ACTION-IF-UNKNOWN]) + # ------------------------------------------------------------------------- + AC_DEFUN([AC_C_BIGENDIAN], +-[AH_VERBATIM([WORDS_BIGENDIAN], +-[/* Define WORDS_BIGENDIAN to 1 if your processor stores words with the most +- significant byte first (like Motorola and SPARC, unlike Intel and VAX). */ +-#if defined __BIG_ENDIAN__ +-# define WORDS_BIGENDIAN 1 +-#elif ! defined __LITTLE_ENDIAN__ +-# undef WORDS_BIGENDIAN +-#endif])dnl +- AC_CACHE_CHECK([whether byte ordering is bigendian], [ac_cv_c_bigendian], +- [ac_cv_c_bigendian=unknown +- m4_ifval(m4_ifdef([AH_HEADER], 1)[$4], +- [# See if __BIG_ENDIAN__ or __LITTLE_ENDIAN__ is defined. +- AC_COMPILE_IFELSE( +- [AC_LANG_SOURCE( +- [[#if ! (defined __BIG_ENDIAN__ || defined __LITTLE_ENDIAN__) +- neither is defined; +- #endif +- typedef int dummy; +- ]])], +- [ac_cv_c_bigendian=universal])], +- [AC_DIAGNOSE([obsolete], [AC_C_BIGENDIAN suggests AC_CONFIG_HEADERS])]) +- if test $ac_cv_c_bigendian = unknown; then +- # See if sys/param.h defines the BYTE_ORDER macro. +- AC_COMPILE_IFELSE( +- [AC_LANG_PROGRAM( +- [[#include +- #include +- ]], +- [[#if ! (defined BYTE_ORDER && defined BIG_ENDIAN \ +- && defined LITTLE_ENDIAN && BYTE_ORDER && BIG_ENDIAN \ +- && LITTLE_ENDIAN) +- bogus endian macros +- #endif +- ]])], +- [# It does; now see whether it defined to BIG_ENDIAN or not. +- AC_COMPILE_IFELSE( +- [AC_LANG_PROGRAM( +- [[#include +- #include +- ]], +- [[#if BYTE_ORDER != BIG_ENDIAN +- not big endian +- #endif +- ]])], +- [ac_cv_c_bigendian=yes], +- [ac_cv_c_bigendian=no])]) +- fi +- if test $ac_cv_c_bigendian = unknown; then +- # See if defines _LITTLE_ENDIAN or _BIG_ENDIAN (e.g., Solaris). +- AC_COMPILE_IFELSE( +- [AC_LANG_PROGRAM( +- [[#include +- ]], +- [[#if ! (defined _LITTLE_ENDIAN || defined _BIG_ENDIAN) +- bogus endian macros +- #endif +- ]])], +- [# It does; now see whether it defined to _BIG_ENDIAN or not. +- AC_COMPILE_IFELSE( +- [AC_LANG_PROGRAM( +- [[#include +- ]], +- [[#ifndef _BIG_ENDIAN +- not big endian +- #endif +- ]])], +- [ac_cv_c_bigendian=yes], +- [ac_cv_c_bigendian=no])]) +- fi +- if test $ac_cv_c_bigendian = unknown; then +- # Compile a test program. +- AC_RUN_IFELSE( +- [AC_LANG_PROGRAM([AC_INCLUDES_DEFAULT], +- [[ +- /* Are we little or big endian? From Harbison&Steele. */ +- union +- { +- long int l; +- char c[sizeof (long int)]; +- } u; +- u.l = 1; +- return u.c[sizeof (long int) - 1] == 1; +- ]])], +- [ac_cv_c_bigendian=no], +- [ac_cv_c_bigendian=yes], +- [# Try to guess by grepping values from an object file. +- AC_COMPILE_IFELSE( +- [AC_LANG_PROGRAM( +- [[short int ascii_mm[] = +- { 0x4249, 0x4765, 0x6E44, 0x6961, 0x6E53, 0x7953, 0 }; +- short int ascii_ii[] = +- { 0x694C, 0x5454, 0x656C, 0x6E45, 0x6944, 0x6E61, 0 }; +- int use_ascii (int i) { +- return ascii_mm[i] + ascii_ii[i]; +- } +- short int ebcdic_ii[] = +- { 0x89D3, 0xE3E3, 0x8593, 0x95C5, 0x89C4, 0x9581, 0 }; +- short int ebcdic_mm[] = +- { 0xC2C9, 0xC785, 0x95C4, 0x8981, 0x95E2, 0xA8E2, 0 }; +- int use_ebcdic (int i) { +- return ebcdic_mm[i] + ebcdic_ii[i]; +- } +- extern int foo; +- ]], +- [[return use_ascii (foo) == use_ebcdic (foo);]])], +- [if grep BIGenDianSyS conftest.$ac_objext >/dev/null; then +- ac_cv_c_bigendian=yes +- fi +- if grep LiTTleEnDian conftest.$ac_objext >/dev/null ; then +- if test "$ac_cv_c_bigendian" = unknown; then +- ac_cv_c_bigendian=no +- else +- # finding both strings is unlikely to happen, but who knows? +- ac_cv_c_bigendian=unknown +- fi +- fi])]) +- fi]) +- case $ac_cv_c_bigendian in #( +- yes) +- m4_default([$1], +- [AC_DEFINE([WORDS_BIGENDIAN], 1)]);; #( +- no) +- $2 ;; #( +- universal) +- $4 ;; #( +- *) +- m4_default([$3], +- [AC_MSG_ERROR([unknown endianness +- presetting ac_cv_c_bigendian=no (or yes) will help])]) ;; +- esac ++[AC_CACHE_CHECK(whether byte ordering is bigendian, ac_cv_c_bigendian, ++[# See if sys/param.h defines the BYTE_ORDER macro. ++AC_COMPILE_IFELSE([AC_LANG_PROGRAM([#include ++#include ++], ++[#if ! (defined BYTE_ORDER && defined BIG_ENDIAN && defined LITTLE_ENDIAN \ ++ && BYTE_ORDER && BIG_ENDIAN && LITTLE_ENDIAN) ++ bogus endian macros ++#endif ++])], ++[# It does; now see whether it defined to BIG_ENDIAN or not. ++AC_COMPILE_IFELSE([AC_LANG_PROGRAM([#include ++#include ++], [#if BYTE_ORDER != BIG_ENDIAN ++ not big endian ++#endif ++])], [ac_cv_c_bigendian=yes], [ac_cv_c_bigendian=no])], ++[# It does not; compile a test program. ++AC_RUN_IFELSE( ++[AC_LANG_PROGRAM([AC_INCLUDES_DEFAULT], [[ ++ /* Are we little or big endian? From Harbison&Steele. */ ++ union ++ { ++ long int l; ++ char c[sizeof (long int)]; ++ } u; ++ u.l = 1; ++ return u.c[sizeof (long int) - 1] == 1; ++]])], ++ [ac_cv_c_bigendian=no], ++ [ac_cv_c_bigendian=yes], ++[# try to guess the endianness by grepping values into an object file ++ ac_cv_c_bigendian=unknown ++ AC_COMPILE_IFELSE([AC_LANG_PROGRAM( ++[[short int ascii_mm[] = { 0x4249, 0x4765, 0x6E44, 0x6961, 0x6E53, 0x7953, 0 }; ++short int ascii_ii[] = { 0x694C, 0x5454, 0x656C, 0x6E45, 0x6944, 0x6E61, 0 }; ++void _ascii () { char *s = (char *) ascii_mm; s = (char *) ascii_ii; } ++short int ebcdic_ii[] = { 0x89D3, 0xE3E3, 0x8593, 0x95C5, 0x89C4, 0x9581, 0 }; ++short int ebcdic_mm[] = { 0xC2C9, 0xC785, 0x95C4, 0x8981, 0x95E2, 0xA8E2, 0 }; ++void _ebcdic () { char *s = (char *) ebcdic_mm; s = (char *) ebcdic_ii; }]], ++[[ _ascii (); _ebcdic (); ]])], ++[if grep BIGenDianSyS conftest.$ac_objext >/dev/null ; then ++ ac_cv_c_bigendian=yes ++fi ++if grep LiTTleEnDian conftest.$ac_objext >/dev/null ; then ++ if test "$ac_cv_c_bigendian" = unknown; then ++ ac_cv_c_bigendian=no ++ else ++ # finding both strings is unlikely to happen, but who knows? ++ ac_cv_c_bigendian=unknown ++ fi ++fi])])])]) ++case $ac_cv_c_bigendian in ++ yes) ++ m4_default([$1], ++ [AC_DEFINE([WORDS_BIGENDIAN], 1, ++ [Define to 1 if your processor stores words with the most significant ++ byte first (like Motorola and SPARC, unlike Intel and VAX).])]) ;; ++ no) ++ $2 ;; ++ *) ++ m4_default([$3], ++ [AC_MSG_ERROR([unknown endianness ++presetting ac_cv_c_bigendian=no (or yes) will help])]) ;; ++esac + ])# AC_C_BIGENDIAN + + diff --git a/autoconf-el.changes b/autoconf-el.changes index 64de601..5587123 100644 --- a/autoconf-el.changes +++ b/autoconf-el.changes @@ -1,3 +1,9 @@ +------------------------------------------------------------------- +Thu Jul 17 16:11:10 CEST 2008 - schwab@suse.de + +- Revert AC_C_BIGENDIAN change for now. +- Fix config header substitution. + ------------------------------------------------------------------- Wed Apr 9 10:32:41 CEST 2008 - schwab@suse.de diff --git a/autoconf-el.spec b/autoconf-el.spec index c8085a0..7b08b64 100644 --- a/autoconf-el.spec +++ b/autoconf-el.spec @@ -16,7 +16,7 @@ License: GPL v2 or later Group: Productivity/Editors/Emacs AutoReqProv: on Version: 2.62 -Release: 3 +Release: 9 Summary: Emacs mode for editing GNU Autoconf scripts Url: http://www.gnu.org/software/autoconf BuildRoot: %{_tmppath}/%{name}-%{version}-build @@ -70,6 +70,9 @@ rm -rf $RPM_BUILD_ROOT %{site_lisp}/*.elc %changelog +* Thu Jul 17 2008 schwab@suse.de +- Revert AC_C_BIGENDIAN change for now. +- Fix config header substitution. * Wed Apr 09 2008 schwab@suse.de - Update to autoconf 2.62. diff --git a/autoconf.changes b/autoconf.changes index 64de601..5587123 100644 --- a/autoconf.changes +++ b/autoconf.changes @@ -1,3 +1,9 @@ +------------------------------------------------------------------- +Thu Jul 17 16:11:10 CEST 2008 - schwab@suse.de + +- Revert AC_C_BIGENDIAN change for now. +- Fix config header substitution. + ------------------------------------------------------------------- Wed Apr 9 10:32:41 CEST 2008 - schwab@suse.de diff --git a/autoconf.spec b/autoconf.spec index 0212429..a071c6d 100644 --- a/autoconf.spec +++ b/autoconf.spec @@ -19,10 +19,12 @@ AutoReqProv: on Requires: m4 >= %(rpm -q --qf=%%{VERSION} m4) PreReq: %{install_info_prereq} Version: 2.62 -Release: 3 +Release: 6 Summary: A GNU Tool for Automatically Configuring Source Code Source: autoconf-%{version}.tar.bz2 Patch: autoreconf-ltdl.diff +Patch1: output-headers-prepare.diff +Patch2: ac-c-bigendian.diff BuildRoot: %{_tmppath}/%{name}-%{version}-build %description @@ -48,6 +50,8 @@ Authors: %prep %setup -q %patch +%patch1 -p1 +%patch2 %build %{suse_update_config -f config} @@ -80,6 +84,9 @@ rm -rf $RPM_BUILD_ROOT %doc %{_mandir}/man1/*.gz %changelog +* Thu Jul 17 2008 schwab@suse.de +- Revert AC_C_BIGENDIAN change for now. +- Fix config header substitution. * Wed Apr 09 2008 schwab@suse.de - Update to autoconf 2.62. diff --git a/output-headers-prepare.diff b/output-headers-prepare.diff new file mode 100644 index 0000000..8992025 --- /dev/null +++ b/output-headers-prepare.diff @@ -0,0 +1,62 @@ +commit c87512b5ae11de7a98ccc8c3e42d5df6f5039fe0 +Author: Ralf Wildenhues +Date: Tue Jun 17 08:42:14 2008 +0200 + + Fix '#undef variable /* comment */' transform in config headers. + + * lib/autoconf/status.m4 (_AC_OUTPUT_HEADERS_PREPARE): For + undefined preprocessor macros that are followed by a comment + in the header template, do not create nested comments in the + output. + * tests/torture.at (@%:@define header templates): Extend test. + * NEWS: Update. + Report by Karsten Hopp . + + Signed-off-by: Ralf Wildenhues + +diff --git a/lib/autoconf/status.m4 b/lib/autoconf/status.m4 +index 50be77b..d5ed323 100644 +--- a/lib/autoconf/status.m4 ++++ b/lib/autoconf/status.m4 +@@ -832,9 +832,9 @@ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 + } + split(mac1, mac2, "(") #) + macro = mac2[1] ++ prefix = substr(line, 1, index(line, defundef) - 1) + if (D_is_set[macro]) { + # Preserve the white space surrounding the "#". +- prefix = substr(line, 1, index(line, defundef) - 1) + print prefix "define", macro P[macro] D[macro] + next + } else { +@@ -842,7 +842,7 @@ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 + # in the case of _POSIX_SOURCE, which is predefined and required + # on some systems where configure will not decide to define it. + if (defundef == "undef") { +- print "/*", line, "*/" ++ print "/*", prefix defundef, macro, "*/" + next + } + } +diff --git a/tests/torture.at b/tests/torture.at +index c37daba..92f8d5b 100644 +--- a/tests/torture.at ++++ b/tests/torture.at +@@ -497,6 +497,8 @@ AT_DATA([config.hin], + #define str(define) \ + #define + #define stringify(arg) str(arg) ++#undef aaa /* with comments */ ++#undef not_substed /* with comments */ + ]]) + + AT_CHECK_AUTOCONF +@@ -527,6 +529,8 @@ ARG1 + #define str(define) \ + #define + #define stringify(arg) str(arg) ++#define aaa AAA ++/* #undef not_substed */ + ]]) + AT_CHECK([cat config.h], 0, expout) +