|
|
@@ -1,103 +0,0 @@
|
|
|
-Index: binutils-2.17/bfd/elf32-avr32.c
|
|
|
-===================================================================
|
|
|
---- binutils-2.17.orig/bfd/elf32-avr32.c 2007-06-28 09:19:36.580675344 +0200
|
|
|
-+++ binutils-2.17/bfd/elf32-avr32.c 2007-06-28 09:19:38.494384416 +0200
|
|
|
-@@ -298,7 +298,7 @@
|
|
|
- /* Shortcuts to get to dynamic linker sections. */
|
|
|
- asection *sgot;
|
|
|
- asection *srelgot;
|
|
|
-- asection *sreldyn;
|
|
|
-+ /* asection *sreldyn; */
|
|
|
- asection *sstub;
|
|
|
-
|
|
|
- /* We use a variation of Pigeonhole Sort to sort the GOT. After the
|
|
|
-@@ -506,14 +506,14 @@
|
|
|
- if (!avr32_elf_create_got_section (dynobj, info))
|
|
|
- return FALSE;
|
|
|
-
|
|
|
-- if (!htab->sreldyn)
|
|
|
-+ /* if (!htab->sreldyn)
|
|
|
- htab->sreldyn = create_dynamic_section(dynobj, ".rela.dyn",
|
|
|
-- flags | SEC_READONLY, 2);
|
|
|
-+ flags | SEC_READONLY, 2); */
|
|
|
- if (!htab->sstub)
|
|
|
- htab->sstub = create_dynamic_section(dynobj, ".stub",
|
|
|
- flags | SEC_READONLY | SEC_CODE, 2);
|
|
|
-
|
|
|
-- if (!htab->sreldyn || !htab->sstub)
|
|
|
-+ if (/* !htab->sreldyn || */ !htab->sstub)
|
|
|
- return FALSE;
|
|
|
-
|
|
|
- return TRUE;
|
|
|
-@@ -669,12 +669,12 @@
|
|
|
- if ((info->shared || h != NULL)
|
|
|
- && (sec->flags & SEC_ALLOC))
|
|
|
- {
|
|
|
-- if (htab->sreldyn == NULL)
|
|
|
-+ if (htab->srelgot == NULL)
|
|
|
- {
|
|
|
-- htab->sreldyn = create_dynamic_section(dynobj, ".rela.dyn",
|
|
|
-+ htab->srelgot = create_dynamic_section(dynobj, ".rela.got",
|
|
|
- bed->dynamic_sec_flags
|
|
|
- | SEC_READONLY, 2);
|
|
|
-- if (htab->sreldyn == NULL)
|
|
|
-+ if (htab->srelgot == NULL)
|
|
|
- return FALSE;
|
|
|
- }
|
|
|
-
|
|
|
-@@ -1062,7 +1062,7 @@
|
|
|
- {
|
|
|
- pr_debug("Allocating %d dynamic reloc against symbol %s...\n",
|
|
|
- havr->possibly_dynamic_relocs, h->root.root.string);
|
|
|
-- htab->sreldyn->size += (havr->possibly_dynamic_relocs
|
|
|
-+ htab->srelgot->size += (havr->possibly_dynamic_relocs
|
|
|
- * sizeof(Elf32_External_Rela));
|
|
|
- }
|
|
|
-
|
|
|
-@@ -1156,7 +1156,7 @@
|
|
|
- /* Allocate space for local sym dynamic relocs */
|
|
|
- BFD_ASSERT(htab->local_dynamic_relocs == 0 || info->shared);
|
|
|
- if (htab->local_dynamic_relocs)
|
|
|
-- htab->sreldyn->size += (htab->local_dynamic_relocs
|
|
|
-+ htab->srelgot->size += (htab->local_dynamic_relocs
|
|
|
- * sizeof(Elf32_External_Rela));
|
|
|
-
|
|
|
- /* We now have determined the sizes of the various dynamic
|
|
|
-@@ -3191,7 +3191,6 @@
|
|
|
- struct got_entry **local_got_ents;
|
|
|
- asection *sgot;
|
|
|
- asection *srelgot;
|
|
|
-- asection *sreldyn;
|
|
|
-
|
|
|
- pr_debug("(6) relocate section %s:<%s> (size 0x%lx)\n",
|
|
|
- input_bfd->filename, input_section->name, input_section->size);
|
|
|
-@@ -3207,7 +3206,6 @@
|
|
|
- local_got_ents = elf_local_got_ents(input_bfd);
|
|
|
- sgot = htab->sgot;
|
|
|
- srelgot = htab->srelgot;
|
|
|
-- sreldyn = htab->sreldyn;
|
|
|
-
|
|
|
- relend = relocs + input_section->reloc_count;
|
|
|
- for (rel = relocs; rel < relend; rel++)
|
|
|
-@@ -3444,15 +3442,15 @@
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
-- pr_debug("sreldyn reloc_count: %d, size %lu\n",
|
|
|
-- sreldyn->reloc_count, sreldyn->size);
|
|
|
-+ pr_debug("srelgot reloc_count: %d, size %lu\n",
|
|
|
-+ srelgot->reloc_count, srelgot->size);
|
|
|
-
|
|
|
-- loc = sreldyn->contents;
|
|
|
-- loc += sreldyn->reloc_count++ * sizeof(Elf32_External_Rela);
|
|
|
-+ loc = srelgot->contents;
|
|
|
-+ loc += srelgot->reloc_count++ * sizeof(Elf32_External_Rela);
|
|
|
- bfd_elf32_swap_reloca_out(output_bfd, &outrel, loc);
|
|
|
-
|
|
|
-- BFD_ASSERT(sreldyn->reloc_count * sizeof(Elf32_External_Rela)
|
|
|
-- <= sreldyn->size);
|
|
|
-+ BFD_ASSERT(srelgot->reloc_count * sizeof(Elf32_External_Rela)
|
|
|
-+ <= srelgot->size);
|
|
|
-
|
|
|
- if (!relocate)
|
|
|
- continue;
|