diff options
author | Alan Modra <amodra@gmail.com> | 2021-02-20 15:45:44 +1030 |
---|---|---|
committer | Alan Modra <amodra@gmail.com> | 2021-02-21 14:28:16 +1030 |
commit | 89753bbf8102edc2aa4262a4d43f1a71a10e34f3 (patch) | |
tree | 3afa35082bf7898409aa8e8ff507e8431b32c99d /include | |
parent | 93993f67849234cff651542c3d4d9f0f3d2fa651 (diff) | |
download | fsf-binutils-gdb-89753bbf8102edc2aa4262a4d43f1a71a10e34f3.zip fsf-binutils-gdb-89753bbf8102edc2aa4262a4d43f1a71a10e34f3.tar.gz fsf-binutils-gdb-89753bbf8102edc2aa4262a4d43f1a71a10e34f3.tar.bz2 |
Warn when a script redefines a symbol
Note that we don't even warn if scripts adjust a symbol as in
ld-elf/var1 and ld-scripts/pr14962.
include/
* bfdlink.h (struct bfd_link_info): Add warn_multiple_definition.
ld/
* ldexp.c (exp_fold_tree_1): Warn on script defining a symbol
defined in an object file.
* ldmain.c (multiple_definition): Heed info->warn_multiple_definition.
* testsuite/ld-scripts/defined5.d: Expect a warning.
Diffstat (limited to 'include')
-rw-r--r-- | include/ChangeLog | 4 | ||||
-rw-r--r-- | include/bfdlink.h | 8 |
2 files changed, 10 insertions, 2 deletions
diff --git a/include/ChangeLog b/include/ChangeLog index 71f0beb..616b923 100644 --- a/include/ChangeLog +++ b/include/ChangeLog @@ -1,3 +1,7 @@ +2021-02-21 Alan Modra <amodra@gmail.com> + + * bfdlink.h (struct bfd_link_info): Add warn_multiple_definition. + 2021-02-17 Nick Alcock <nick.alcock@oracle.com> * ctf-api.h (ctf_arc_lookup_symbol_name): New. diff --git a/include/bfdlink.h b/include/bfdlink.h index 079e312..95728b6 100644 --- a/include/bfdlink.h +++ b/include/bfdlink.h @@ -465,12 +465,16 @@ struct bfd_link_info statics. */ unsigned int task_link: 1; - /* TRUE if ok to have multiple definition. */ + /* TRUE if ok to have multiple definitions, without warning. */ unsigned int allow_multiple_definition: 1; - /* TRUE if ok to have prohibit multiple definition of absolute symbols. */ + /* TRUE if multiple definition of absolute symbols (eg. from -R) should + be reported. */ unsigned int prohibit_multiple_definition_absolute: 1; + /* TRUE if multiple definitions should only warn. */ + unsigned int warn_multiple_definition: 1; + /* TRUE if ok to have version with no definition. */ unsigned int allow_undefined_version: 1; |