unsigned int) ATTRIBUTE_HIDDEN;
extern bool _bfd_elf_slurp_version_tables
(bfd *, bool) ATTRIBUTE_HIDDEN;
-extern bool _bfd_elf_match_sections_by_type
+extern bool bfd_elf_match_sections_by_type
(bfd *, const asection *, bfd *, const asection *);
extern bool bfd_elf_is_group_section
(bfd *, const struct bfd_section *);
extern void _bfd_elf_copy_link_hash_symbol_type
(bfd *, struct bfd_link_hash_entry *, struct bfd_link_hash_entry *)
ATTRIBUTE_HIDDEN;
-extern bool _bfd_elf_size_group_sections
+extern bool bfd_elf_size_group_sections
(struct bfd_link_info *);
extern bool _bfd_elf_fixup_group_sections
(bfd *, asection *) ATTRIBUTE_HIDDEN;
(struct elf_strtab_hash *, void *) ATTRIBUTE_HIDDEN;
extern bfd_size_type _bfd_elf_strtab_size
(struct elf_strtab_hash *) ATTRIBUTE_HIDDEN;
-extern bfd_size_type _bfd_elf_strtab_len
+extern bfd_size_type bfd_elf_strtab_len
(struct elf_strtab_hash *);
extern bfd_size_type _bfd_elf_strtab_offset
(struct elf_strtab_hash *, size_t) ATTRIBUTE_HIDDEN;
-extern const char * _bfd_elf_strtab_str
+extern const char *bfd_elf_strtab_str
(struct elf_strtab_hash *, size_t idx, bfd_size_type *offset);
extern bool _bfd_elf_strtab_emit
(bfd *, struct elf_strtab_hash *) ATTRIBUTE_HIDDEN;
(bfd *, struct bfd_link_info *);
extern unsigned int _bfd_elf_default_action_discarded
(struct bfd_section *) ATTRIBUTE_HIDDEN;
-extern struct bfd_section *_bfd_elf_tls_setup
+extern struct bfd_section *bfd_elf_tls_setup
(bfd *, struct bfd_link_info *);
extern bool _bfd_elf_link_create_dynamic_sections
extern struct elf_segment_map * _bfd_elf_make_dynamic_segment
(bfd *, asection *) ATTRIBUTE_HIDDEN;
-extern bool _bfd_elf_map_sections_to_segments
+extern bool bfd_elf_map_sections_to_segments
(bfd *, struct bfd_link_info *, bool *);
extern bool _bfd_elf_is_function_type
}
bfd_size_type
-_bfd_elf_strtab_len (struct elf_strtab_hash *tab)
+bfd_elf_strtab_len (struct elf_strtab_hash *tab)
{
return tab->size;
}
}
const char *
-_bfd_elf_strtab_str (struct elf_strtab_hash *tab, size_t idx,
- bfd_size_type *offset)
+bfd_elf_strtab_str (struct elf_strtab_hash *tab, size_t idx,
+ bfd_size_type *offset)
{
if (idx == 0)
return NULL;
NEED_LAYOUT if the section layout is changed. */
bool
-_bfd_elf_map_sections_to_segments (bfd *abfd,
- struct bfd_link_info *info,
- bool *need_layout)
+bfd_elf_map_sections_to_segments (bfd *abfd,
+ struct bfd_link_info *info,
+ bool *need_layout)
{
unsigned int count;
struct elf_segment_map *m;
unsigned int opb = bfd_octets_per_byte (abfd, NULL);
if (link_info == NULL
- && !_bfd_elf_map_sections_to_segments (abfd, link_info, NULL))
+ && !bfd_elf_map_sections_to_segments (abfd, link_info, NULL))
return false;
alloc = 0;
elf_section_flags (htab->elf.splt->output_section) = SHF_ALLOC + SHF_WRITE;
}
- return _bfd_elf_tls_setup (obfd, info);
+ return bfd_elf_tls_setup (obfd, info);
}
/* Return TRUE iff REL is a branch reloc with a global symbol matching
aligned. Returns the first TLS output section. */
struct bfd_section *
-_bfd_elf_tls_setup (bfd *obfd, struct bfd_link_info *info)
+bfd_elf_tls_setup (bfd *obfd, struct bfd_link_info *info)
{
struct bfd_section *sec, *tls;
unsigned int align = 0;
{
/* Regenerate program headers. */
elf_seg_map (info->output_bfd) = NULL;
- return _bfd_elf_map_sections_to_segments (info->output_bfd, info,
- NULL);
+ return bfd_elf_map_sections_to_segments (info->output_bfd, info, NULL);
}
return true;
/* Size any SHT_GROUP section for ld -r. */
bool
-_bfd_elf_size_group_sections (struct bfd_link_info *info)
+bfd_elf_size_group_sections (struct bfd_link_info *info)
{
bfd *ibfd;
asection *s;
}
if (bfd_link_relocatable (info)
- && !_bfd_elf_size_group_sections (info))
+ && !bfd_elf_size_group_sections (info))
return false;
/* Determine any GNU_STACK segment requirements, after the backend
/* Return TRUE if 2 section types are compatible. */
bool
-_bfd_elf_match_sections_by_type (bfd *abfd, const asection *asec,
- bfd *bbfd, const asection *bsec)
+bfd_elf_match_sections_by_type (bfd *abfd, const asection *asec,
+ bfd *bbfd, const asection *bsec)
{
if (asec == NULL
|| bsec == NULL
gld${EMULATION_NAME}_before_allocation (void)
{
if (bfd_link_relocatable (&link_info)
- && !_bfd_elf_size_group_sections (&link_info))
+ && !bfd_elf_size_group_sections (&link_info))
einfo (_("%X%P: can not size group sections: %E\n"));
before_allocation_default ();
}
{
if (lang_phdr_list == NULL)
elf_seg_map (link_info.output_bfd) = NULL;
- if (!_bfd_elf_map_sections_to_segments (link_info.output_bfd,
- &link_info,
- NULL))
+ if (!bfd_elf_map_sections_to_segments (link_info.output_bfd,
+ &link_info, NULL))
fatal (_("%P: map sections to segments failed: %E\n"));
}
if (is_elf_hash_table (link_info.hash))
{
- _bfd_elf_tls_setup (link_info.output_bfd, &link_info);
+ bfd_elf_tls_setup (link_info.output_bfd, &link_info);
/* Make __ehdr_start hidden if it has been referenced, to
prevent the symbol from being dynamic. */
|| ((elf_section_flags (out) ^ elf_section_flags (in))
& (SHF_MASKPROC | SHF_MASKOS)) != 0))
return false;
- return _bfd_elf_match_sections_by_type (link_info.output_bfd, out,
- in->owner, in);
+ return bfd_elf_match_sections_by_type (link_info.output_bfd, out,
+ in->owner, in);
}
/* Place an orphan section. We use this to put random SHF_ALLOC
&& ((nexts->flags ^ flags) & (SEC_LOAD | SEC_ALLOC)) == 0
&& (nexts->owner->flags & DYNAMIC) == 0
&& !bfd_input_just_syms (nexts->owner)
- && _bfd_elf_match_sections_by_type (nexts->owner, nexts,
- s->owner, s))
+ && bfd_elf_match_sections_by_type (nexts->owner, nexts,
+ s->owner, s))
flags = (((flags ^ SEC_READONLY)
| (nexts->flags ^ SEC_READONLY))
^ SEC_READONLY);
if (after == NULL)
after
= lang_output_section_find_by_flags (s, flags, &place->os,
- _bfd_elf_match_sections_by_type);
+ bfd_elf_match_sections_by_type);
if (after == NULL)
/* *ABS* is always the first output section statement. */
after = (void *) lang_os_list.head;
previous linker generated program headers. */
if (lang_phdr_list == NULL)
elf_seg_map (link_info.output_bfd) = NULL;
- if (!_bfd_elf_map_sections_to_segments (link_info.output_bfd,
- &link_info,
- &need_layout))
+ if (!bfd_elf_map_sections_to_segments (link_info.output_bfd,
+ &link_info, &need_layout))
fatal (_("%P: map sections to segments failed: %E\n"));
if (phdr_size != elf_program_header_size (link_info.output_bfd))
a nonzero refcount. */
do
{
- if (arg->next_i >= _bfd_elf_strtab_len (arg->strtab))
+ if (arg->next_i >= bfd_elf_strtab_len (arg->strtab))
{
arg->next_i = 0;
return NULL;
}
- ret = _bfd_elf_strtab_str (arg->strtab, arg->next_i++, &off);
+ ret = bfd_elf_strtab_str (arg->strtab, arg->next_i++, &off);
}
while (ret == NULL);
return dot;
}
-/* Callback routine that is used in _bfd_elf_map_sections_to_segments.
+/* Callback routine that is used in bfd_elf_map_sections_to_segments.
The BFD library has set NEW_SEGMENT to TRUE iff it thinks that
CURRENT_SECTION and PREVIOUS_SECTION ought to be placed into different
segments. We are allowed an opportunity to override this decision. */