diff options
Diffstat (limited to 'ld/pe-dll.c')
-rw-r--r-- | ld/pe-dll.c | 28 |
1 files changed, 15 insertions, 13 deletions
diff --git a/ld/pe-dll.c b/ld/pe-dll.c index f24b871..210b77e 100644 --- a/ld/pe-dll.c +++ b/ld/pe-dll.c @@ -381,6 +381,7 @@ static const autofilter_entry_type autofilter_liblist[] = { STRING_COMMA_LEN ("libmsvcrt") }, { STRING_COMMA_LEN ("libmsvcrt-os") }, { STRING_COMMA_LEN ("libucrt") }, + { STRING_COMMA_LEN ("libucrtapp") }, { STRING_COMMA_LEN ("libucrtbase") }, { STRING_COMMA_LEN ("libpthread") }, { STRING_COMMA_LEN ("libwinpthread") }, @@ -779,7 +780,7 @@ process_def_file_and_drectve (bfd *abfd ATTRIBUTE_UNUSED, struct bfd_link_info * if (!bfd_generic_link_read_symbols (b)) { - einfo (_("%F%P: %pB: could not read symbols: %E\n"), b); + fatal (_("%P: %pB: could not read symbols: %E\n"), b); return; } @@ -1071,7 +1072,7 @@ build_filler_bfd (bool include_edata) bfd_get_arch (link_info.output_bfd), bfd_get_mach (link_info.output_bfd))) { - einfo (_("%F%P: can not create BFD: %E\n")); + fatal (_("%P: can not create BFD: %E\n")); return; } @@ -1349,7 +1350,7 @@ pe_walk_relocs (struct bfd_link_info *info, if (!bfd_generic_link_read_symbols (b)) { - einfo (_("%F%P: %pB: could not read symbols: %E\n"), b); + fatal (_("%P: %pB: could not read symbols: %E\n"), b); return; } @@ -1430,7 +1431,7 @@ pe_find_data_imports (const char *symhead, if (!bfd_hash_table_init (import_hash, bfd_hash_newfunc, sizeof (struct bfd_hash_entry))) - einfo (_("%F%P: bfd_hash_table_init failed: %E\n")); + fatal (_("%P: bfd_hash_table_init failed: %E\n")); } else import_hash = NULL; @@ -1470,7 +1471,7 @@ pe_find_data_imports (const char *symhead, if (!bfd_generic_link_read_symbols (b)) { - einfo (_("%F%P: %pB: could not read symbols: %E\n"), b); + fatal (_("%P: %pB: could not read symbols: %E\n"), b); return; } @@ -1572,7 +1573,7 @@ generate_reloc (bfd *abfd, struct bfd_link_info *info) if (!bfd_generic_link_read_symbols (b)) { - einfo (_("%F%P: %pB: could not read symbols: %E\n"), b); + fatal (_("%P: %pB: could not read symbols: %E\n"), b); return; } @@ -1619,10 +1620,11 @@ generate_reloc (bfd *abfd, struct bfd_link_info *info) printf ("rel: %s\n", sym->name); } if (!relocs[i]->howto->pc_relative - && relocs[i]->howto->type != pe_details->imagebase_reloc - && (relocs[i]->howto->type < pe_details->secrel_reloc_lo - || relocs[i]->howto->type > pe_details->secrel_reloc_hi) - && relocs[i]->howto->type != pe_details->section_reloc) + && (bfd_get_flavour (b) != bfd_target_coff_flavour + || (relocs[i]->howto->type != pe_details->imagebase_reloc + && (relocs[i]->howto->type < pe_details->secrel_reloc_lo + || relocs[i]->howto->type > pe_details->secrel_reloc_hi) + && relocs[i]->howto->type != pe_details->section_reloc))) { struct bfd_symbol *sym = *relocs[i]->sym_ptr_ptr; const struct bfd_link_hash_entry *blhe @@ -2638,9 +2640,9 @@ make_import_fixup_mark (arelent *rel, char *name) memcpy (fixup_name, buf, prefix_len); bh = NULL; - bfd_coff_link_add_one_symbol (&link_info, abfd, fixup_name, BSF_GLOBAL, - current_sec, /* sym->section, */ - rel->address, NULL, true, false, &bh); + _bfd_generic_link_add_one_symbol (&link_info, abfd, fixup_name, BSF_GLOBAL, + current_sec, /* sym->section, */ + rel->address, NULL, true, false, &bh); return bh->root.string; } |