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: https://git.libre-soc.org/?a=commitdiff_plain;h=b893397a4b1316610f49819344817715e4305de9;p=binutils-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 c42cdc8adea..19f71ab946a 100644 --- a/ld/ChangeLog +++ b/ld/ChangeLog @@ -1,3 +1,8 @@ +2014-06-07 Alan Modra + + * ldexp.c (exp_fold_tree_1 ): Make PROVIDEd + linker script symbol value override a built-in linker symbol. + 2014-06-05 Joel Brobecker * Makefile.am (CONFIG_STATUS_DEPENDENCIES): Add dependency on diff --git a/ld/ldexp.c b/ld/ldexp.c index d573fb79db7..5c4f8ddaa9f 100644 --- a/ld/ldexp.c +++ b/ld/ldexp.c @@ -1001,7 +1001,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. */