binutils-gdb/ld/testsuite/ld-plugin
H.J. Lu 59fa66c538 Handle symbol defined in IR and referenced in DSO
We need to make an IR symbol visible if it is defined in an IR object
and referenced in a dynamic object.  When --as-needed is used, since
linker removes the IR symbol reference of the dynamic object if the
dynamic object isn't needed in the first pass, the IR definition isn't
visible to the dynamic object even if the dynamic object becomes needed
in the second pass.  Add dynamic_ref_after_ir_def to bfd_link_hash_entry
to track IR symbol which is defined in an IR object and later referenced
in a dynamic object.  dynamic_ref_after_ir_def is preserved when restoring
the symbol table for unneeded dynamic object.

bfd/

	PR ld/21382
	* elflink.c (elf_link_add_object_symbols): Preserve
	dynamic_ref_after_ir_def when restoring the symbol table for
	unneeded dynamic object.

include/

	PR ld/21382
	* bfdlink.h (bfd_link_hash_entry): Add dynamic_ref_after_ir_def.

ld/

	PR ld/21382
	* plugin.c (is_visible_from_outside): Symbol may be visible
	from outside if dynamic_ref_after_ir_def is set.
	(plugin_notice): Set dynamic_ref_after_ir_def if the symbol is
	defined in an IR object and referenced in a dynamic object.
	* testsuite/ld-plugin/lto.exp: Run PR ld/21382 tests.
	* testsuite/ld-plugin/pr21382a.c: New file.
	* testsuite/ld-plugin/pr21382b.c: Likewise.
2017-04-20 07:48:35 -07:00
..
dummy.c Add LTO tests 2012-12-07 19:23:50 +00:00
dummy.s Add LTO tests 2012-12-07 19:23:50 +00:00
func.c Add tests for non-object IR file 2015-02-11 05:02:12 -08:00
func1p.c Add plugin visibility test 2012-12-07 19:14:41 +00:00
func2i.c Add plugin visibility test 2012-12-07 19:14:41 +00:00
func3h.c Add plugin visibility test 2012-12-07 19:14:41 +00:00
lto-1a.c Add LTO tests 2012-12-07 19:23:50 +00:00
lto-1b.c Add LTO tests 2012-12-07 19:23:50 +00:00
lto-2.c Add LTO tests 2012-12-07 19:23:50 +00:00
lto-3.d Add LTO tests 2012-12-07 19:23:50 +00:00
lto-3.out Add LTO tests 2012-12-07 19:23:50 +00:00
lto-3a.c Add LTO tests 2012-12-07 19:23:50 +00:00
lto-3b.c Add LTO tests 2012-12-07 19:23:50 +00:00
lto-3c.c Add LTO tests 2012-12-07 19:23:50 +00:00
lto-3r.d Add LTO tests 2012-12-07 19:23:50 +00:00
lto-5.d Add LTO tests 2012-12-07 19:23:50 +00:00
lto-5.out Add LTO tests 2012-12-07 19:23:50 +00:00
lto-5a.c Add LTO tests 2012-12-07 19:23:50 +00:00
lto-5b.c Add LTO tests 2012-12-07 19:23:50 +00:00
lto-5r.d Add LTO tests 2012-12-07 19:23:50 +00:00
lto-6.c Add LTO tests 2012-12-07 19:23:50 +00:00
lto-7.out Add LTO tests 2012-12-07 19:23:50 +00:00
lto-7a.c Add LTO tests 2012-12-07 19:23:50 +00:00
lto-7b.c Add LTO tests 2012-12-07 19:23:50 +00:00
lto-7c.c Add LTO tests 2012-12-07 19:23:50 +00:00
lto-7d.c Add LTO tests 2012-12-07 19:23:50 +00:00
lto-8.out Add LTO tests 2012-12-07 19:23:50 +00:00
lto-8a.c Add LTO tests 2012-12-07 19:23:50 +00:00
lto-8b.c Add LTO tests 2012-12-07 19:23:50 +00:00
lto-9.cc Add LTO tests 2012-12-07 19:23:50 +00:00
lto-9.d Add LTO tests 2012-12-07 19:23:50 +00:00
lto-11.out Add LTO tests 2012-12-07 19:23:50 +00:00
lto-11a.c Add LTO tests 2012-12-07 19:23:50 +00:00
lto-11b.c Add LTO tests 2012-12-07 19:23:50 +00:00
lto-11c.c Add LTO tests 2012-12-07 19:23:50 +00:00
lto-12.out Add LTO tests 2012-12-07 19:23:50 +00:00
lto-12a.c Add LTO tests 2012-12-07 19:23:50 +00:00
lto-12b.c Add LTO tests 2012-12-07 19:23:50 +00:00
lto-12c.c Add LTO tests 2012-12-07 19:23:50 +00:00
lto-13.out Add LTO tests 2012-12-07 19:23:50 +00:00
lto-13a.c Add LTO tests 2012-12-07 19:23:50 +00:00
lto-13b.c Add LTO tests 2012-12-07 19:23:50 +00:00
lto-13c.c Add LTO tests 2012-12-07 19:23:50 +00:00
lto-14.out Add LTO tests 2012-12-07 19:23:50 +00:00
lto-14a.c Add LTO tests 2012-12-07 19:23:50 +00:00
lto-14b.c Add LTO tests 2012-12-07 19:23:50 +00:00
lto-14c.c Add LTO tests 2012-12-07 19:23:50 +00:00
lto-15.out Add LTO tests 2012-12-07 19:23:50 +00:00
lto-15a.c Add LTO tests 2012-12-07 19:23:50 +00:00
lto-15b.c Add LTO tests 2012-12-07 19:23:50 +00:00
lto-16a.c Add LTO tests 2012-12-07 19:23:50 +00:00
lto-16a.d * ld-plugin/lto-16a.d: Match powerpc64 function symbol type. 2013-01-15 05:05:26 +00:00
lto-16b.c Add LTO tests 2012-12-07 19:23:50 +00:00
lto-16b.d * ld-plugin/lto-16a.d: Match powerpc64 function symbol type. 2013-01-15 05:05:26 +00:00
lto-17a.c Add LTO tests 2012-12-07 19:23:50 +00:00
lto-17a.d * ld-plugin/lto-16a.d: Match powerpc64 function symbol type. 2013-01-15 05:05:26 +00:00
lto-17b-1.d Add LTO tests 2012-12-07 19:23:50 +00:00
lto-17b-2.d * ld-plugin/lto-16a.d: Match powerpc64 function symbol type. 2013-01-15 05:05:26 +00:00
lto-17b.c Add LTO tests 2012-12-07 19:23:50 +00:00
lto.exp Handle symbol defined in IR and referenced in DSO 2017-04-20 07:48:35 -07:00
main.c Applied patch series for LD plugin interface (six parts). 2010-10-14 01:31:33 +00:00
pass.out PR ld/20276: Set non_ir_ref on common symbol 2016-06-20 11:26:13 +09:30
plugin-1.d The initial support for LDPT_GET_VIEW 2015-01-28 10:27:31 -08:00
plugin-2.d The initial support for LDPT_GET_VIEW 2015-01-28 10:27:31 -08:00
plugin-3.d The initial support for LDPT_GET_VIEW 2015-01-28 10:27:31 -08:00
plugin-4.d The initial support for LDPT_GET_VIEW 2015-01-28 10:27:31 -08:00
plugin-5.d The initial support for LDPT_GET_VIEW 2015-01-28 10:27:31 -08:00
plugin-6.d PowerPC64 dot-sym testsuite fixes 2016-12-03 20:59:43 +10:30
plugin-7.d PowerPC64 dot-sym testsuite fixes 2016-12-03 20:59:43 +10:30
plugin-8.d PowerPC64 dot-sym testsuite fixes 2016-12-03 20:59:43 +10:30
plugin-9.d The initial support for LDPT_GET_VIEW 2015-01-28 10:27:31 -08:00
plugin-10.d The initial support for LDPT_GET_VIEW 2015-01-28 10:27:31 -08:00
plugin-11.d The initial support for LDPT_GET_VIEW 2015-01-28 10:27:31 -08:00
plugin-12.d PR ld/12365 2011-04-17 23:15:13 +00:00
plugin-13.d PowerPC64 dot-sym testsuite fixes 2016-12-03 20:59:43 +10:30
plugin-14.d PowerPC64 dot-sym testsuite fixes 2016-12-03 20:59:43 +10:30
plugin-15.d PowerPC64 dot-sym testsuite fixes 2016-12-03 20:59:43 +10:30
plugin-16.d PowerPC64 dot-sym testsuite fixes 2016-12-03 20:59:43 +10:30
plugin-17.d Add tests for non-object IR file 2015-02-11 05:02:12 -08:00
plugin-18.d Add tests for non-object IR file 2015-02-11 05:02:12 -08:00
plugin-19.d Add tests for non-object IR file 2015-02-11 05:02:12 -08:00
plugin-20.d PowerPC64 dot-sym testsuite fixes 2016-12-03 20:59:43 +10:30
plugin-21.d PowerPC64 dot-sym testsuite fixes 2016-12-03 20:59:43 +10:30
plugin-22.d PowerPC64 dot-sym testsuite fixes 2016-12-03 20:59:43 +10:30
plugin-23.d PowerPC64 dot-sym testsuite fixes 2016-12-03 20:59:43 +10:30
plugin-24.d Add tests for non-object IR file 2015-02-11 05:02:12 -08:00
plugin-25.d Add tests for non-object IR file 2015-02-11 05:02:12 -08:00
plugin-26.d Add tests for non-object IR file 2015-02-11 05:02:12 -08:00
plugin-27.d Output "warning:" or "error:" in plugin messages 2015-02-11 14:00:51 -08:00
plugin-28.d Output "warning:" or "error:" in plugin messages 2015-02-11 14:00:51 -08:00
plugin-29.d Output "warning:" or "error:" in plugin messages 2015-02-11 14:00:51 -08:00
plugin-30.d ld: Restore file offset after a plugin fails to claim a file 2016-07-19 09:58:01 +01:00
plugin-vis-1.d Properly convert LTO plugin visibility to ELF visibility. 2010-12-06 00:00:15 +00:00
plugin.exp Run more ld tests when not native 2017-01-02 23:48:08 +10:30
pr12365a.c Mark the plugin symbol undefined 2015-02-03 09:03:23 -08:00
pr12365b.c Mark the plugin symbol undefined 2015-02-03 09:03:23 -08:00
pr12365c.c Mark the plugin symbol undefined 2015-02-03 09:03:23 -08:00
pr12696-1.cc Add LTO tests 2012-12-07 19:23:50 +00:00
pr12758a.s Add LTO tests 2012-12-07 19:23:50 +00:00
pr12758b.c Add LTO tests 2012-12-07 19:23:50 +00:00
pr12760a.c Add LTO tests 2012-12-07 19:23:50 +00:00
pr12760b.c PowerPC64 dot-sym testsuite fixes 2016-12-03 20:59:43 +10:30
pr12942.out Add LTO tests 2012-12-07 19:23:50 +00:00
pr12942a.cc PR ld/15227 2013-04-03 11:44:41 +00:00
pr12942a.h Add LTO tests 2012-12-07 19:23:50 +00:00
pr12942b.cc Add LTO tests 2012-12-07 19:23:50 +00:00
pr12942c.cc Add LTO tests 2012-12-07 19:23:50 +00:00
pr12975.c Add LTO tests 2012-12-07 19:23:50 +00:00
pr12975.d Add LTO tests 2012-12-07 19:23:50 +00:00
pr12975.t Add LTO tests 2012-12-07 19:23:50 +00:00
pr12982.c Add LTO tests 2012-12-07 19:23:50 +00:00
pr12982.d PR ld/12982 2013-05-21 07:15:22 +00:00
pr13066.cc Add LTO tests 2012-12-07 19:23:50 +00:00
pr13066.out Add LTO tests 2012-12-07 19:23:50 +00:00
pr13183.d Add LTO tests 2012-12-07 19:23:50 +00:00
pr13183a.c Add LTO tests 2012-12-07 19:23:50 +00:00
pr13183b.c Add LTO tests 2012-12-07 19:23:50 +00:00
pr13201.c Add LTO tests 2012-12-07 19:23:50 +00:00
pr13201.out Add LTO tests 2012-12-07 19:23:50 +00:00
pr13229.cc Add LTO tests 2012-12-07 19:23:50 +00:00
pr13229.d Add LTO tests 2012-12-07 19:23:50 +00:00
pr13244.c Add LTO tests 2012-12-07 19:23:50 +00:00
pr13244.d Add LTO tests 2012-12-07 19:23:50 +00:00
pr13287.cc Add LTO tests 2012-12-07 19:23:50 +00:00
pr14918.c Add a testcase for PR ld/14918 2015-02-03 08:24:50 -08:00
pr14918.d Add a testcase for PR ld/14918 2015-02-03 08:24:50 -08:00
pr15146.d Don't add DT_NEEDED for references from the dummy bfd 2013-02-16 17:54:37 +00:00
pr15146a.c Don't add DT_NEEDED for references from the dummy bfd 2013-02-16 17:54:37 +00:00
pr15146b.c Don't add DT_NEEDED for references from the dummy bfd 2013-02-16 17:54:37 +00:00
pr15146c.c missed from last commit 2013-02-18 04:44:16 +00:00
pr15146d.c Don't add DT_NEEDED for references from the dummy bfd 2013-02-16 17:54:37 +00:00
pr15323.out Set non_ir_ref if a symbol is referenced by a non-shared object 2013-03-30 00:38:39 +00:00
pr15323a.c Add "ld -r" tests for PR ld/15323 2015-09-11 10:02:57 -07:00
pr15323b.c Set non_ir_ref if a symbol is referenced by a non-shared object 2013-03-30 00:38:39 +00:00
pr16746a.c PowerPC64 dot-sym testsuite fixes 2016-12-03 20:59:43 +10:30
pr16746b.c PowerPC64 dot-sym testsuite fixes 2016-12-03 20:59:43 +10:30
pr16746c.c Don't issue a warning for references in LTO IR to warning symbols 2014-08-07 10:28:48 +09:30
pr16746d.c Don't issue a warning for references in LTO IR to warning symbols 2014-08-07 10:28:48 +09:30
pr16846a.c Add tests for PR ld/16846 2014-04-22 10:22:39 -07:00
pr16846b.c Add tests for PR ld/16846 2014-04-22 10:22:39 -07:00
pr16846c.c Add tests for PR ld/16846 2014-04-22 10:22:39 -07:00
pr17973.d Add a testcase for PR ld/17973 2015-02-14 06:26:20 -08:00
pr17973.s Add a testcase for PR ld/17973 2015-02-14 06:26:20 -08:00
pr19317.c ld -r doesn't need plugin for slim lto object 2015-12-10 12:35:50 -08:00
pr19317.out ld -r doesn't need plugin for slim lto object 2015-12-10 12:35:50 -08:00
pr20070.d Handle symbols defined/referenced only within IR 2016-05-12 16:50:52 -07:00
pr20070a.c Handle symbols defined/referenced only within IR 2016-05-12 16:50:52 -07:00
pr20070b.c Handle symbols defined/referenced only within IR 2016-05-12 16:50:52 -07:00
pr20103a.c Skip an archive element if not added by linker 2016-05-25 08:41:05 -07:00
pr20103b.c Skip an archive element if not added by linker 2016-05-25 08:41:05 -07:00
pr20103c.c Skip an archive element if not added by linker 2016-05-25 08:41:05 -07:00
pr20267a.c Use the IR symbol table for the IR input object 2016-06-20 05:10:46 -07:00
pr20267b.c Use the IR symbol table for the IR input object 2016-06-20 05:10:46 -07:00
pr20276a.c PR ld/20276: Set non_ir_ref on common symbol 2016-06-20 11:26:13 +09:30
pr20276b.c PR ld/20276: Set non_ir_ref on common symbol 2016-06-20 11:26:13 +09:30
pr20321.c Warn and return for duplicated plugin 2016-07-04 08:55:20 -07:00
pr21382a.c Handle symbol defined in IR and referenced in DSO 2017-04-20 07:48:35 -07:00
pr21382b.c Handle symbol defined in IR and referenced in DSO 2017-04-20 07:48:35 -07:00
run-ie.c Add LTO tests 2012-12-07 19:23:50 +00:00
run-ie.out Add LTO tests 2012-12-07 19:23:50 +00:00
text.c Applied patch series for LD plugin interface (six parts). 2010-10-14 01:31:33 +00:00