X-Git-Url: http://drtracing.org/?a=blobdiff_plain;f=ld%2Femultempl%2Faix.em;h=de313e1f1741d63b979ec7074f43e8b4d736e7c6;hb=d27c357a5b83773054e85ff3ea5dbfe18b9dd3c0;hp=4965ad2f2f48ce7ce03f1f3a4bf18028bee02b9e;hpb=5c3261b0e834647cf9eb555320e20871b7854f98;p=deliverable%2Fbinutils-gdb.git diff --git a/ld/emultempl/aix.em b/ld/emultempl/aix.em index 4965ad2f2f..de313e1f17 100644 --- a/ld/emultempl/aix.em +++ b/ld/emultempl/aix.em @@ -9,7 +9,7 @@ fragment < AIX support by Ian Lance Taylor AIX 64 bit support by Tom Rix @@ -40,6 +40,7 @@ fragment <name, FALSE, FALSE, FALSE); if (h == NULL) - einfo (_("%P%F: bfd_link_hash_lookup of export symbol failed: %E\n")); + einfo (_("%F%P: bfd_link_hash_lookup of export symbol failed: %E\n")); if (!bfd_xcoff_export_symbol (link_info.output_bfd, &link_info, h)) - einfo (_("%P%F: bfd_xcoff_export_symbol failed: %E\n")); + einfo (_("%F%P: bfd_xcoff_export_symbol failed: %E\n")); } /* Track down all relocations called for by the linker script (these @@ -835,7 +837,7 @@ gld${EMULATION_NAME}_before_allocation (void) maxstack, maxdata, gc && !unix_ld ? TRUE : FALSE, modtype, textro ? TRUE : FALSE, flags, special_sections, rtld ? TRUE : FALSE)) - einfo (_("%P%F: failed to set dynamic section sizes: %E\n")); + einfo (_("%F%P: failed to set dynamic section sizes: %E\n")); /* Look through the special sections, and put them in the right place in the link ordering. This is especially magic. */ @@ -857,7 +859,7 @@ gld${EMULATION_NAME}_before_allocation (void) is = NULL; os = lang_output_section_get (sec->output_section); if (os == NULL) - einfo (_("%P%F: can't find output section %s\n"), + einfo (_("%F%P: can't find output section %s\n"), sec->output_section->name); for (pls = &os->children.head; *pls != NULL; pls = &(*pls)->header.next) @@ -894,8 +896,8 @@ gld${EMULATION_NAME}_before_allocation (void) if (is == NULL) { - einfo (_("%P%F: can't find %s in output section\n"), - bfd_get_section_name (sec->owner, sec)); + einfo (_("%F%P: can't find %s in output section\n"), + bfd_section_name (sec)); } /* Now figure out where the section should go. */ @@ -945,9 +947,8 @@ gld${EMULATION_NAME}_before_allocation (void) else { is->header.next = NULL; - lang_statement_append (&os->children, - (lang_statement_union_type *) is, - &is->header.next); + *os->children.tail = (lang_statement_union_type *) is; + os->children.tail = &is->header.next; } } @@ -1109,7 +1110,7 @@ gld${EMULATION_NAME}_read_file (const char *filename, bfd_boolean import) if (f == NULL) { bfd_set_error (bfd_error_system_call); - einfo ("%F%s: %E\n", filename); + einfo ("%F%P: %s: %E\n", filename); return; } @@ -1171,7 +1172,7 @@ gld${EMULATION_NAME}_read_file (const char *filename, bfd_boolean import) obstack_free (o, obstack_base (o)); } else if (*s == '(') - einfo (_("%F%s%d: #! ([member]) is not supported " + einfo (_("%F%P:%s:%d: #! ([member]) is not supported " "in import files\n"), filename, lineno); else @@ -1188,7 +1189,7 @@ gld${EMULATION_NAME}_read_file (const char *filename, bfd_boolean import) *s = '\0'; if (!bfd_xcoff_split_import_path (link_info.output_bfd, start, &imppath, &impfile)) - einfo (_("%F%P: Could not parse import path: %E\n")); + einfo (_("%F%P: could not parse import path: %E\n")); while (ISSPACE (cs)) { ++s; @@ -1198,7 +1199,7 @@ gld${EMULATION_NAME}_read_file (const char *filename, bfd_boolean import) { impmember = ""; if (cs != '\0') - einfo (_("%s:%d: warning: syntax error in import file\n"), + einfo (_("%P:%s:%d: warning: syntax error in import file\n"), filename, lineno); } else @@ -1210,7 +1211,7 @@ gld${EMULATION_NAME}_read_file (const char *filename, bfd_boolean import) if (*s == ')') *s = '\0'; else - einfo (_("%s:%d: warning: syntax error in import file\n"), + einfo (_("%P:%s:%d: warning: syntax error in import file\n"), filename, lineno); } } @@ -1245,7 +1246,7 @@ gld${EMULATION_NAME}_read_file (const char *filename, bfd_boolean import) while (ISSPACE (*se)) ++se; if (*se != '\0') - einfo (_("%s%d: warning: syntax error in " + einfo (_("%P:%s%d: warning: syntax error in " "import/export file\n"), filename, lineno); } @@ -1263,7 +1264,7 @@ gld${EMULATION_NAME}_read_file (const char *filename, bfd_boolean import) address = bfd_scan_vma (s, &end, 0); if (*end != '\0') { - einfo (_("%s:%d: warning: syntax error in " + einfo (_("%P:%s:%d: warning: syntax error in " "import/export file\n"), filename, lineno); @@ -1298,7 +1299,7 @@ gld${EMULATION_NAME}_read_file (const char *filename, bfd_boolean import) &link_info, h, address, imppath, impfile, impmember, syscall_flag)) - einfo (_("%X%s:%d: failed to import symbol %s: %E\n"), + einfo (_("%X%P:%s:%d: failed to import symbol %s: %E\n"), filename, lineno, symname); } } @@ -1308,7 +1309,7 @@ gld${EMULATION_NAME}_read_file (const char *filename, bfd_boolean import) if (obstack_object_size (o) > 0) { - einfo (_("%s:%d: warning: ignoring unterminated last line\n"), + einfo (_("%P:%s:%d: warning: ignoring unterminated last line\n"), filename, lineno); obstack_free (o, obstack_base (o)); } @@ -1374,7 +1375,7 @@ gld${EMULATION_NAME}_find_exp_assignment (etree_type *exp) if (!bfd_xcoff_record_link_assignment (link_info.output_bfd, &link_info, exp->assign.dst)) - einfo (_("%P%F: failed to record assignment to %s: %E\n"), + einfo (_("%F%P: failed to record assignment to %s: %E\n"), exp->assign.dst); } gld${EMULATION_NAME}_find_exp_assignment (exp->assign.src); @@ -1472,7 +1473,7 @@ gld${EMULATION_NAME}_create_output_section_statements (void) bfd_get_arch (link_info.output_bfd), bfd_get_mach (link_info.output_bfd))) { - einfo (_("%X%P: can not create BFD %E\n")); + einfo (_("%F%P: can not create BFD: %E\n")); return; } @@ -1482,7 +1483,7 @@ gld${EMULATION_NAME}_create_output_section_statements (void) link_info.fini_function, rtld)) { - einfo (_("%X%P: can not create BFD %E\n")); + einfo (_("%F%P: can not create BFD: %E\n")); return; } @@ -1533,6 +1534,36 @@ gld${EMULATION_NAME}_open_dynamic_archive (const char *arch, return TRUE; } +static bfd_boolean +gld${EMULATION_NAME}_print_symbol (struct bfd_link_hash_entry *hash_entry, + void *ptr) +{ + asection *sec = (asection *) ptr; + + if ((hash_entry->type == bfd_link_hash_defined + || hash_entry->type == bfd_link_hash_defweak) + && sec == hash_entry->u.def.section) + { + int i; + struct xcoff_link_hash_entry *h; + + for (i = 0; i < SECTION_NAME_MAP_LENGTH; i++) + print_space (); + minfo ("0x%V ", + (hash_entry->u.def.value + + hash_entry->u.def.section->output_offset + + hash_entry->u.def.section->output_section->vma)); + + /* Flag symbol if it has been garbage collected. */ + h = (struct xcoff_link_hash_entry *) hash_entry; + if ((h != NULL) && !(h->flags & XCOFF_MARK)) + minfo (" -->gc"); + minfo (" %pT\n", hash_entry->root.string); + } + + return TRUE; +} + struct ld_emulation_xfer_struct ld_${EMULATION_NAME}_emulation = { gld${EMULATION_NAME}_before_parse, syslib_default, @@ -1540,6 +1571,7 @@ struct ld_emulation_xfer_struct ld_${EMULATION_NAME}_emulation = { after_parse_default, gld${EMULATION_NAME}_after_open, after_check_relocs_default, + before_place_orphans_default, after_allocation_default, gld${EMULATION_NAME}_set_output_arch, gld${EMULATION_NAME}_choose_target, @@ -1560,6 +1592,9 @@ struct ld_emulation_xfer_struct ld_${EMULATION_NAME}_emulation = { NULL, /* recognized_file */ NULL, /* find potential_libraries */ NULL, /* new_vers_pattern */ - NULL /* extra_map_file_text */ + NULL, /* extra_map_file_text */ + ${LDEMUL_EMIT_CTF_EARLY-NULL}, + ${LDEMUL_EXAMINE_STRTAB_FOR_CTF-NULL}, + gld${EMULATION_NAME}_print_symbol }; EOF