[parisc-linux] binutils ICE while building todays gcc HEAD on hppa-linux

John David Anglin dave@hiauly1.hia.nrc.ca
Wed, 25 Jun 2003 17:52:42 -0400 (EDT)


Hi,

> ICE in binutils-2.14.90.0.4 building gcc HEAD 20030625, while linking
> the shared libstdc++ library:
> 
> [...]
> -Wl,-soname -Wl,libstdc++.so.6 -o .libs/libstdc++.so.6.0.0
> /usr/bin/ld: BFD 2.14.90.0.4 20030523 Debian GNU/Linux internal error, aborting at ../../bfd/elf32-hppa.c line 3864 in elf32_hppa_relocate_section

The error was introduced by this patch:

2003-06-23  Jakub Jelinek  <jakub@redhat.com>

        * method.c (thunk_labelno): New variable.
	(make_alias_for_thunk): New function.
	(use_thunk): Use it if defined ASM_OUTPUT_DEF.  Put the thunk
	into the same section as the function it is calling.
	Include gt-cp-method.h.
	* Make-lang.in (gt-cp-method.h): Depend on s-gtype.
	(cp/method.o): Depend on gt-cp-method.h.
	* config-lang.in (gtfiles): Add $(srcdir)/cp/method.c.

This patch changes the symbol used for the jump from a thunk from
a global symbol to a local symbol.  We have been using a function
descriptor for the jump on hppa-linux and hppa-hpux.  The GNU linker
dies when it hits a function descriptor with a relocation to a local
symbol in a linkonce section that is not output (i.e., we are trying
to generate a relocation for a symbol that no longer exists).

Dave
-- 
J. David Anglin                                  dave.anglin@nrc-cnrc.gc.ca
National Research Council of Canada              (613) 990-0752 (FAX: 952-6602)