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]

[PATCH] Updated glibc-gcc3.patch


Hi!

I finally got to testing updated glibc-gcc3 patch.
The tests I was running are attached too. At the beginning of the Makefile
you can fill any 3 different compilers and it will test all combinations of
throwing exceptions (I used slightly modified Nathan Sidwell's
g++.old-deja/g++.eh/catch12.C, where the throwing/catching C++ code is
either in the main program, or in shared library dlopened from a C stub.
It is throwing through some functions within that C++ code, through a
C function in another dlopened shared library compiled with -fexceptions and
through qsort. Plus there is Mark Kettenis' test_eh.c test with explicit -lc,
since otherwise __frame_state_for is picked up from -lgcc).
I tested this with gcc trunk (patched so that it uses -shared-libgcc by
default only when needed (ie. for C++ and Java)), gcc-2.96-RH (set up as
compatibility compiler, with its libstdc++.so explicitely linked against
-lgcc_s) and egcs (here I just had an egcs1.1.2 libstdc++.so compatibility
library trivially hacked up so that it has __frame_state_for and frame
registry as UND symbols - didn't want to recompile all compat libs).
In case of egcs, I compiled the *3.{tst,so} binaries on RHL 7.2 box and
copied them.
glibc was compiled with trunk gcc (__attribute__((used)) patch was needed
too), plus old gcc-2.96-RH __frame_state_for compatibility patch (not
included here).

2001-10-02  Jakub Jelinek  <jakub@redhat.com>
	    H.J. Lu  <hjl@gnu.org>

	* Versions.def (libc): Add GCC_3.0.
	* configure.in (libc_cv_gcc_static_libgcc): Set to -static-libgcc
	if gcc supports this flag.
	(EXPORT_UNWIND_FIND_FDE): Define unless target configure
	disables it.
	(gcc3): Allow glibc to be compiled with gcc 3.x.
	* configure: Rebuilt.
	* config.h.in (EXPORT_UNWIND_FIND_FDE): Add.
	* config.make.in (static-libgcc): Add.
	* Makerules (build-shlib-helper, build-module-helper): Use it.
	* scripts/versions.awk: Make sure GLIBC_ versions come first.
	* elf/soinit.c (__libc_global_ctors): Set tbases and dbases if
	necessary.
	(_fini): Call __deregister_frame_info_bases if
	__register_frame_info_bases was used to register.
	* elf/Versions (__register_frame_info, __deregister_frame_info): Add
	at GLIBC_2.0.
	(__register_frame_info_bases, __register_frame_info_table_bases,
	__deregister_frame_info_bases, _Unwind_Find_FDE): Add at GCC_3.0.
	* elf/Makefile (routines): Add unwind-dw2-fde.
	(shared-only-routines): Add unwind-dw2-fde.
	* sysdeps/alpha/gccframe.h: New.
	* sysdeps/arm/gccframe.h: New.
	* sysdeps/generic/framestate.c: New.
	* sysdeps/generic/dwarf2.h: New.
	* sysdeps/generic/gccframe.h (struct object): Update from gcc 3.0.
	* sysdeps/generic/unwind-dw2-fde.c: New.
	* sysdeps/unix/sysv/linux/ia64/unwind-dw2-fde.c: New.
	* sysdeps/generic/unwind-dw2-fde.h: New.
	* sysdeps/generic/unwind-dw2.c: New.
	* sysdeps/generic/unwind-pe.h: New.
	* sysdeps/generic/unwind.h: New.
	* sysdeps/hppa/gccframe.h: New.
	* sysdeps/i386/gccframe.h: New.
	* sysdeps/m68k/gccframe.h: New.
	* sysdeps/mips/gccframe.h: New.
	* sysdeps/powerpc/gccframe.h: New.
	* sysdeps/s390/gccframe.h: New.
	* sysdeps/sh/gccframe.h: New.
	* sysdeps/sparc/gccframe.h: New.
	* sysdeps/vax/gccframe.h: New.
	* sysdeps/unix/sysv/linux/configure.in (libc_cv_gcc_unwind_find_fde):
	Set to no on ia64.
	* sysdeps/unix/sysv/linux/configure: Rebuilt.
	* sysdeps/mach/hurd/i386/Versions (__register_frame_info,
	__deregister_frame_info): Move to elf/Versions.
	* sysdeps/unix/sysv/linux/m68k/Versions: Likewise.
	* sysdeps/unix/sysv/linux/arm/Versions: Likewise.
	* sysdeps/unix/sysv/linux/alpha/Versions: Likewise.
	* sysdeps/unix/sysv/linux/i386/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/Makefile (sysdep-routines): Add
	framestate.
	* sysdeps/unix/sysv/linux/arm/Makefile: Likewise.
	* 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.

	Jakub

glibc-gcc3.patch.gz

test_eh.tar.bz2


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