From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 13686 invoked by alias); 27 Aug 2003 17:36:42 -0000 Mailing-List: contact gdb-patches-help@sources.redhat.com; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sources.redhat.com Received: (qmail 13662 invoked from network); 27 Aug 2003 17:36:39 -0000 Received: from unknown (HELO nevyn.them.org) (66.93.172.17) by sources.redhat.com with SMTP; 27 Aug 2003 17:36:39 -0000 Received: from drow by nevyn.them.org with local (Exim 4.20 #1 (Debian)) id 19s4Dn-0005oN-9C; Wed, 27 Aug 2003 13:36:39 -0400 Date: Wed, 27 Aug 2003 17:36:00 -0000 From: Daniel Jacobowitz To: gcc-patches@gcc.gnu.org Cc: binutils@sources.redhat.com, gdb-patches@sources.redhat.com Subject: [libiberty] Update libiberty to autoconf 2.5x Message-ID: <20030827173639.GA20479@nevyn.them.org> Mail-Followup-To: gcc-patches@gcc.gnu.org, binutils@sources.redhat.com, gdb-patches@sources.redhat.com Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.5.1i X-SW-Source: 2003-08/txt/msg00482.txt.bz2 I pretty much knew that libiberty would be the hardest nut to crack. To make sure I was doing things the right way, I did it first. This patch depends on config/no-executables.m4, posted earlier today. It allows me to regenerate configure in libiberty using autoconf 2.57. The bulk of the change is a mechanical conversion to AC_LIBOBJ. The only interesting bits are: LIB_AC_PROG_CC was a copy of AC_PROG_CC from autoconf 2.13, which set ac_libiberty_warn_cflags and did not call AC_PROG_CC_WORKS. Obsoleted by GCC_NO_EXECUTABLES. AC_ISC_POSIX needs to be called before link tests, but does not need to be as early as it is; move it off into the branch where link tests are performed, so that we don't do it when we can't link. This patch was extensively tested, on the following builds: mips --build=i686-linux --host=mipsel-linux native --build=i686-linux --host=i686-linux native --build=i686-linux native --host=i686-linux native native --target=mipsel-linux --prefix=/big/fsf/installs/mipsel-linux --with-sysroot=/opt/hardhat/devkit/mips/fp_le/target mips --host=mipsel-linux mips --build=i686-linux --host=mipsel-linux --target=i686-linux cygwin-target --target=i386-pc-cygwin All were GCC builds except for cygwin-target, which was an uberbaum build. I used --enable-languages=c,c++, and built everything. For GCC that was "make -j4 all", for cygwin it was "make -j4 all-target-libstdc++-v3 && make -j4 all-target-winsup" - there's a missing build dependency in there that I never got around to fixing. The "--host=mipsel-linux" build failed, because toplevel configure inferred --build=mipsel-linux, and invoked libiberty's configure script accordingly; it bombed when it discovered we were cross compiling. This isn't a problem, since it didn't work right before. When everything else has moved to 2.5x we can make it work. Is this OK? -- Daniel Jacobowitz MontaVista Software Debian GNU/Linux Developer 2003-08-27 Daniel Jacobowitz * aclocal.m4: Include acx.m4 and no-executables.m4. (libiberty_AC_FUNC_STRNCMP): Use AC_LIBOBJ. (LIB_AC_PROG_CC): Remove. * configure.in: Update AC_PREREQ to 2.57. Use GCC_NO_EXECUTABLES. Use AC_PROG_CC and set ac_libiberty_warn_cflags instead of using LIB_AC_PROG_CC. Use AC_LIBOBJ. Call AC_ISC_POSIX later, only if performing link tests. * configure: Regenerated. Index: libiberty/aclocal.m4 =================================================================== RCS file: /big/fsf/rsync/gcc-cvs/gcc/libiberty/aclocal.m4,v retrieving revision 1.7 diff -u -p -r1.7 aclocal.m4 --- libiberty/aclocal.m4 7 May 2003 18:06:53 -0000 1.7 +++ libiberty/aclocal.m4 27 Aug 2003 01:01:07 -0000 @@ -1,4 +1,6 @@ sinclude(../config/accross.m4) +sinclude(../config/acx.m4) +sinclude(../config/no-executables.m4) dnl See whether strncmp reads past the end of its string parameters. dnl On some versions of SunOS4 at least, strncmp reads a word at a time @@ -71,7 +73,7 @@ main () ac_cv_func_strncmp_works=no) rm -f core core.* *.core]) if test $ac_cv_func_strncmp_works = no ; then - LIBOBJS="$LIBOBJS strncmp.o" + AC_LIBOBJ([strncmp]) fi ]) @@ -117,48 +119,6 @@ if test $libiberty_cv_decl_needed_$1 = y [Define if $1 is not declared in system header files.]) fi ])dnl - -# FIXME: We temporarily define our own version of AC_PROG_CC. This is -# copied from autoconf 2.12, but does not call AC_PROG_CC_WORKS. We -# are probably using a cross compiler, which will not be able to fully -# link an executable. This should really be fixed in autoconf -# itself. - -AC_DEFUN(LIB_AC_PROG_CC, -[AC_BEFORE([$0], [AC_PROG_CPP])dnl -AC_PROVIDE([AC_PROG_CC]) -AC_CHECK_PROG(CC, gcc, gcc) -if test -z "$CC"; then - AC_CHECK_PROG(CC, cc, cc, , , /usr/ucb/cc) - test -z "$CC" && AC_MSG_ERROR([no acceptable cc found in \$PATH]) -fi - -AC_PROG_CC_GNU - -if test $ac_cv_prog_gcc = yes; then - GCC=yes - ac_libiberty_warn_cflags='-W -Wall -Wtraditional -pedantic' -dnl Check whether -g works, even if CFLAGS is set, in case the package -dnl plays around with CFLAGS (such as to build both debugging and -dnl normal versions of a library), tasteless as that idea is. - ac_test_CFLAGS="${CFLAGS+set}" - ac_save_CFLAGS="$CFLAGS" - CFLAGS= - AC_PROG_CC_G - if test "$ac_test_CFLAGS" = set; then - CFLAGS="$ac_save_CFLAGS" - elif test $ac_cv_prog_cc_g = yes; then - CFLAGS="-g -O2" - else - CFLAGS="-O2" - fi -else - GCC= - ac_libiberty_warn_cflags= - test "${CFLAGS+set}" = set || CFLAGS="-g" -fi -AC_SUBST(ac_libiberty_warn_cflags) -]) # Work around a bug in autoheader. This can go away when we switch to # autoconf >2.50. The use of define instead of AC_DEFUN is Index: libiberty/configure.in =================================================================== RCS file: /big/fsf/rsync/gcc-cvs/gcc/libiberty/configure.in,v retrieving revision 1.70 diff -u -p -r1.70 configure.in --- libiberty/configure.in 19 Jun 2003 19:04:03 -0000 1.70 +++ libiberty/configure.in 27 Aug 2003 01:01:07 -0000 @@ -1,6 +1,6 @@ dnl Process this file with autoconf to produce a configure script -AC_PREREQ(2.13) +AC_PREREQ(2.57) AC_INIT(xmalloc.c) # This works around the fact that libtool configuration may change LD @@ -99,7 +99,13 @@ dnl to call AC_CHECK_PROG. AC_CHECK_TOOL(AR, ar) AC_CHECK_TOOL(RANLIB, ranlib, :) -LIB_AC_PROG_CC +GCC_NO_EXECUTABLES +AC_PROG_CC + +if test x$GCC = xyes; then + ac_libiberty_warn_cflags='-W -Wall -Wtraditional -pedantic' +fi +AC_SUBST(ac_libiberty_warn_cflags) AC_PROG_CC_C_O # autoconf is lame and doesn't give us any substitution variable for this. @@ -111,7 +117,6 @@ fi AC_SUBST(NO_MINUS_C_MINUS_O) AC_SUBST(OUTPUT_OPTION) -AC_ISC_POSIX AC_C_CONST AC_C_INLINE AC_C_BIGENDIAN_CROSS @@ -250,7 +255,12 @@ if test -n "${with_target_subdir}"; then # newlib provide and which ones we will be expected to provide. if test "x${with_newlib}" = "xyes"; then - LIBOBJS="asprintf.o basename.o insque.o random.o strdup.o vasprintf.o" + AC_LIBOBJ([asprintf]) + AC_LIBOBJ([basename]) + AC_LIBOBJ([insque]) + AC_LIBOBJ([random]) + AC_LIBOBJ([strdup]) + AC_LIBOBJ([vasprintf]) for f in $funcs; do case "$f" in @@ -318,8 +328,16 @@ if test -z "${setobjs}"; then # Handle VxWorks configuration specially, since on VxWorks the # libraries are actually on the target board, not in the file # system. - LIBOBJS="basename.o getpagesize.o insque.o random.o strcasecmp.o" - LIBOBJS="$LIBOBJS strncasecmp.o strdup.o vfork.o waitpid.o vasprintf.o" + AC_LIBOBJ([basename]) + AC_LIBOBJ([getpagesize]) + AC_LIBOBJ([insque]) + AC_LIBOBJ([random]) + AC_LIBOBJ([strcasecmp]) + AC_LIBOBJ([strncasecmp]) + AC_LIBOBJ([strdup]) + AC_LIBOBJ([vfork]) + AC_LIBOBJ([waitpid]) + AC_LIBOBJ([vasprintf]) for f in $funcs; do case "$f" in basename | getpagesize | insque | random | strcasecmp) @@ -366,7 +384,7 @@ if test -z "${setobjs}"; then if test -n "${with_target_subdir}" then funcs="`echo $funcs | sed -e 's/random//'`" - LIBOBJS="$LIBOBJS random.o" + AC_LIBOBJ([random]) vars="`echo $vars | sed -e 's/sys_siglist//'`" checkfuncs="`echo $checkfuncs | sed -e 's/strsignal//' -e 's/psignal//'`" fi @@ -402,12 +420,12 @@ if test -z "${setobjs}"; then # We haven't set the list of objects yet. Use the standard autoconf # tests. This will only work if the compiler works. - AC_PROG_CC_WORKS + AC_ISC_POSIX AC_REPLACE_FUNCS($funcs) libiberty_AC_FUNC_C_ALLOCA AC_FUNC_VFORK if test $ac_cv_func_vfork_works = no; then - LIBOBJS="$LIBOBJS vfork.o" + AC_LIBOBJ([vfork]) fi # We only need _doprnt if we might use it to implement v*printf. if test $ac_cv_func_vprintf != yes \