diff options
author | H.J. Lu <hjl.tools@gmail.com> | 2016-05-12 16:50:34 -0700 |
---|---|---|
committer | H.J. Lu <hjl.tools@gmail.com> | 2016-05-12 16:50:52 -0700 |
commit | 3355cb3b643bd50aafae768e7cf990d4bec40fe1 (patch) | |
tree | c16b986fd942a0b25ab494d5635d97d5fdd5de62 /ld/Makefile.am | |
parent | 8ddd5a6cd692ca8c4041d9fb64cbb4e0585d4aa1 (diff) | |
download | binutils-gdb-3355cb3b643bd50aafae768e7cf990d4bec40fe1.tar.gz |
Handle symbols defined/referenced only within IR
The plugin is called to claim symbols in an archive element from
plugin_object_p. But those symbols aren't needed to create output.
They are defined and referenced only within IR. get_symbols should
return resolution based on IR symbol kinds.
PR ld/20070
* Makefile.am (noinst_LTLIBRARIES): Add libldtestplug4.la.
(libldtestplug4_la_SOURCES): New.
(libldtestplug4_la_CFLAGS): Likewise.
(libldtestplug4_la_LDFLAGS): Likewise.
* Makefile.in: Regenerated.
* plugin.c (get_symbols): Return resolution based on IR symbol
kinds for symbols defined/referenced only within IR.
* testplug4.c: New file.
* ld/testsuite/ld-plugin/pr20070.d: Likewise.
* ld/testsuite/ld-plugin/pr20070a.c: Likewise.
* ld/testsuite/ld-plugin/pr20070b.c: Likewise.
* testsuite/ld-plugin/plugin.exp (plugin4_name): New.
(plugin4_path): Likewise.
Add a test for ld/20070.
Diffstat (limited to 'ld/Makefile.am')
-rw-r--r-- | ld/Makefile.am | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/ld/Makefile.am b/ld/Makefile.am index bf50e70f5fa..1c03e7b3248 100644 --- a/ld/Makefile.am +++ b/ld/Makefile.am @@ -2138,7 +2138,8 @@ bootstrap: ld3$(EXEEXT) # Build a dummy plugin using libtool. # if ENABLE_PLUGINS -noinst_LTLIBRARIES = libldtestplug.la libldtestplug2.la libldtestplug3.la +noinst_LTLIBRARIES = libldtestplug.la libldtestplug2.la \ + libldtestplug3.la libldtestplug4.la libldtestplug_la_SOURCES = testplug.c libldtestplug_la_CFLAGS= -g -O2 libldtestplug_la_LDFLAGS = -no-undefined -rpath /nowhere @@ -2148,6 +2149,9 @@ libldtestplug2_la_LDFLAGS = -no-undefined -rpath /nowhere libldtestplug3_la_SOURCES = testplug3.c libldtestplug3_la_CFLAGS= -g -O2 libldtestplug3_la_LDFLAGS = -no-undefined -rpath /nowhere +libldtestplug4_la_SOURCES = testplug4.c +libldtestplug4_la_CFLAGS= -g -O2 +libldtestplug4_la_LDFLAGS = -no-undefined -rpath /nowhere endif # DOCUMENTATION TARGETS |