From: Alan Modra Date: Sat, 7 Jun 2014 04:28:53 +0000 (+0930) Subject: PROVIDE in linker script vs. built-in symbols X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=e8d903889d79da551212ad7b2e78af886905767e;p=thirdparty%2Fbinutils-gdb.git PROVIDE in linker script vs. built-in symbols * ldexp.c (exp_fold_tree_1 ): Make PROVIDEd linker script symbol value override a built-in linker symbol. --- diff --git a/ld/ChangeLog b/ld/ChangeLog index 9e3303d905f..0a8eb726055 100644 --- a/ld/ChangeLog +++ b/ld/ChangeLog @@ -1,6 +1,10 @@ 2014-06-12 Alan Modra Backport mainline patches + 2014-06-07 Alan Modra + * ldexp.c (exp_fold_tree_1 ): Make PROVIDEd + linker script symbol value override a built-in linker symbol. + 2014-02-19 Alan Modra * emultempl/ppc64elf.em (params): Init new field. (ppc_create_output_section_statements): Set params.save_restore_funcs diff --git a/ld/ldexp.c b/ld/ldexp.c index 49e7c65f417..6556b08dfbc 100644 --- a/ld/ldexp.c +++ b/ld/ldexp.c @@ -889,7 +889,10 @@ exp_fold_tree_1 (etree_type *tree) if (h == NULL || (h->type != bfd_link_hash_new && h->type != bfd_link_hash_undefined - && h->type != bfd_link_hash_common)) + && h->type != bfd_link_hash_common + && !(h->type == bfd_link_hash_defined + && (h->u.def.section->flags + & SEC_LINKER_CREATED) != 0))) { /* Do nothing. The symbol was never referenced, or was defined by some object. */