This is the mail archive of the
libc-alpha@sources.redhat.com
mailing list for the glibc project.
glibc-2.3.3 and gcc-3.4.3
- From: Edward Peschko <esp5 at pge dot com>
- To: libc-alpha at sources dot redhat dot com
- Cc: esp5 at pge dot com
- Date: Fri, 7 Jan 2005 17:03:05 -0800
- Subject: glibc-2.3.3 and gcc-3.4.3
hey all,
I'm having great difficulty in installing glibc-2.3.3 using gcc-3.4.3. In order to
even get as far as I have, I've needed to install the following patch (which
was originally for glibc-2.3.2) to use the -fno-unit-at-a-time flag
(there were problems with the assembly generation)
The patch gets around the assembly errors, but now I'm getting the following error:
CPP='/opt/tools/generic/test/i686/Linux/bin/gcc -E -x c-header' /opt/tools/poe/test/i686/Linux/tools/glibc-2.3.3/build/elf/ld-linux.so.2 --library-path /opt/tools/poe/test/i686/Linux/tools/glibc-2.3.3/build:/opt/tools/poe/test/i686/Linux/tools/glibc-2.3.3/build/math:/opt/tools/poe/test/i686/Linux/tools/glibc-2.3.3/build/elf:/opt/tools/poe/test/i686/Linux/tools/glibc-2.3.3/build/dlfcn:/opt/tools/poe/test/i686/Linux/tools/glibc-2.3.3/build/nss:/opt/tools/poe/test/i686/Linux/tools/glibc-2.3.3/build/nis:/opt/tools/poe/test/i686/Linux/tools/glibc-2.3.3/build/rt:/opt/tools/poe/test/i686/Linux/tools/glibc-2.3.3/build/resolv:/opt/tools/poe/test/i686/Linux/tools/glibc-2.3.3/build/crypt:/opt/tools/poe/test/i686/Linux/tools/glibc-2.3.3/build/linuxthreads /opt/tools/poe/test/i686/Linux/tools/glibc-2.3.3/build/sunrpc/rpcgen -Y ../scripts -c rpcsvc/bootparam_prot.x -o /opt/tools/poe/test/i686/Linux/tools/glibc-2.3.3/build/sunrpc/xbootparam_prot.T
Inconsistency detected by ld.so: dynamic-link.h: 184: elf_get_dynamic_info: Assertion `info[15] == ((void *)0)' failed!
gmake[2]: *** [/opt/tools/poe/test/i686/Linux/tools/glibc-2.3.3/build/sunrpc/xbootparam_prot.stmp] Error 127
Did I compile gcc incorrectly? Or is this a known incompatibility/bug between
the two projects? And what is the elf_get_dynamic_info assertion failing
telling me?
Thanks much for any help.
Ed
---
patch follows.
---
diff -rc glibc-2.3.3.bak/config.make.in glibc-2.3.3/config.make.in
*** glibc-2.3.3.bak/config.make.in Sun Jan 9 07:09:24 2005
--- glibc-2.3.3/config.make.in Sun Jan 9 11:03:40 2005
***************
*** 51,56 ****
--- 51,57 ----
old-glibc-headers = @old_glibc_headers@
unwind-find-fde = @libc_cv_gcc_unwind_find_fde@
have-initfini-array = @libc_cv_initfinit_array@
+ fno-unit-at-a-time = @fno_unit_at_a_time@
have-cpp-asm-debuginfo = @libc_cv_cpp_asm_debuginfo@
enable-check-abi = @enable_check_abi@
have-forced-unwind = @libc_cv_forced_unwind@
diff -rc glibc-2.3.3.bak/configure glibc-2.3.3/configure
*** glibc-2.3.3.bak/configure Sun Jan 9 07:09:18 2005
--- glibc-2.3.3/configure Sun Jan 9 11:06:44 2005
***************
*** 312,318 ****
# include <unistd.h>
#endif"
! ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS with_fp with_cvs enable_check_abi oldest_abi subdirs force_install all_warnings build build_cpu build_vendor build_os host host_cpu host_vendor host_os base_machine sysnames INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA LN_S CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC OBJEXT BUILD_CC cross_compiling CPP CXX CXXFLAGS ac_ct_CXX AR OBJDUMP RANLIB ac_ct_RANLIB MIG AS LD PWD_P MAKE MSGFMT MAKEINFO SED AUTOCONF CCVERSION SYSINCLUDES libc_cv_gcc_static_libgcc BASH libc_cv_have_bash2 KSH libc_cv_have_ksh AWK PERL INSTALL_INFO BISON VERSIONING libc_cv_asm_protected_directive libc_cv_initfinit_array libc_cv_z_nodelete libc_cv_z_nodlopen libc_cv_z_initfirst libc_cv_Bgroup ASFLAGS_config libc_cv_z_combreloc libc_cv_z_execstack libc_cv_fpie libc_cv_have_initfini libc_cv_cpp_asm_debuginfo no_whole_archive exceptions LIBGD EGREP sizeof_long_double libc_cv_gcc_unwind_find_fde uname_sysname uname_release uname_version old_glibc_headers libc_cv_slibdir libc_cv_localedir libc_cv_sysconfdir libc_cv_rootsbindir libc_cv_forced_unwind use_ldconfig ldd_rewrite_script gnu_ld gnu_as elf xcoff static shared pic_default profile omitfp bounded static_nss nopic_initfini DEFINES linux_doors mach_interface_list VERSION RELEASE LIBOBJS LTLIBOBJS'
ac_subst_files=''
# Initialize some variables set by options.
--- 312,318 ----
# include <unistd.h>
#endif"
! ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS with_fp with_cvs oldest_abi subdirs force_install all_warnings build build_cpu build_vendor build_os host host_cpu host_vendor host_os base_machine sysnames INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA LN_S PWD_P CC MAKE MSGFMT MAKEINFO SED AUTOCONF CFLAGS LDFLAGS CPPFLAGS ac_ct_CC OBJEXT BUILD_CC cross_compiling CPP AR OBJDUMP RANLIB ac_ct_RANLIB MIG AS LD CCVERSION SYSINCLUDES libc_cv_gcc_static_libgcc BASH libc_cv_have_bash2 KSH libc_cv_have_ksh AWK PERL INSTALL_INFO OLD_DEBIAN_INSTALL_INFO BISON VERSIONING libc_cv_asm_protected_directive libc_cv_initfinit_array libc_cv_z_nodelete libc_cv_z_nodlopen libc_cv_z_initfirst libc_cv_Bgroup libc_cv_z_combreloc fno_unit_at_a_time libc_cv_have_initfini no_whole_archive exceptions LIBGD EGREP sizeof_long_double libc_cv_gcc_unwind_find_fde uname_sysname uname_release uname_version old_glibc_headers libc_cv_slibdir libc_cv_localedir libc_cv_sysconfdir libc_cv_rootsbindir use_ldconfig ldd_rewrite_script gnu_ld gnu_as elf xcoff static shared pic_default profile omitfp bounded static_nss nopic_initfini DEFINES linux_doors mach_interface_list VERSION RELEASE LIBOBJS LTLIBOBJS'
ac_subst_files=''
# Initialize some variables set by options.
***************
*** 5449,5454 ****
--- 5449,5482 ----
fi
+ echo "$as_me:$LINENO: checking for -fno-unit-at-a-time" >&5
+ echo $ECHO_N "checking for -fno-unit-at-a-time... $ECHO_C" >&6
+ if test "${libc_cv_fno_unit_at_a_time+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+ cat > conftest.c <<EOF
+ int foo;
+ EOF
+ if { ac_try='${CC-cc} $CFLAGS $CPPFLAGS -S -fno-unit-at-a-time
+ conftest.c 1>&5'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }
+ then
+ libc_cv_fno_unit_at_a_time=yes
+ else
+ libc_cv_fno_unit_at_a_time=no
+ fi
+ rm -f conftest*
+ fi
+ echo "$as_me:$LINENO: result: $libc_cv_fno_unit_at_a_time" >&5
+ echo "${ECHO_T}$libc_cv_fno_unit_at_a_time" >&6
+ if test $libc_cv_fno_unit_at_a_time = yes; then
+ fno_unit_at_a_time=-fno-unit-at-a-time
+ fi
+
if test $elf != yes; then
echo "$as_me:$LINENO: checking for .init and .fini sections" >&5
echo $ECHO_N "checking for .init and .fini sections... $ECHO_C" >&6
***************
*** 7832,7837 ****
--- 7860,7866 ----
s,@libc_cv_Bgroup@,$libc_cv_Bgroup,;t t
s,@ASFLAGS_config@,$ASFLAGS_config,;t t
s,@libc_cv_z_combreloc@,$libc_cv_z_combreloc,;t t
+ s,@fno_unit_at_a_time@,$fno_unit_at_a_time,;t t
s,@libc_cv_z_execstack@,$libc_cv_z_execstack,;t t
s,@libc_cv_fpie@,$libc_cv_fpie,;t t
s,@libc_cv_have_initfini@,$libc_cv_have_initfini,;t t
diff -rc glibc-2.3.3.bak/csu/Makefile glibc-2.3.3/csu/Makefile
*** glibc-2.3.3.bak/csu/Makefile Sun Jan 9 07:08:17 2005
--- glibc-2.3.3/csu/Makefile Sun Jan 9 11:07:33 2005
***************
*** 104,110 ****
$(crtstuff:%=$(objpfx)%.o): %.o: %.S $(objpfx)defs.h
$(compile.S) -g0 $(ASFLAGS-.os) -o $@
! CFLAGS-initfini.s = -g0 -fPIC -fno-inline-functions
vpath initfini.c $(full_config_sysdirs)
--- 104,110 ----
$(crtstuff:%=$(objpfx)%.o): %.o: %.S $(objpfx)defs.h
$(compile.S) -g0 $(ASFLAGS-.os) -o $@
! CFLAGS-initfini.s = -g0 -fPIC -fno-inline-functions $(fno-unit-at-a-time)
vpath initfini.c $(full_config_sysdirs)
diff -rc glibc-2.3.3.bak/linuxthreads/Makefile glibc-2.3.3/linuxthreads/Makefile
*** glibc-2.3.3.bak/linuxthreads/Makefile Sun Jan 9 07:09:18 2005
--- glibc-2.3.3/linuxthreads/Makefile Sun Jan 9 11:09:00 2005
***************
*** 102,107 ****
--- 102,108 ----
omit-deps += crti crtn
CFLAGS-pt-initfini.s = -g0 -fPIC -fno-inline-functions
+ CFLAGS-pt-initfini.s = -g0 -fPIC -fno-inline-functions $(fno-unit-at-a-time)
endif
librt-tests = ex10 ex11
diff -rc glibc-2.3.3.bak/linuxthreads/sysdeps/unix/sysv/linux/mips/Makefile glibc-2.3.3/linuxthreads/sysdeps/unix/sysv/linux/mips/Makefile
*** glibc-2.3.3.bak/linuxthreads/sysdeps/unix/sysv/linux/mips/Makefile Sun Jan 9 07:09:19 2005
--- glibc-2.3.3/linuxthreads/sysdeps/unix/sysv/linux/mips/Makefile Sun Jan 9 11:10:41 2005
***************
*** 1,2 ****
--- 1,6 ----
# pull in __syscall_error routine
libpthread-routines += sysdep
+
+ ifeq ($(subdir),linuxthreads)
+ CFLAGS-pt-initfini.s = $(fno-unit-at-a-time)
+ endif
diff -rc glibc-2.3.3.bak/linuxthreads/sysdeps/unix/sysv/linux/x86_64/Makefile glibc-2.3.3/linuxthreads/sysdeps/unix/sysv/linux/x86_64/Makefile
*** glibc-2.3.3.bak/linuxthreads/sysdeps/unix/sysv/linux/x86_64/Makefile Sun Jan 9 07:09:21 2005
--- glibc-2.3.3/linuxthreads/sysdeps/unix/sysv/linux/x86_64/Makefile Sun Jan 9 11:10:05 2005
***************
*** 1,3 ****
ifeq ($(subdir),linuxthreads)
! CFLAGS-pt-initfini.s = -g0 -fPIC -fno-inline-functions -fno-asynchronous-unwind-tables
endif
--- 1,4 ----
ifeq ($(subdir),linuxthreads)
! CFLAGS-pt-initfini.s = -g0 -fPIC -fno-inline-functions \
! -fno-asynchronous-unwind-tables $(fno-unit-at-a-time)
endif
diff -rc glibc-2.3.3.bak/locale/Makefile glibc-2.3.3/locale/Makefile
*** glibc-2.3.3.bak/locale/Makefile Sun Jan 9 07:09:48 2005
--- glibc-2.3.3/locale/Makefile Sun Jan 9 11:08:03 2005
***************
*** 100,105 ****
--- 100,106 ----
CFLAGS-charmap.c = -Wno-write-strings -Wno-char-subscripts
CFLAGS-locfile.c = -Wno-write-strings -Wno-char-subscripts
CFLAGS-charmap-dir.c = -Wno-write-strings
+ CFLAGS-loadlocale.c = $(fno-unit-at-a-time)
# This makes sure -DNOT_IN_libc is passed for all these modules.
cpp-srcs-left := $(addsuffix .c,$(localedef-modules) $(localedef-aux) \
diff -rc glibc-2.3.3.bak/sysdeps/i386/dl-machine.h glibc-2.3.3/sysdeps/i386/dl-machine.h
*** glibc-2.3.3.bak/sysdeps/i386/dl-machine.h Sun Jan 9 07:09:25 2005
--- glibc-2.3.3/sysdeps/i386/dl-machine.h Sun Jan 9 07:13:57 2005
***************
*** 154,164 ****
destroys the passed register information. */
/* GKM FIXME: Fix trampoline to pass bounds so we can do
without the `__unbounded' qualifier. */
! static ElfW(Addr) fixup (struct link_map *__unbounded l, ElfW(Word) reloc_offset)
! __attribute__ ((regparm (2), unused));
! static ElfW(Addr) profile_fixup (struct link_map *l, ElfW(Word) reloc_offset,
ElfW(Addr) retaddr)
! __attribute__ ((regparm (3), unused));
# endif
/* This code is used in dl-runtime.c to call the `fixup' function
--- 154,164 ----
destroys the passed register information. */
/* GKM FIXME: Fix trampoline to pass bounds so we can do
without the `__unbounded' qualifier. */
! /* static ElfW(Addr) fixup (struct link_map *__unbounded l, ElfW(Word) reloc_offset)
! __attribute__ ((regparm (2), unused)); */
! /* static ElfW(Addr) profile_fixup (struct link_map *l, ElfW(Word) reloc_offset,
ElfW(Addr) retaddr)
! __attribute__ ((regparm (3), unused)); */
# endif
/* This code is used in dl-runtime.c to call the `fixup' function