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] GLIBC_2.2.5 support for GCC_3.0 (was Re: Running old apps (glibc 2.0.7 compiled) against current glibc)


On Sun, Aug 12, 2001 at 03:22:43AM -0400, Ben Collins wrote:
> On Sat, Aug 11, 2001 at 11:43:07PM -0700, Ulrich Drepper wrote:
> > Ben Collins <bcollins@debian.org> writes:
> > 
> > > Can someone shed some light on this for me?
> > 
> > No.  The symbol table extract cannot be the reason.  You'll have to
> > debug it.
> 
> Got it. I forgot I was applying Jakub's gcc3-vs-glibc patch for testing.
> 
> Jakub, the patch causes this problem even with gcc-3.0.1.

Turns out scripts.awk just sorts versions, so GCC_3.0 version came before
GLIBC_2.0 in libc.map (particularly:
GCC_3.0 {
};
GLIBC_2.0 {
}GCC_3.0;
GLIBC_2.1.1 {
}GLIBC_2.0;
...
), so things obviously broke.
Below is an updated patch, which special cases GLIBC_.* versions by putting
them first (it seems easier than doing more magic to ensure Versions.def
order). What I'm unsure about is what should be parent of say first HURD_CTHREADS
or first GCC version. Currently they will change over time to latest GCC
resp. latest GLIBC version, I dunno if it wouldn't be better if e.g.
GCC_3.0's parent was the very first GLIBC version.

This patch includes sysdeps/generic/framestate.c, so you have everything
together.

2001-08-12  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.
	* 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.
	* 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-2.2.5-gcc3.patch.bz2


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