This is the mail archive of the libc-alpha@sources.redhat.com mailing list for the glibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]