aboutsummaryrefslogtreecommitdiff
path: root/bfd
diff options
context:
space:
mode:
authorAlan Modra <amodra@gmail.com>2024-02-21 09:43:40 +1030
committerAlan Modra <amodra@gmail.com>2024-02-21 23:40:12 +1030
commitf618d7fda20afe68c5c3979c4c1be40714e8e5a0 (patch)
treef8d8e01124d00730e842d21369191e834037bd36 /bfd
parent44f85d2d790a151825fdff867128b15ae677f224 (diff)
downloadgdb-f618d7fda20afe68c5c3979c4c1be40714e8e5a0.zip
gdb-f618d7fda20afe68c5c3979c4c1be40714e8e5a0.tar.gz
gdb-f618d7fda20afe68c5c3979c4c1be40714e8e5a0.tar.bz2
Remove is_relocatable_executable from backend code
With the removal of symbian support, most targets no longer or never did set is_relocatable_executable. Remove the backend support that is no longer relevant. * elf32-arm.c (record_arm_to_thumb_glue, elf32_arm_create_thumb_stub), (elf32_arm_final_link_relocate, elf32_arm_check_relocs), (elf32_arm_adjust_dynamic_symbol, allocate_dynrelocs_for_symbol), (elf32_arm_output_arch_local_syms): Remove is_relocatable_executable code and comments. * elf32-csky.c (csky_elf_adjust_dynamic_symbol): Likewise. * elfnn-aarch64.c (elfNN_aarch64_final_link_relocate): Likewise. * elfnn-kvx.c (elfNN_kvx_final_link_relocate): Likewise. * elfxx-mips.c (count_section_dynsyms): Likewise.
Diffstat (limited to 'bfd')
-rw-r--r--bfd/elf32-arm.c39
-rw-r--r--bfd/elf32-csky.c2
-rw-r--r--bfd/elfnn-aarch64.c8
-rw-r--r--bfd/elfnn-kvx.c8
-rw-r--r--bfd/elfxx-mips.c3
5 files changed, 14 insertions, 46 deletions
diff --git a/bfd/elf32-arm.c b/bfd/elf32-arm.c
index 1913be5..779c708 100644
--- a/bfd/elf32-arm.c
+++ b/bfd/elf32-arm.c
@@ -7351,7 +7351,6 @@ record_arm_to_thumb_glue (struct bfd_link_info * link_info,
free (tmp_name);
if (bfd_link_pic (link_info)
- || globals->root.is_relocatable_executable
|| globals->pic_veneer)
size = ARM2THUMB_PIC_GLUE_SIZE;
else if (globals->use_blx)
@@ -9259,7 +9258,6 @@ elf32_arm_create_thumb_stub (struct bfd_link_info * info,
myh->root.u.def.value = my_offset;
if (bfd_link_pic (info)
- || globals->root.is_relocatable_executable
|| globals->pic_veneer)
{
/* For relocatable objects we can't use absolute addresses,
@@ -10507,11 +10505,9 @@ elf32_arm_final_link_relocate (reloc_howto_type * howto,
rel->r_addend);
}
- /* When generating a shared object or relocatable executable, these
- relocations are copied into the output file to be resolved at
- run time. */
+ /* When generating a shared library or PIE, these relocations
+ are copied into the output file to be resolved at run time. */
if ((bfd_link_pic (info)
- || globals->root.is_relocatable_executable
|| globals->fdpic_p)
&& (input_section->flags & SEC_ALLOC)
&& !(globals->root.target_os == is_vxworks
@@ -15321,15 +15317,6 @@ elf32_arm_check_relocs (bfd *abfd, struct bfd_link_info *info,
sreloc = NULL;
- /* Create dynamic sections for relocatable executables so that we can
- copy relocations. */
- if (htab->root.is_relocatable_executable
- && ! htab->root.dynamic_sections_created)
- {
- if (! _bfd_elf_link_create_dynamic_sections (abfd, info))
- return false;
- }
-
if (htab->root.dynobj == NULL)
htab->root.dynobj = abfd;
if (!create_ifunc_sections (info))
@@ -15601,7 +15588,7 @@ elf32_arm_check_relocs (bfd *abfd, struct bfd_link_info *info,
case R_ARM_THM_MOVT_PREL:
/* Should the interworking branches be listed here? */
- if ((bfd_link_pic (info) || htab->root.is_relocatable_executable
+ if ((bfd_link_pic (info)
|| htab->fdpic_p)
&& (sec->flags & SEC_ALLOC) != 0)
{
@@ -16213,10 +16200,8 @@ elf32_arm_adjust_dynamic_symbol (struct bfd_link_info * info,
/* If we are creating a shared library, we must presume that the
only references to the symbol are via the global offset table.
For such cases we need not do anything here; the relocations will
- be handled correctly by relocate_section. Relocatable executables
- can reference data in shared objects directly, so we don't need to
- do anything here. */
- if (bfd_link_pic (info) || globals->root.is_relocatable_executable)
+ be handled correctly by relocate_section. */
+ if (bfd_link_pic (info))
return true;
/* We must allocate the symbol in our .dynbss section, which will
@@ -16615,7 +16600,6 @@ allocate_dynrelocs_for_symbol (struct elf_link_hash_entry *h, void * inf)
visibility changes. */
if (bfd_link_pic (info)
- || htab->root.is_relocatable_executable
|| htab->fdpic_p)
{
/* Relocs that use pc_count are PC-relative forms, which will appear
@@ -16670,17 +16654,6 @@ allocate_dynrelocs_for_symbol (struct elf_link_hash_entry *h, void * inf)
return false;
}
}
-
- else if (htab->root.is_relocatable_executable && h->dynindx == -1
- && h->root.type == bfd_link_hash_new)
- {
- /* Output absolute symbols so that we can create relocations
- against them. For normal symbols we output a relocation
- against the section that contains them. */
- if (! bfd_elf_link_record_dynamic_symbol (info, h))
- return false;
- }
-
}
else
{
@@ -18213,7 +18186,7 @@ elf32_arm_output_arch_local_syms (bfd *output_bfd,
osi.sec_shndx = _bfd_elf_section_from_bfd_section
(output_bfd, osi.sec->output_section);
- if (bfd_link_pic (info) || htab->root.is_relocatable_executable
+ if (bfd_link_pic (info)
|| htab->pic_veneer)
size = ARM2THUMB_PIC_GLUE_SIZE;
else if (htab->use_blx)
diff --git a/bfd/elf32-csky.c b/bfd/elf32-csky.c
index 87c3725..6f8a787 100644
--- a/bfd/elf32-csky.c
+++ b/bfd/elf32-csky.c
@@ -1614,7 +1614,7 @@ csky_elf_adjust_dynamic_symbol (struct bfd_link_info *info,
only references to the symbol are via the global offset table.
For such cases we need not do anything here; the relocations will
be handled correctly by relocate_section. */
- if (bfd_link_pic (info) || htab->elf.is_relocatable_executable)
+ if (bfd_link_pic (info))
return true;
/* We must allocate the symbol in our .dynbss section, which will
diff --git a/bfd/elfnn-aarch64.c b/bfd/elfnn-aarch64.c
index 560983a..3c65ac1 100644
--- a/bfd/elfnn-aarch64.c
+++ b/bfd/elfnn-aarch64.c
@@ -5910,11 +5910,9 @@ elfNN_aarch64_final_link_relocate (reloc_howto_type *howto,
case BFD_RELOC_AARCH64_NN:
- /* When generating a shared object or relocatable executable, these
- relocations are copied into the output file to be resolved at
- run time. */
- if (((bfd_link_pic (info)
- || globals->root.is_relocatable_executable)
+ /* When generating a shared library or PIE, these relocations
+ are copied into the output file to be resolved at run time. */
+ if ((bfd_link_pic (info)
&& (input_section->flags & SEC_ALLOC)
&& (h == NULL
|| (ELF_ST_VISIBILITY (h->other) == STV_DEFAULT
diff --git a/bfd/elfnn-kvx.c b/bfd/elfnn-kvx.c
index ae5ed6b..8591dea 100644
--- a/bfd/elfnn-kvx.c
+++ b/bfd/elfnn-kvx.c
@@ -2052,11 +2052,9 @@ elfNN_kvx_final_link_relocate (reloc_howto_type *howto,
case BFD_RELOC_KVX_S64_LO10:
case BFD_RELOC_KVX_S64_UP27:
case BFD_RELOC_KVX_S64_EX27:
- /* When generating a shared object or relocatable executable, these
- relocations are copied into the output file to be resolved at
- run time. */
- if (((bfd_link_pic (info) == true)
- || globals->root.is_relocatable_executable)
+ /* When generating a shared library or PIE, these relocations
+ are copied into the output file to be resolved at run time. */
+ if (bfd_link_pic (info)
&& (input_section->flags & SEC_ALLOC)
&& (h == NULL
|| (ELF_ST_VISIBILITY (h->other) == STV_DEFAULT
diff --git a/bfd/elfxx-mips.c b/bfd/elfxx-mips.c
index 4790306..89dd34e 100644
--- a/bfd/elfxx-mips.c
+++ b/bfd/elfxx-mips.c
@@ -3928,8 +3928,7 @@ count_section_dynsyms (bfd *output_bfd, struct bfd_link_info *info)
bfd_size_type count;
count = 0;
- if (bfd_link_pic (info)
- || elf_hash_table (info)->is_relocatable_executable)
+ if (bfd_link_pic (info))
{
asection *p;
const struct elf_backend_data *bed;