X-Git-Url: http://drtracing.org/?a=blobdiff_plain;f=ld%2Fldemul.c;h=16ddb6dcf5430837890a790ebe49ba698630d590;hb=9a24a2763daa773328a788988048a7b3f344a548;hp=85baeab325885696431ac428bd4b33f3c010e8a6;hpb=dab69f680baf93b577f85c1a9344d7ea7996f466;p=deliverable%2Fbinutils-gdb.git diff --git a/ld/ldemul.c b/ld/ldemul.c index 85baeab325..16ddb6dcf5 100644 --- a/ld/ldemul.c +++ b/ld/ldemul.c @@ -1,7 +1,5 @@ /* ldemul.c -- clearing house for ld emulation states - Copyright 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, - 2001, 2002, 2003, 2005, 2007, 2008, 2009, 2010, 2011, 2012 - Free Software Foundation, Inc. + Copyright (C) 1991-2019 Free Software Foundation, Inc. This file is part of the GNU Binutils. @@ -66,6 +64,12 @@ ldemul_after_open (void) ld_emulation->after_open (); } +void +ldemul_after_check_relocs (void) +{ + ld_emulation->after_check_relocs (); +} + void ldemul_after_allocation (void) { @@ -207,7 +211,7 @@ void after_parse_default (void) { if (entry_symbol.name != NULL - && (link_info.executable || entry_from_cmdline)) + && (bfd_link_executable (&link_info) || entry_from_cmdline)) { bfd_boolean is_vma = FALSE; @@ -221,6 +225,11 @@ after_parse_default (void) if (!is_vma) ldlang_add_undef (entry_symbol.name, entry_from_cmdline); } + if (config.maxpagesize == 0) + config.maxpagesize = bfd_emul_get_maxpagesize (default_target); + if (config.commonpagesize == 0) + config.commonpagesize = bfd_emul_get_commonpagesize (default_target, + link_info.relro); } void @@ -228,6 +237,11 @@ after_open_default (void) { } +void +after_check_relocs_default (void) +{ +} + void after_allocation_default (void) { @@ -237,14 +251,14 @@ after_allocation_default (void) void before_allocation_default (void) { - if (!link_info.relocatable) + if (!bfd_link_relocatable (&link_info)) strip_excluded_output_sections (); } void finish_default (void) { - if (!link_info.relocatable) + if (!bfd_link_relocatable (&link_info)) _bfd_fix_excluded_sec_syms (link_info.output_bfd, &link_info); } @@ -262,13 +276,13 @@ set_output_arch_default (void) void syslib_default (char *ignore ATTRIBUTE_UNUSED) { - info_msg (_("%S SYSLIB ignored\n"), NULL); + info_msg (_("%pS SYSLIB ignored\n"), NULL); } void hll_default (char *ignore ATTRIBUTE_UNUSED) { - info_msg (_("%S HLL ignored\n"), NULL); + info_msg (_("%pS HLL ignored\n"), NULL); } ld_emulation_xfer_type *ld_emulations[] = { EMULATION_LIST }; @@ -330,7 +344,7 @@ ldemul_list_emulation_options (FILE *f) } } - if (! options_found) + if (!options_found) fprintf (f, _(" no emulation specific options.\n")); } @@ -350,3 +364,10 @@ ldemul_new_vers_pattern (struct bfd_elf_version_expr *entry) entry = (*ld_emulation->new_vers_pattern) (entry); return entry; } + +void +ldemul_extra_map_file_text (bfd *abfd, struct bfd_link_info *info, FILE *mapf) +{ + if (ld_emulation->extra_map_file_text) + ld_emulation->extra_map_file_text (abfd, info, mapf); +}