PATCH: The gcc v2/v3 frame unwinder for glibc.
H . J . Lu
hjl@lucon.org
Mon Jul 9 11:02:00 GMT 2001
This patch puts the gcc v2/v3 frame unwinder in glibc. It is based
on the patched frame unwinders in gcc 2.9x and 3.0:
http://gcc.gnu.org/ml/gcc/2001-07/msg00577.html
http://gcc.gnu.org/ml/gcc/2001-07/msg00584.html
http://gcc.gnu.org/ml/gcc/2001-07/msg00622.html
I have built glibc with gcc 2.95, gcc 2.96 and gcc 3.0.1. They
seem to work fine with the C++ DSO compiled with gcc 2.96 against
glibc compiled with gcc 2.96:
# nm libbar.so | grep _frame
w __deregister_frame_info@@GLIBC_2.0
U __frame_state_for@@GLIBC_2.0
w __register_frame_info@@GLIBC_2.0
and the C++ DSO compiled with gcc 3.0.1 against glibc compiled with gcc
3.0.1:
# nm libbar.so | grep _frame
w __deregister_frame_info@@GLIBC_2.0
w __deregister_frame_info_bases@@GCC_3.0
w __register_frame_info@@GLIBC_2.0
w __register_frame_info_bases@@GCC_3.0
H.J.
----
2001-07-09 H.J. Lu <hjl@gnu.org>
* Versions.def (libc): Add GCC_3.0.
* config.make.in (FRAME-UNWINDER-V2): New. Substitute by
@libc_cv_frame_unwinder_v2@.
* configure.in (libc_cv_frame_unwinder_v2): Set according to
the gcc compiler version.
* configure: Regenerated.
* sysdeps/unix/sysv/linux/Versions (libc): Add _Unwind_Find_FDE,
__register_frame_info_bases, __deregister_frame_info_bases and
__register_frame_info_table_bases to version GCC_3.0.
* sysdeps/generic/dwarf2.h: New file.
* sysdeps/generic/frame-dwarf2.c: Likewise.
* sysdeps/generic/frame.c: Likewise.
* sysdeps/generic/unwind-dw2-fde.c: Likewise.
* sysdeps/generic/unwind-dw2-fde.h: Likewise.
* sysdeps/generic/unwind-dw2.c: Likewise.
* sysdeps/generic/unwind-pe.h: Likewise.
* sysdeps/generic/unwind.h: Likewise.
* sysdeps/alpha/gccframe.h: Likewise.
* sysdeps/arm/gccframe.h: Likewise.
* sysdeps/i386/gccframe.h: Likewise.
* sysdeps/m68k/gccframe.h: Likewise.
* sysdeps/mips/gccframe.h: Likewise.
* sysdeps/powerpc/gccframe.h: Likewise.
* sysdeps/s390/s390-32/gccframe.h: Likewise.
* sysdeps/sparc/gccframe.h: Likewise.
* sysdeps/generic/gccframe.h: Updated.
* sysdeps/unix/sysv/linux/alpha/Makefile (sysdep_routines): Add
$(FRAME-UNWINDER-V2), unwind-dw2 and unwind-dw2-fde for elf if
$(build-shared) is yes.
(shared-only-routines): Likewise.
* sysdeps/unix/sysv/linux/arm/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.
More information about the Libc-alpha
mailing list