ldfile_set_output_arch ("${OUTPUT_ARCH}", bfd_arch_`echo ${ARCH} | sed -e 's/:.*//'`);
input_flags.dynamic = ${DYNAMIC_LINK-TRUE};
config.has_shared = `if test -n "$GENERATE_SHLIB_SCRIPT" ; then echo TRUE ; else echo FALSE ; fi`;
+ config.separate_code = `if test "x${SEPARATE_CODE}" = xyes ; then echo TRUE ; else echo FALSE ; fi`;
}
EOF
return FALSE;
bfd_elf_set_dyn_lib_class (entry->the_bfd,
- (enum dynamic_lib_link_class) link_class);
+ (enum dynamic_lib_link_class) link_class);
/* Continue on with normal load_symbols processing. */
return FALSE;
{
struct elf_obj_tdata *t = elf_tdata (link_info.output_bfd);
struct build_id_info *b =
- (struct build_id_info *) xmalloc (sizeof *b);
+ (struct build_id_info *) xmalloc (sizeof *b);
b->style = link_info.emit_note_gnu_build_id;
b->sec = s;
fragment <<EOF
/* used by before_allocation and handle_option. */
-static void
+static void
gld${EMULATION_NAME}_append_to_separated_string (char **to, char *op_arg)
{
if (*to == NULL)
{
const char *audit_libs = elf_dt_audit (abfd);
- /* If the input bfd contains an audit entry, we need to add it as
+ /* If the input bfd contains an audit entry, we need to add it as
a dep audit entry. */
if (audit_libs && *audit_libs != '\0')
{
if test x"$GENERATE_SHLIB_SCRIPT" = xyes; then
fragment <<EOF
case OPTION_AUDIT:
- gld${EMULATION_NAME}_append_to_separated_string (&audit, optarg);
+ gld${EMULATION_NAME}_append_to_separated_string (&audit, optarg);
break;
case 'P':
fragment <<EOF
fprintf (file, _("\
-P AUDITLIB, --depaudit=AUDITLIB\n" "\
- Specify a library to use for auditing dependencies\n"));
+ Specify a library to use for auditing dependencies\n"));
fprintf (file, _("\
--disable-new-dtags Disable new dynamic tags\n"));
fprintf (file, _("\
fragment <<EOF
fprintf (file, _("\
-z global Make symbols in DSO available for subsequently\n\
- loaded objects\n"));
+ loaded objects\n"));
fprintf (file, _("\
-z initfirst Mark DSO to be initialized first at runtime\n"));
fprintf (file, _("\
-z now Mark object non-lazy runtime binding\n"));
fprintf (file, _("\
-z origin Mark object requiring immediate \$ORIGIN\n\
- processing at runtime\n"));
+ processing at runtime\n"));
fprintf (file, _("\
-z relro Create RELRO program header\n"));
fprintf (file, _("\
if (member->usrdata != NULL)
{
walk_wild_section (s,
- (lang_input_statement_type *) member->usrdata,
- callback, data);
+ (lang_input_statement_type *) member->usrdata,
+ callback, data);
}
member = bfd_openr_next_archived_file (f->the_bfd, member);
else
{
p = (lang_input_statement_type *)
- stat_alloc (sizeof (lang_input_statement_type));
+ stat_alloc (sizeof (lang_input_statement_type));
p->header.type = lang_input_statement_enum;
p->header.next = NULL;
}
if (entry == NULL)
{
entry = (struct bfd_hash_entry *) bfd_hash_allocate (table,
- sizeof (*ret));
+ sizeof (*ret));
if (entry == NULL)
return entry;
}
for (r = lang_memory_region_list; r != NULL; r = r->next)
for (n = &r->name_list; n != NULL; n = n->next)
if (strcmp (n->name, name) == 0)
- {
- if (create)
- einfo (_("%P:%S: warning: redeclaration of memory region `%s'\n"),
- NULL, name);
- return r;
- }
+ {
+ if (create)
+ einfo (_("%P:%S: warning: redeclaration of memory region `%s'\n"),
+ NULL, name);
+ return r;
+ }
if (!create && strcmp (name, DEFAULT_MEMORY_REGION))
einfo (_("%P:%S: warning: memory region `%s' not declared\n"),
for (r = lang_memory_region_list; r != NULL; r = r->next)
for (n = &r->name_list; n != NULL; n = n->next)
{
- if (region == NULL && strcmp (n->name, region_name) == 0)
- region = r;
- if (strcmp (n->name, alias) == 0)
- einfo (_("%F%P:%S: error: redefinition of memory region "
- "alias `%s'\n"),
- NULL, alias);
+ if (region == NULL && strcmp (n->name, region_name) == 0)
+ region = r;
+ if (strcmp (n->name, alias) == 0)
+ einfo (_("%F%P:%S: error: redefinition of memory region "
+ "alias `%s'\n"),
+ NULL, alias);
}
/* Check if the target region exists. */
if (region == NULL)
einfo (_("%F%P:%S: error: memory region `%s' "
- "for alias `%s' does not exist\n"),
- NULL, region_name, alias);
+ "for alias `%s' does not exist\n"),
+ NULL, region_name, alias);
/* Add alias to region name list. */
n = (lang_memory_region_name *) stat_alloc (sizeof (lang_memory_region_name));
os_tail = ((lang_output_section_statement_type **)
lang_output_section_statement.tail);
os = lang_enter_output_section_statement (secname, address, normal_section,
- NULL, NULL, NULL, constraint);
+ NULL, NULL, NULL, constraint);
ps = NULL;
if (config.build_constructors && *os_tail == os)
struct map_symbol_def *def;
ud = (struct fat_user_section_struct *)
- get_userdata (hash_entry->u.def.section);
+ get_userdata (hash_entry->u.def.section);
if (! ud)
{
/* ??? What do we have to do to initialize this beforehand? */
/* The first time we get here is bfd_abs_section... */
init_map_userdata (0, hash_entry->u.def.section, 0);
ud = (struct fat_user_section_struct *)
- get_userdata (hash_entry->u.def.section);
+ get_userdata (hash_entry->u.def.section);
}
else if (!ud->map_symbol_def_tail)
ud->map_symbol_def_tail = &ud->map_symbol_def_head;
if (!link_info.reduce_memory_overheads)
{
fat_section_userdata_type *new_userdata = (fat_section_userdata_type *)
- stat_alloc (sizeof (fat_section_userdata_type));
+ stat_alloc (sizeof (fat_section_userdata_type));
memset (new_userdata, 0, sizeof (fat_section_userdata_type));
get_userdata (s->bfd_section) = new_userdata;
}
keep = bfd_lookup_section_flags (&link_info, sflag_info, section);
if (!keep)
- return;
+ return;
}
if (section->output_section != NULL)
entries[i] = def->entry;
qsort (entries, ud->map_symbol_def_count, sizeof (*entries),
- hash_entry_addr_cmp);
+ hash_entry_addr_cmp);
/* Print the symbols. */
for (i = 0; i < ud->map_symbol_def_count; i++)
{
/* Make a new padding statement, linked into existing chain. */
pad = (lang_statement_union_type *)
- stat_alloc (sizeof (lang_padding_statement_type));
+ stat_alloc (sizeof (lang_padding_statement_type));
pad->header.next = *ptr;
*ptr = pad;
pad->header.type = lang_padding_statement_enum;
if (current_section == NULL || previous_section == NULL)
return new_segment;
+ /* If this flag is set, the target never wants code and non-code
+ sections comingled in the same segment. */
+ if (config.separate_code
+ && ((current_section->flags ^ previous_section->flags) & SEC_CODE))
+ return TRUE;
+
/* Find the memory regions associated with the two sections.
We call lang_output_section_find() here rather than scanning the list
of output sections looking for a matching section pointer because if
{
alc *= 2;
secs = (asection **) xrealloc (secs,
- alc * sizeof (asection *));
+ alc * sizeof (asection *));
}
secs[c] = os->bfd_section;
++c;
{
e.pattern = c_sym;
expr = (struct bfd_elf_version_expr *)
- htab_find ((htab_t) head->htab, &e);
+ htab_find ((htab_t) head->htab, &e);
while (expr && strcmp (expr->pattern, c_sym) == 0)
if (expr->mask == BFD_ELF_VERSION_C_TYPE)
goto out_ret;
{
e.pattern = cxx_sym;
expr = (struct bfd_elf_version_expr *)
- htab_find ((htab_t) head->htab, &e);
+ htab_find ((htab_t) head->htab, &e);
while (expr && strcmp (expr->pattern, cxx_sym) == 0)
if (expr->mask == BFD_ELF_VERSION_CXX_TYPE)
goto out_ret;
{
e.pattern = java_sym;
expr = (struct bfd_elf_version_expr *)
- htab_find ((htab_t) head->htab, &e);
+ htab_find ((htab_t) head->htab, &e);
while (expr && strcmp (expr->pattern, java_sym) == 0)
if (expr->mask == BFD_ELF_VERSION_JAVA_TYPE)
goto out_ret;
if (t->locals.htab && e1->literal)
{
e2 = (struct bfd_elf_version_expr *)
- htab_find ((htab_t) t->locals.htab, e1);
+ htab_find ((htab_t) t->locals.htab, e1);
while (e2 && strcmp (e1->pattern, e2->pattern) == 0)
{
if (e1->mask == e2->mask)
if (t->globals.htab && e1->literal)
{
e2 = (struct bfd_elf_version_expr *)
- htab_find ((htab_t) t->globals.htab, e1);
+ htab_find ((htab_t) t->globals.htab, e1);
while (e2 && strcmp (e1->pattern, e2->pattern) == 0)
{
if (e1->mask == e2->mask)