diff options
author | Matthew Fortune <matthew.fortune@imgtec.com> | 2016-04-14 11:49:53 +0100 |
---|---|---|
committer | Matthew Fortune <matthew.fortune@imgtec.com> | 2016-04-18 12:45:46 +0100 |
commit | cdf969539c718acb1f3f031b2c55d5274a538717 (patch) | |
tree | 003ffa5726fcc2217dc4aafcdeb1efa46ff88b04 /ld/ldlang.h | |
parent | 5947319ef398728052a22575e1d0de0e94e4220f (diff) | |
download | binutils-cdf969539c718acb1f3f031b2c55d5274a538717.zip binutils-cdf969539c718acb1f3f031b2c55d5274a538717.tar.gz binutils-cdf969539c718acb1f3f031b2c55d5274a538717.tar.bz2 |
Add new NOCROSSREFS_TO linker script command
NOCROSSREFS_TO is similar to the existing NOCROSSREFS command but only
checks one direction of cross referencing.
ld/ChangeLog
* ld.texinfo: Document NOCROSSREFS_TO script command.
* ldlang.h (struct lang_nocrossrefs): Add onlyfirst field.
(lang_add_nocrossref_to): New prototype.
* ldcref.c (check_local_sym_xref): Use onlyfirst to only look for
symbols defined in the first section.
(check_nocrossref): Likewise.
* ldgram.y (NOCROSSREFS_TO): New script command.
* ldlang.c (lang_add_nocrossref): Set onlyfirst to FALSE.
(lang_add_nocrossref_to): New function.
* ldlex.l (NOCROSSREFS_TO): New token.
* NEWS: Mention NOCROSSREFS_TO.
* testsuite/ld-scripts/cross4.t: New file.
* testsuite/ld-scripts/cross5.t: Likewise.
* testsuite/ld-scripts/cross6.t: Likewise.
* testsuite/ld-scripts/cross7.t: Likewise.
* testsuite/ld-scripts/crossref.exp: Run 4 new NOCROSSREFS_TO
tests.
Diffstat (limited to 'ld/ldlang.h')
-rw-r--r-- | ld/ldlang.h | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/ld/ldlang.h b/ld/ldlang.h index 65d768b..0cb147c 100644 --- a/ld/ldlang.h +++ b/ld/ldlang.h @@ -464,6 +464,7 @@ struct lang_nocrossrefs { struct lang_nocrossrefs *next; lang_nocrossref_type *list; + bfd_boolean onlyfirst; }; /* This structure is used to hold a list of input section names which @@ -654,6 +655,8 @@ extern void lang_new_phdr etree_type *); extern void lang_add_nocrossref (lang_nocrossref_type *); +extern void lang_add_nocrossref_to + (lang_nocrossref_type *); extern void lang_enter_overlay (etree_type *, etree_type *); extern void lang_enter_overlay_section |