diff options
Diffstat (limited to 'ld')
-rw-r--r-- | ld/ChangeLog | 11 | ||||
-rw-r--r-- | ld/emultempl/elf.em | 9 | ||||
-rw-r--r-- | ld/emultempl/ppc32elf.em | 2 | ||||
-rw-r--r-- | ld/ld.h | 6 | ||||
-rw-r--r-- | ld/ldemul.c | 13 | ||||
-rw-r--r-- | ld/ldexp.c | 8 |
6 files changed, 26 insertions, 23 deletions
diff --git a/ld/ChangeLog b/ld/ChangeLog index 9a0ff59..46acbd9 100644 --- a/ld/ChangeLog +++ b/ld/ChangeLog @@ -1,3 +1,14 @@ +2020-12-16 Alan Modra <amodra@gmail.com> + + * ld.h (ld_config_type): Delete maxpagesize and commonpagesize. + * emultempl/elf.em: Use link_info rather than config + for maxpagesize and commonpagesize. + * emultempl/ppc32elf.em: Likewise. + * ldexp.c (fold_binary, fold_name): Likewise. + * ldemul.c (after_parse_default): Likewise. + (set_output_arch_default): Don't call bfd_emul_set_maxpagesize + or bfd_emul_set_commonpagesize. + 2020-12-15 Vivek Das Mohapatra <vivek@collabora.com> * emultempl/elf.em (gld${EMULATION_NAME}_handle_option): diff --git a/ld/emultempl/elf.em b/ld/emultempl/elf.em index aa40c78..b915ad5 100644 --- a/ld/emultempl/elf.em +++ b/ld/emultempl/elf.em @@ -716,17 +716,18 @@ fragment <<EOF { char *end; - config.maxpagesize = strtoul (optarg + 14, &end, 0); - if (*end || (config.maxpagesize & (config.maxpagesize - 1)) != 0) + link_info.maxpagesize = strtoul (optarg + 14, &end, 0); + if (*end + || (link_info.maxpagesize & (link_info.maxpagesize - 1)) != 0) einfo (_("%F%P: invalid maximum page size \`%s'\n"), optarg + 14); } else if (CONST_STRNEQ (optarg, "common-page-size=")) { char *end; - config.commonpagesize = strtoul (optarg + 17, &end, 0); + link_info.commonpagesize = strtoul (optarg + 17, &end, 0); if (*end - || (config.commonpagesize & (config.commonpagesize - 1)) != 0) + || (link_info.commonpagesize & (link_info.commonpagesize - 1)) != 0) einfo (_("%F%P: invalid common page size \`%s'\n"), optarg + 17); } diff --git a/ld/emultempl/ppc32elf.em b/ld/emultempl/ppc32elf.em index 0402ffb..9d8e933 100644 --- a/ld/emultempl/ppc32elf.em +++ b/ld/emultempl/ppc32elf.em @@ -51,7 +51,7 @@ ppc_after_open_output (void) params.emit_stub_syms = (link_info.emitrelocations || bfd_link_pic (&link_info)); if (params.pagesize == 0) - params.pagesize = config.commonpagesize; + params.pagesize = link_info.commonpagesize; ppc_elf_link_params (&link_info, ¶ms); } @@ -294,12 +294,6 @@ typedef struct /* The size of the hash table to use. */ unsigned long hash_table_size; - /* The maximum page size for ELF. */ - bfd_vma maxpagesize; - - /* The common page size for ELF. */ - bfd_vma commonpagesize; - /* If set, print discarded sections in map file output. */ bfd_boolean print_map_discarded; diff --git a/ld/ldemul.c b/ld/ldemul.c index 920afc8..fc51493 100644 --- a/ld/ldemul.c +++ b/ld/ldemul.c @@ -232,11 +232,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); + if (link_info.maxpagesize == 0) + link_info.maxpagesize = bfd_emul_get_maxpagesize (default_target); + if (link_info.commonpagesize == 0) + link_info.commonpagesize = bfd_emul_get_commonpagesize (default_target, + link_info.relro); } void @@ -303,9 +303,6 @@ set_output_arch_default (void) /* Set the output architecture and machine if possible. */ bfd_set_arch_mach (link_info.output_bfd, ldfile_output_architecture, ldfile_output_machine); - - bfd_emul_set_maxpagesize (output_target, config.maxpagesize); - bfd_emul_set_commonpagesize (output_target, config.commonpagesize); } void @@ -547,8 +547,8 @@ fold_binary (etree_type *tree) { if (!seg->used && config.magic_demand_paged - && config.maxpagesize != 0 - && (seg->value % config.maxpagesize) != 0) + && link_info.maxpagesize != 0 + && (seg->value % link_info.maxpagesize) != 0) einfo (_("%P: warning: address of `%s' " "isn't multiple of maximum page size\n"), segment_name); @@ -898,9 +898,9 @@ fold_name (etree_type *tree) case CONSTANT: if (strcmp (tree->name.name, "MAXPAGESIZE") == 0) - new_number (config.maxpagesize); + new_number (link_info.maxpagesize); else if (strcmp (tree->name.name, "COMMONPAGESIZE") == 0) - new_number (config.commonpagesize); + new_number (link_info.commonpagesize); else einfo (_("%F%P:%pS: unknown constant `%s' referenced in expression\n"), tree, tree->name.name); |