Run ar with --plugin for LTO 11 test
Objects built with -fno-fat-lto-objects (the default for gcc-4.9) have no normal symbols, except things like __gnu_lto_slim. These useless symbols are the ones put into the archive index, and of course nothing references them so no objects are extracted by the linker. Running ar with --plugin changes ar behaviour to put the lto symbols into the archive index. PR 17112 * ld-plugin/lto.exp: When building liblti-11.a, pass --plugin path_to_gcc/liblto_plugin.so to ar.
This commit is contained in:
parent
e29c73ebde
commit
37a6ac445d
@ -1,3 +1,9 @@
|
||||
2014-07-08 Alan Modra <amodra@gmail.com>
|
||||
|
||||
PR 17112
|
||||
* ld-plugin/lto.exp: When building liblti-11.a, pass
|
||||
--plugin path_to_gcc/liblto_plugin.so to ar.
|
||||
|
||||
2014-07-07 Alan Modra <amodra@gmail.com>
|
||||
|
||||
* lib/ld-lib.exp (check_lto_shared_available): Reinstate compiler
|
||||
|
@ -324,7 +324,20 @@ if { [is_elf_format] && [check_lto_shared_available] } {
|
||||
|
||||
set testname "Build liblto-11.a"
|
||||
remote_file host delete "tmpdir/liblto-11.a"
|
||||
set catch_output [run_host_cmd "$ar" "rc tmpdir/liblto-11.a tmpdir/lto-11a.o tmpdir/lto-11b.o tmpdir/lto-11c.o"]
|
||||
set plugin_names {
|
||||
liblto_plugin.so
|
||||
liblto_plugin-0.dll
|
||||
cyglto_plugin-0.dll
|
||||
}
|
||||
set plug_opt ""
|
||||
foreach plug $plugin_names {
|
||||
set plug_so [run_host_cmd $CC "--print-prog-name $plug"]
|
||||
if { $plug_so ne $plug } then {
|
||||
set plug_opt "--plugin $plug_so"
|
||||
break
|
||||
}
|
||||
}
|
||||
set catch_output [run_host_cmd "$ar" "rc $plug_opt tmpdir/liblto-11.a tmpdir/lto-11a.o tmpdir/lto-11b.o tmpdir/lto-11c.o"]
|
||||
if {![string match "" $catch_output]} {
|
||||
unresolved $testname
|
||||
restore_notify
|
||||
|
Loading…
Reference in New Issue
Block a user