aboutsummaryrefslogtreecommitdiff
path: root/ld/testsuite/ld-plugin
diff options
context:
space:
mode:
authorAlan Modra <amodra@gmail.com>2011-04-17 23:15:13 +0000
committerAlan Modra <amodra@gmail.com>2011-04-17 23:15:13 +0000
commit9e2278f567e4ddeb7180ef4e0b3b24e4b087d703 (patch)
treee917203967fd03ed383ff7a74bd7aee910acf4dc /ld/testsuite/ld-plugin
parent0283589814e341df59ca48e497ff6671fbcb5955 (diff)
downloadgdb-9e2278f567e4ddeb7180ef4e0b3b24e4b087d703.zip
gdb-9e2278f567e4ddeb7180ef4e0b3b24e4b087d703.tar.gz
gdb-9e2278f567e4ddeb7180ef4e0b3b24e4b087d703.tar.bz2
PR ld/12365
PR ld/12672 bfd/ * bfd.c (BFD_PLUGIN): Define. (BFD_FLAGS_SAVED, BFD_FLAGS_FOR_BFD_USE_MASK): Add BFD_PLUGIN. * bfd-in2.h: Regenerate. * elflink.c (elf_link_output_extsym): Strip undefined plugin syms. * opncls.c (bfd_make_readable): Don't lose original bfd flags. ld/ * ldfile.c (ldfile_try_open_bfd): Don't attempt any plugin action when no_more_claiming. * ldmain.c (add_archive_element): Likewise. (multiple_definition): Remove plugin_multiple_definition call. (notice): Remove plugin_notice call. * ldlang.c (lang_list_insert_after, void lang_list_remove_tail): Move. Delete prototype. (plugin_insert): New static var. (open_input_bfds): Only rescan libs after plugin insert point. (lang_gc_sections): Omit plugin claimed files. (lang_process): Set plugin_insert. Only rescan when plugin adds objects. * plugin.h (no_more_claiming): Declare. (plugin_notice, plugin_multiple_definition): Don't declare. * plugin.c: Formatting. (orig_notice_all, orig_allow_multiple_defs, orig_callbacks, plugin_callbacks): New static vars. (no_more_claiming): Make global. (plugin_cached_allow_multiple_defs): Delete. (plugin_get_ir_dummy_bfd): Set SEC_EXCLUDE on dummy .text section, use newer bfd_make_section variant. Make COMMON section too. Error handling. Correct setting of gp size. (asymbol_from_plugin_symbol): Properly cast last arg of concat. (message): Likewise for ACONCAT. (asymbol_from_plugin_symbol): Use our COMMON section. (get_symbols): When report_plugin_symbols, show visibility too. (init_non_ironly_hash): Move. Don't test non_ironly_hash. (plugin_load_plugins): Save state of linker callbacks, set up to call plugin_notice instead. Call init_non_ironly_hash here. (plugin_call_all_symbols_read): Set plugin_multiple_definition in plugin callbacks. (plugin_notice): Rewrite. (plugin_multiple_definition): Make static, call original callback. ld/testsuite/ * ld-plugin/plugin-7.d: Adjust for plugin changes. * ld-plugin/plugin-8.d: Likewise. * ld-plugin/plugin.exp: Pass --verbose=2 for visibility test, and compare ld output to.. * ld-plugin/plugin-12.d: New.
Diffstat (limited to 'ld/testsuite/ld-plugin')
-rw-r--r--ld/testsuite/ld-plugin/plugin-12.d6
-rw-r--r--ld/testsuite/ld-plugin/plugin-7.d1
-rw-r--r--ld/testsuite/ld-plugin/plugin-8.d1
-rw-r--r--ld/testsuite/ld-plugin/plugin.exp4
4 files changed, 10 insertions, 2 deletions
diff --git a/ld/testsuite/ld-plugin/plugin-12.d b/ld/testsuite/ld-plugin/plugin-12.d
new file mode 100644
index 0000000..10d7725
--- /dev/null
+++ b/ld/testsuite/ld-plugin/plugin-12.d
@@ -0,0 +1,6 @@
+#...
+.*: symbol `func' definition: 0, visibility: 0, resolution: 2
+.*: symbol `func1' definition: 0, visibility: 1, resolution: 3
+.*: symbol `func2' definition: 0, visibility: 2, resolution: 3
+.*: symbol `func3' definition: 0, visibility: 3, resolution: 3
+#pass
diff --git a/ld/testsuite/ld-plugin/plugin-7.d b/ld/testsuite/ld-plugin/plugin-7.d
index 75f25e0..ba0ed94 100644
--- a/ld/testsuite/ld-plugin/plugin-7.d
+++ b/ld/testsuite/ld-plugin/plugin-7.d
@@ -26,5 +26,6 @@ hook called: claim_file tmpdir/func.o \[@0/.* CLAIMED
hook called: claim_file tmpdir/text.o \[@0/.* not claimed
#...
hook called: all symbols read.
+`func' referenced in section `\.text' of tmpdir/main.o: defined in discarded section .*
hook called: cleanup.
#...
diff --git a/ld/testsuite/ld-plugin/plugin-8.d b/ld/testsuite/ld-plugin/plugin-8.d
index e72b039..8411c31 100644
--- a/ld/testsuite/ld-plugin/plugin-8.d
+++ b/ld/testsuite/ld-plugin/plugin-8.d
@@ -30,5 +30,6 @@ hook called: claim_file tmpdir/text.o \[@0/.* not claimed
hook called: all symbols read.
Sym: '_?func' Resolution: LDPR_PREVAILING_DEF
Sym: '_?func2' Resolution: LDPR_PREVAILING_DEF_IRONLY
+`func' referenced in section `\.text' of tmpdir/main.o: defined in discarded section .*
hook called: cleanup.
#...
diff --git a/ld/testsuite/ld-plugin/plugin.exp b/ld/testsuite/ld-plugin/plugin.exp
index 8952f1d..02319bf 100644
--- a/ld/testsuite/ld-plugin/plugin.exp
+++ b/ld/testsuite/ld-plugin/plugin.exp
@@ -152,8 +152,8 @@ set plugin_extra_elf_tests [list \
-plugin-opt sym:${_}func2::0:2:0 \
-plugin-opt sym:${_}func3::0:3:0 \
-plugin-opt dumpresolutions \
- $testobjfiles $libs" "" "" {{ld plugin-ignore.d} \
- {readelf -s plugin-vis-1.d}} "main.x" ] \
+ -plugin-opt add:tmpdir/func.o \
+ $testobjfiles $libs --verbose=2" "" "" {{ld plugin-12.d}} "main.x" ] \
]
if { !$can_compile || $failed_compile } {