aboutsummaryrefslogtreecommitdiff
path: root/bfd/elf32-m68k.c
diff options
context:
space:
mode:
Diffstat (limited to 'bfd/elf32-m68k.c')
-rw-r--r--bfd/elf32-m68k.c48
1 files changed, 25 insertions, 23 deletions
diff --git a/bfd/elf32-m68k.c b/bfd/elf32-m68k.c
index 07211b5..10d2fcb 100644
--- a/bfd/elf32-m68k.c
+++ b/bfd/elf32-m68k.c
@@ -2232,7 +2232,7 @@ elf_m68k_partition_multi_got_2 (struct elf_m68k_partition_multi_got_arg *arg)
arg->n_slots += arg->current_got->n_slots[R_32];
- if (!arg->info->shared)
+ if (!bfd_link_pic (arg->info))
/* If we are generating a shared object, we need to
output a R_68K_RELATIVE reloc so that the dynamic
linker can adjust this GOT entry. Overwise we
@@ -2554,7 +2554,7 @@ elf_m68k_check_relocs (bfd *abfd,
asection *sreloc;
struct elf_m68k_got *got;
- if (info->relocatable)
+ if (bfd_link_relocatable (info))
return TRUE;
dynobj = elf_hash_table (info)->dynobj;
@@ -2620,7 +2620,7 @@ elf_m68k_check_relocs (bfd *abfd,
case R_68K_TLS_DTPREL32:
if (ELF32_R_TYPE (rel->r_info) == R_68K_TLS_TPREL32
- && info->shared)
+ && bfd_link_pic (info))
/* Do the special chorus for libraries with static TLS. */
info->flags |= DF_STATIC_TLS;
@@ -2641,7 +2641,7 @@ elf_m68k_check_relocs (bfd *abfd,
}
if (srelgot == NULL
- && (h != NULL || info->shared))
+ && (h != NULL || bfd_link_pic (info)))
{
srelgot = bfd_get_linker_section (dynobj, ".rela.got");
if (srelgot == NULL)
@@ -2755,7 +2755,7 @@ elf_m68k_check_relocs (bfd *abfd,
will be set later (it is never cleared). We account for that
possibility below by storing information in the
pcrel_relocs_copied field of the hash table entry. */
- if (!(info->shared
+ if (!(bfd_link_pic (info)
&& (sec->flags & SEC_ALLOC) != 0
&& h != NULL
&& (!SYMBOLIC_BIND (info, h)
@@ -2786,14 +2786,14 @@ elf_m68k_check_relocs (bfd *abfd,
turns out to be a function defined by a dynamic object. */
h->plt.refcount++;
- if (info->executable)
+ if (bfd_link_executable (info))
/* This symbol needs a non-GOT reference. */
h->non_got_ref = 1;
}
/* If we are creating a shared library, we need to copy the
reloc into the shared library. */
- if (info->shared)
+ if (bfd_link_pic (info))
{
/* When creating a shared object, we must copy these
reloc types into the output file. We create a reloc
@@ -2938,7 +2938,7 @@ elf_m68k_gc_sweep_hook (bfd *abfd,
bfd *dynobj;
struct elf_m68k_got *got;
- if (info->relocatable)
+ if (bfd_link_relocatable (info))
return TRUE;
dynobj = elf_hash_table (info)->dynobj;
@@ -3153,7 +3153,7 @@ elf_m68k_adjust_dynamic_symbol (struct bfd_link_info *info,
location in the .plt. This is required to make function
pointers compare as equal between the normal executable and
the shared library. */
- if (!info->shared
+ if (!bfd_link_pic (info)
&& !h->def_regular)
{
h->root.u.def.section = s;
@@ -3202,7 +3202,7 @@ elf_m68k_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 (info->shared)
+ if (bfd_link_pic (info))
return TRUE;
/* If there are no references to this symbol that do not use the
@@ -3257,7 +3257,7 @@ elf_m68k_size_dynamic_sections (bfd *output_bfd ATTRIBUTE_UNUSED,
if (elf_hash_table (info)->dynamic_sections_created)
{
/* Set the contents of the .interp section to the interpreter. */
- if (info->executable)
+ if (bfd_link_executable (info))
{
s = bfd_get_linker_section (dynobj, ".interp");
BFD_ASSERT (s != NULL);
@@ -3283,7 +3283,7 @@ elf_m68k_size_dynamic_sections (bfd *output_bfd ATTRIBUTE_UNUSED,
against symbols that have become local due to visibility changes.
We allocated space for them in the check_relocs routine, but we
will not fill them in in the relocate_section routine. */
- if (info->shared)
+ if (bfd_link_pic (info))
elf_link_hash_traverse (elf_hash_table (info),
elf_m68k_discard_copies,
info);
@@ -3366,7 +3366,7 @@ elf_m68k_size_dynamic_sections (bfd *output_bfd ATTRIBUTE_UNUSED,
#define add_dynamic_entry(TAG, VAL) \
_bfd_elf_add_dynamic_entry (info, TAG, VAL)
- if (info->executable)
+ if (bfd_link_executable (info))
{
if (!add_dynamic_entry (DT_DEBUG, 0))
return FALSE;
@@ -3680,7 +3680,7 @@ elf_m68k_relocate_section (bfd *output_bfd,
RELOC_AGAINST_DISCARDED_SECTION (info, input_bfd, input_section,
rel, 1, relend, howto, 0, contents);
- if (info->relocatable)
+ if (bfd_link_relocatable (info))
continue;
switch (r_type)
@@ -3810,8 +3810,10 @@ elf_m68k_relocate_section (bfd *output_bfd,
bfd_boolean dyn;
dyn = elf_hash_table (info)->dynamic_sections_created;
- if (!WILL_CALL_FINISH_DYNAMIC_SYMBOL (dyn, info->shared, h)
- || (info->shared
+ if (!WILL_CALL_FINISH_DYNAMIC_SYMBOL (dyn,
+ bfd_link_pic (info),
+ h)
+ || (bfd_link_pic (info)
&& SYMBOL_REFERENCES_LOCAL (info, h))
|| (ELF_ST_VISIBILITY (h->other)
&& h->root.type == bfd_link_hash_undefweak))
@@ -3841,7 +3843,7 @@ elf_m68k_relocate_section (bfd *output_bfd,
else
unresolved_reloc = FALSE;
}
- else if (info->shared) /* && h == NULL */
+ else if (bfd_link_pic (info)) /* && h == NULL */
/* Process local symbol during dynamic link. */
{
if (srela == NULL)
@@ -3860,7 +3862,7 @@ elf_m68k_relocate_section (bfd *output_bfd,
*off_ptr |= 1;
}
- else /* h == NULL && !info->shared */
+ else /* h == NULL && !bfd_link_pic (info) */
{
elf_m68k_init_got_entry_static (info,
output_bfd,
@@ -3914,7 +3916,7 @@ elf_m68k_relocate_section (bfd *output_bfd,
case R_68K_TLS_LE32:
case R_68K_TLS_LE16:
case R_68K_TLS_LE8:
- if (info->shared && !info->pie)
+ if (bfd_link_pic (info) && !bfd_link_pie (info))
{
(*_bfd_error_handler)
(_("%B(%A+0x%lx): R_68K_TLS_LE32 relocation not permitted "
@@ -3987,7 +3989,7 @@ elf_m68k_relocate_section (bfd *output_bfd,
case R_68K_PC8:
case R_68K_PC16:
case R_68K_PC32:
- if (info->shared
+ if (bfd_link_pic (info)
&& r_symndx != STN_UNDEF
&& (input_section->flags & SEC_ALLOC) != 0
&& (h == NULL
@@ -4026,7 +4028,7 @@ elf_m68k_relocate_section (bfd *output_bfd,
&& (r_type == R_68K_PC8
|| r_type == R_68K_PC16
|| r_type == R_68K_PC32
- || !info->shared
+ || !bfd_link_pic (info)
|| !SYMBOLIC_BIND (info, h)
|| !h->def_regular))
{
@@ -4335,7 +4337,7 @@ elf_m68k_finish_dynamic_symbol (bfd *output_bfd,
the symbol was forced to be local because of a version file.
The entry in the global offset table already have been
initialized in the relocate_section function. */
- if (info->shared
+ if (bfd_link_pic (info)
&& SYMBOL_REFERENCES_LOCAL (info, h))
{
bfd_vma relocation;
@@ -4591,7 +4593,7 @@ bfd_m68k_elf32_create_embedded_relocs (abfd, info, datasec, relsec, errmsg)
bfd_byte *p;
bfd_size_type amt;
- BFD_ASSERT (! info->relocatable);
+ BFD_ASSERT (! bfd_link_relocatable (info));
*errmsg = NULL;