2002-03-15  H.J. Lu  <hjl@gnu.org>
            Ulrich Drepper  <drepper@redhat.com>

	* configure.in: Check for availability of
	init_array/fini_array/preinit_array handling in binutils.
	* config.h.in (HAVE_INITFINI_ARRAY): New macro.
	* config.make.in (have-initfini-array): New variable.
This commit is contained in:
Ulrich Drepper 2002-03-16 02:47:08 +00:00
parent c06b947ef1
commit 5241882ce2
4 changed files with 42 additions and 0 deletions

View File

@ -1,3 +1,11 @@
2002-03-15 H.J. Lu <hjl@gnu.org>
Ulrich Drepper <drepper@redhat.com>
* configure.in: Check for availability of
init_array/fini_array/preinit_array handling in binutils.
* config.h.in (HAVE_INITFINI_ARRAY): New macro.
* config.make.in (have-initfini-array): New variable.
2002-03-15 Ulrich Drepper <drepper@redhat.com>
* stdio-common/tst-printf.c (main): Comment out one test which

View File

@ -111,6 +111,10 @@
/* Define if binutils support TLS handling. */
#undef HAVE_TLS_SUPPORT
/* Define if the linker supports .preinit_array/.init_array/.fini_array
sections. */
#undef HAVE_INITFINI_ARRAY
/* Defined to some form of __attribute__ ((...)) if the compiler supports
a different, more efficient calling convention. */

View File

@ -48,6 +48,7 @@ with-fp = @with_fp@
with-cvs = @with_cvs@
old-glibc-headers = @old_glibc_headers@
unwind-find-fde = @libc_cv_gcc_unwind_find_fde@
have-initfini-array = @libc_cv_initfinit_array@
static-libgcc = @libc_cv_gcc_static_libgcc@

View File

@ -1039,6 +1039,35 @@ EOF
fi
fi
AC_CACHE_CHECK(for .preinit_array/.init_array/.fini_array support,
libc_cv_initfinit_array, [dnl
cat > conftest.c <<EOF
int _start (void) { return 0; }
int __start (void) { return 0; }
int foo (void) { return 1; }
#ifdef __i386__
asm (".section .init_array\n\t.long foo");
#else
# error "define appropriately for the architecture"
#endif
EOF
if AC_TRY_COMMAND([${CC-cc} -o conftest conftest.c
-static -nostartfiles -nostdlib 1>&AC_FD_CC])
then
if readelf -S conftest | fgrep INIT_ARRAY > /dev/null; then
libc_cv_initfinit_array=yes
else
libc_cv_initfinit_array=no
fi
else
libc_cv_initfinit_array=no
fi
rm -f conftest*])
AC_SUBST(libc_cv_initfinit_array)
if test $libc_cv_initfinit_array = yes; then
AC_DEFINE(HAVE_INITFINI_ARRAY)
fi
AC_CACHE_CHECK(for -z nodelete option,
libc_cv_z_nodelete, [dnl
cat > conftest.c <<EOF