/* VxWorks support for ELF
- Copyright 2005, 2007 Free Software Foundation, Inc.
+ Copyright (C) 2005-2015 Free Software Foundation, Inc.
This file is part of BFD, the Binary File Descriptor library.
if (!info->shared)
{
- s = bfd_make_section_with_flags (dynobj,
- bed->default_use_rela_p
- ? ".rela.plt.unloaded"
- : ".rel.plt.unloaded",
- SEC_HAS_CONTENTS | SEC_IN_MEMORY
- | SEC_READONLY | SEC_LINKER_CREATED);
+ s = bfd_make_section_anyway_with_flags (dynobj,
+ bed->default_use_rela_p
+ ? ".rela.plt.unloaded"
+ : ".rel.plt.unloaded",
+ SEC_HAS_CONTENTS | SEC_IN_MEMORY
+ | SEC_READONLY
+ | SEC_LINKER_CREATED);
if (s == NULL
|| !bfd_set_section_alignment (dynobj, s, bed->s->log_file_align))
return FALSE;
{
asection *sec = (*hash_ptr)->root.u.def.section;
int this_idx = sec->output_section->target_index;
-
+
irela[j].r_info
= ELF32_R_INFO (this_idx, ELF32_R_TYPE (irela[j].r_info));
irela[j].r_addend += (*hash_ptr)->root.u.def.value;
if (!sec)
return;
d = elf_section_data (sec);
- d->this_hdr.sh_link = elf_tdata (abfd)->symtab_section;
+ d->this_hdr.sh_link = elf_onesymtab (abfd);
sec = bfd_get_section_by_name (abfd, ".plt");
if (sec)
d->this_hdr.sh_info = elf_section_data (sec)->this_idx;
elf_vxworks_finish_dynamic_entry (bfd *output_bfd, Elf_Internal_Dyn *dyn)
{
asection *sec;
-
+
switch (dyn->d_tag)
{
default:
return FALSE;
-
+
case DT_VX_WRS_TLS_DATA_START:
sec = bfd_get_section_by_name (output_bfd, ".tls_data");
dyn->d_un.d_ptr = sec->vma;
break;
-
+
case DT_VX_WRS_TLS_DATA_SIZE:
sec = bfd_get_section_by_name (output_bfd, ".tls_data");
dyn->d_un.d_val = sec->size;
break;
-
+
case DT_VX_WRS_TLS_DATA_ALIGN:
sec = bfd_get_section_by_name (output_bfd, ".tls_data");
dyn->d_un.d_val
- = (bfd_size_type)1 << bfd_get_section_alignment (abfd, sec);
+ = (bfd_size_type)1 << bfd_get_section_alignment (output_bfd,
+ sec);
break;
-
+
case DT_VX_WRS_TLS_VARS_START:
sec = bfd_get_section_by_name (output_bfd, ".tls_vars");
dyn->d_un.d_ptr = sec->vma;
break;
-
+
case DT_VX_WRS_TLS_VARS_SIZE:
sec = bfd_get_section_by_name (output_bfd, ".tls_vars");
dyn->d_un.d_val = sec->size;