[PATCH] Export _Unwind_Find_FDE from glibc (GCC 3.0.1 vs GLIBC 2.2.4 solution part)
Franz Sirl
Franz.Sirl-kernel@lauterbach.com
Sat Jul 21 11:45:00 GMT 2001
On Thursday 19 July 2001 13:10, Jakub Jelinek wrote:
> Hi!
>
> This patch incorporates Mark's suggestions.
> It depends on http://gcc.gnu.org/ml/gcc-patches/2001-07/msg01309.html
> beeing commited to gcc first.
>
> 2001-07-19 Jakub Jelinek <jakub@redhat.com>
>
> * sysdeps/unix/sysv/linux/ia64/Makefile (sysdep-LDFLAGS): Append
> -static-libgcc.
> * sysdeps/unix/sysv/linux/arm/Makefile: Likewise.
> (sysdep_routines, shared-only-routines): Add framestate if ELF,
> shared and GCC 3.0+.
> * sysdeps/unix/sysv/linux/alpha/Makefile: Likewise.
> * sysdeps/unix/sysv/linux/i386/Makefile: Likewise.
> * sysdeps/unix/sysv/linux/m68k/Makefile: Likewise.
> * sysdeps/unix/sysv/linux/mips/Makefile: Likewise.
> * sysdeps/unix/sysv/linux/powerpc/Makefile: Likewise.
> * sysdeps/unix/sysv/linux/s390/s390-32/Makefile: Likewise.
> * sysdeps/unix/sysv/linux/sparc/Makefile: Likewise.
> * sysdeps/mach/hurd/i386/Makefile: Likewise.
> * sysdeps/unix/sysv/linux/arm/Versions (__register_frame_info_bases,
> __register_frame_info_table_bases, __deregister_frame_info_bases,
> _Unwind_Find_FDE): Export at GCC_3.0.
> * sysdeps/unix/sysv/linux/alpha/Versions: Likewise.
> * sysdeps/unix/sysv/linux/i386/Versions: Likewise.
> * sysdeps/unix/sysv/linux/m68k/Versions: Likewise.
> * sysdeps/unix/sysv/linux/mips/Versions: Likewise.
> * sysdeps/unix/sysv/linux/powerpc/Versions: Likewise.
> * sysdeps/unix/sysv/linux/s390/s390-32/Versions: Likewise.
> * sysdeps/unix/sysv/linux/sparc/sparc32/Versions: Likewise.
> * sysdeps/unix/sysv/linux/sparc/sparc64/Versions: Likewise.
> * sysdeps/mach/hurd/i386/Versions: Likewise.
> * Versions.def (libc): Add GCC_3.0.
> * configure.in: Check for _Unwind_Find_FDE.
> * configure: Rebuilt.
> * config.make.in (unwind-find-fde): New.
> * config.h.in (HAVE_UNWIND_FIND_FDE): New.
> * sysdeps/generic/framestate.c: New.
Jakub,
I've tried this patch with current gcc-3.0.1cvs but glibc compiilation on
powerpc bombs out like this:
gcc -shared -Wl,-O1 -static-libgcc -Wl,-dynamic-linker=/lib/ld.so.1
-B/cvsx/rawhide/BUILD/glibc-2.2.3/build-ppc-linux/csu/
-Wl,--version-script=/cvsx/rawhide/BUILD/glibc-2.2.3/build-ppc-linux/libc.map
-Wl,-soname=libc.so.6 -nostdlib -nostartfiles -e __libc_main -u
__register_frame -L/cvsx/rawhide/BUILD/glibc-2.2.3/build-ppc-linux
-L/cvsx/rawhide/BUILD/glibc-2.2.3/build-ppc-linux/math
-L/cvsx/rawhide/BUILD/glibc-2.2.3/build-ppc-linux/elf
-L/cvsx/rawhide/BUILD/glibc-2.2.3/build-ppc-linux/dlfcn
-L/cvsx/rawhide/BUILD/glibc-2.2.3/build-ppc-linux/nss
-L/cvsx/rawhide/BUILD/glibc-2.2.3/build-ppc-linux/nis
-L/cvsx/rawhide/BUILD/glibc-2.2.3/build-ppc-linux/rt
-L/cvsx/rawhide/BUILD/glibc-2.2.3/build-ppc-linux/resolv
-L/cvsx/rawhide/BUILD/glibc-2.2.3/build-ppc-linux/crypt
-L/cvsx/rawhide/BUILD/glibc-2.2.3/build-ppc-linux/linuxthreads
-Wl,-rpath-link=/cvsx/rawhide/BUILD/glibc-2.2.3/build-ppc-linux:/cvsx/rawhide/BUILD/glibc-2.2.3/build-ppc-linux/math:/cvsx/rawhide/BUILD/glibc-2.2.3/build-ppc-linux/elf:/cvsx/rawhide/BUILD/glibc-2.2.3/build-ppc-linux/dlfcn:/cvsx/rawhide/BUILD/glibc-2.2.3/build-ppc-linux/nss:/cvsx/rawhide/BUILD/glibc-2.2.3/build-ppc-linux/nis:/cvsx/rawhide/BUILD/glibc-2.2.3/build-ppc-linux/rt:/cvsx/rawhide/BUILD/glibc-2.2.3/build-ppc-linux/resolv:/cvsx/rawhide/BUILD/glibc-2.2.3/build-ppc-linux/crypt:/cvsx/rawhide/BUILD/glibc-2.2.3/build-ppc-linux/linuxthreads
-o /cvsx/rawhide/BUILD/glibc-2.2.3/build-ppc-linux/libc.so -T
/cvsx/rawhide/BUILD/glibc-2.2.3/build-ppc-linux/libc.so.lds
/cvsx/rawhide/BUILD/glibc-2.2.3/build-ppc-linux/csu/abi-note.o
/cvsx/rawhide/BUILD/glibc-2.2.3/build-ppc-linux/elf/soinit.os
/cvsx/rawhide/BUILD/glibc-2.2.3/build-ppc-linux/libc_pic.os
/cvsx/rawhide/BUILD/glibc-2.2.3/build-ppc-linux/elf/sofini.os
/cvsx/rawhide/BUILD/glibc-2.2.3/build-ppc-linux/elf/interp.os
/cvsx/rawhide/BUILD/glibc-2.2.3/build-ppc-linux/elf/ld.so -lgcc
/usr/lib/gcc-lib/ppc-linux/3.0.1/libgcc.a(unwind-dw2.o): In function
`__frame_state_for':
/cvsx/rawhide/BUILD/gcc-3.0.1/gcc/unwind-dw2.c(.text+0x12ac): multiple
definition of `__frame_state_for'
/cvsx/rawhide/BUILD/glibc-2.2.3/build-ppc-linux/libc_pic.os:/cvsx/rawhide/BUILD/glibc-2.2.3/elf/../sysdeps/generic/framestate.c:28:
first defined here
/usr/bin/ld: Warning: size of symbol `__frame_state_for' changed from 160 to
292 in unwind-dw2.o
collect2: ld returned 1 exit status
make[1]: *** [/cvsx/rawhide/BUILD/glibc-2.2.3/build-ppc-linux/libc.so] Error 1
Any ideas?
Franz.
More information about the Libc-alpha
mailing list