cvs binutils+gcc4.0 build fail
Alan Modra
amodra@bigpond.net.au
Tue Mar 29 13:54:00 GMT 2005
On Wed, Mar 23, 2005 at 08:53:08AM +1030, Alan Modra wrote:
> On Wed, Mar 23, 2005 at 08:32:19AM +1100, Ben Elliston wrote:
> > > Does this look familiar?
> >
> > Not immediately.
> >
> > > /usr/local/ppc64-4.0/bin/powerpc-linux-ld:
> > > .libs/wstring-inst.o(.eh_frame+0x13c8): R_PPC64_REL64 reloc against
> > > `.gnu.linkonce.t._ZNKSbIwSt11char_traitsIwESaIwEE7compareEmmRKS2_mm':
> > > error 2
> >
> > So _bfd_final_link_relocate is returning bfd_reloc_outofrange. I
> > suspect the remaining errors just cascade from that. As to why this
> > is happening, I don't know. Alan?
>
> My guess is that the .gnu.linkonce.* section in question has been
> removed because it's a duplicate, and something has gone wrong with
> .eh_frame editing. We have had a lot of problems with linkonce
> sections in the past, but I thought it was all OK now..
Something was indeed going wrong with eh_frame editing. It was being
done twice due to my 2005-03-21 ppc64elf.em change. Oops.
* emultempl/ppc64elf.em (need_laying_out): Delete. Remove all refs.
(ppc_finish): Don't call bfd_elf_discard_info.
* emultempl/hppaelf.em: Similarly.
Index: ld/emultempl/ppc64elf.em
===================================================================
RCS file: /cvs/src/src/ld/emultempl/ppc64elf.em,v
retrieving revision 1.40
diff -u -p -r1.40 ppc64elf.em
--- ld/emultempl/ppc64elf.em 21 Mar 2005 09:39:53 -0000 1.40
+++ ld/emultempl/ppc64elf.em 29 Mar 2005 06:37:13 -0000
@@ -32,9 +32,6 @@ cat >>e${EMULATION_NAME}.c <<EOF
static lang_input_statement_type *stub_file;
static int stub_added = 0;
-/* Whether we need to call ppc_layout_sections_again. */
-static int need_laying_out = 0;
-
/* Maximum size of a group of input sections that can be handled by
one stub section. A value of +/-1 indicates the bfd back-end
should use a suitable default size. */
@@ -258,8 +255,6 @@ ppc_layout_sections_again (void)
/* If we have changed sizes of the stub sections, then we need
to recalculate all the section offsets. This may mean we need to
add even more stubs. */
- need_laying_out = 0;
-
lang_reset_memory_regions ();
/* Resize the sections. */
@@ -321,13 +316,6 @@ ppc_finish (void)
descriptor in the .opd section. */
entry_section = ".opd";
- /* bfd_elf_discard_info just plays with debugging sections,
- ie. doesn't affect any code, so we can delay resizing the
- sections. It's likely we'll resize everything in the process of
- adding stubs. */
- if (bfd_elf_discard_info (output_bfd, &link_info))
- need_laying_out = 1;
-
/* If generating a relocatable output file, then we don't have any
stubs. */
if (stub_file != NULL && !link_info.relocatable)
@@ -356,9 +344,6 @@ ppc_finish (void)
}
}
- if (need_laying_out)
- ppc_layout_sections_again ();
-
if (link_info.relocatable)
{
asection *toc = bfd_get_section_by_name (output_bfd, ".toc");
Index: ld/emultempl/hppaelf.em
===================================================================
RCS file: /cvs/src/src/ld/emultempl/hppaelf.em,v
retrieving revision 1.38
diff -u -p -r1.38 hppaelf.em
--- ld/emultempl/hppaelf.em 21 Mar 2005 09:39:53 -0000 1.38
+++ ld/emultempl/hppaelf.em 29 Mar 2005 06:37:13 -0000
@@ -36,9 +36,6 @@ static lang_input_statement_type *stub_f
stubs. */
static int multi_subspace = 0;
-/* Whether we need to call hppa_layout_sections_again. */
-static int need_laying_out = 0;
-
/* Maximum size of a group of input sections that can be handled by
one stub section. A value of +/-1 indicates the bfd back-end
should use a suitable default size. */
@@ -220,8 +217,6 @@ hppaelf_layout_sections_again (void)
/* If we have changed sizes of the stub sections, then we need
to recalculate all the section offsets. This may mean we need to
add even more stubs. */
- need_laying_out = 0;
-
lang_reset_memory_regions ();
/* Resize the sections. */
@@ -258,13 +253,6 @@ build_section_lists (lang_statement_unio
static void
hppaelf_finish (void)
{
- /* bfd_elf_discard_info just plays with debugging sections,
- ie. doesn't affect any code, so we can delay resizing the
- sections. It's likely we'll resize everything in the process of
- adding stubs. */
- if (bfd_elf_discard_info (output_bfd, &link_info))
- need_laying_out = 1;
-
/* If generating a relocatable output file, then we don't
have to examine the relocs. */
if (stub_file != NULL && !link_info.relocatable)
@@ -296,9 +284,6 @@ hppaelf_finish (void)
}
}
- if (need_laying_out)
- hppaelf_layout_sections_again ();
-
if (! link_info.relocatable)
{
/* Set the global data pointer. */
--
Alan Modra
IBM OzLabs - Linux Technology Centre
More information about the Binutils
mailing list