aboutsummaryrefslogtreecommitdiff
path: root/ld/testsuite/ld-plugin/lto.exp
diff options
context:
space:
mode:
authorH.J. Lu <hjl.tools@gmail.com>2020-07-22 03:49:07 -0700
committerH.J. Lu <hjl.tools@gmail.com>2020-07-22 03:49:17 -0700
commit0e6a3f07f50723d1831291492b96fdf74bcbdc11 (patch)
treea4b39ecfd8c04d2836ef2e5620e5e2169d65572c /ld/testsuite/ld-plugin/lto.exp
parent1ad2776d3db6d82cb59cef1495642fc7fcd57ed5 (diff)
downloadbinutils-0e6a3f07f50723d1831291492b96fdf74bcbdc11.zip
binutils-0e6a3f07f50723d1831291492b96fdf74bcbdc11.tar.gz
binutils-0e6a3f07f50723d1831291492b96fdf74bcbdc11.tar.bz2
ld: Properly override the IR definition
We change the previous definition in the IR object to undefweak only after all LTO symbols have been read. include/ PR ld/26262 PR ld/26267 * bfdlink.h (bfd_link_info): Add lto_all_symbols_read. ld/ PR ld/26262 PR ld/26267 * ldlang.c (lang_process): Set lto_all_symbols_read after all LTO IR symbols have been read. * plugin.c (plugin_notice): Override the IR definition only if all LTO IR symbols have been read or the new definition is non-weak and the the IR definition is weak * testsuite/ld-plugin/lto.exp: Run PR ld/26262 and ld/26267 tests. * testsuite/ld-plugin/pr26262a.c: New file. * testsuite/ld-plugin/pr26262b.c: Likewise. * testsuite/ld-plugin/pr26262c.c: Likewise. * testsuite/ld-plugin/pr26267.err: Likewise. * testsuite/ld-plugin/pr26267a.c: Likewise. * testsuite/ld-plugin/pr26267b.c: Likewise. * testsuite/ld-plugin/pr26267c.c: Likewise.
Diffstat (limited to 'ld/testsuite/ld-plugin/lto.exp')
-rw-r--r--ld/testsuite/ld-plugin/lto.exp40
1 files changed, 40 insertions, 0 deletions
diff --git a/ld/testsuite/ld-plugin/lto.exp b/ld/testsuite/ld-plugin/lto.exp
index 2d6ca68..a44b6cf 100644
--- a/ld/testsuite/ld-plugin/lto.exp
+++ b/ld/testsuite/ld-plugin/lto.exp
@@ -210,6 +210,36 @@ set lto_link_tests [list \
[list "Build pr26163a.o" \
"" "-O2 -fno-lto" \
{pr26163a.c}] \
+ [list "Build pr26262b.o" \
+ "" "-O2" \
+ {pr26262b.c} {} "" "c"] \
+ [list "Build pr26262c.o" \
+ "" "-O2" \
+ {pr26262c.c} {} "" "c"] \
+ [list "Build pr26267a.o" \
+ "" "-O2 -flto $lto_no_fat" \
+ {pr26267a.c} {} "" "c"] \
+ [list "Build pr26267b.o" \
+ "" "-O2" \
+ {pr26267b.c} {} "" "c"] \
+ [list "Build pr26267c.o" \
+ "" "-O2" \
+ {pr26267c.c} {} "" "c"] \
+ [list "Build pr26267a" \
+ "" "-O2" \
+ {pr26267a.c} {} "" "c"] \
+ [list "Build pr26267a" \
+ "-flto tmpdir/pr26267a.o tmpdir/pr26267b.o tmpdir/pr26267c.o" \
+ "-flto $lto_no_fat" \
+ {dummy.c} \
+ {{error_output "pr26267.err"}} \
+ "pr26267a"] \
+ [list "Build pr26267b" \
+ "-flto tmpdir/pr26267b.o tmpdir/pr26267c.o tmpdir/pr26267a.o" \
+ "-flto $lto_no_fat" \
+ {dummy.c} \
+ {{error_output "pr26267.err"}} \
+ "pr26267b"] \
]
if { [at_least_gcc_version 10 0] } {
@@ -510,6 +540,16 @@ set lto_run_tests [list \
{pr26163b.c} "pr24406-2" "pass.out" \
"-flto -O2" "c" "" \
"tmpdir/pr26163a.o -Wl,--defsym,g=real_g"] \
+ [list "Run pr26262a" \
+ "-O2 -flto" "" \
+ {pr26262a.c} "pr26262a" "pass.out" \
+ "-flto -O2" "c" "" \
+ "tmpdir/pr26262b.o tmpdir/pr26262c.o"] \
+ [list "Run pr26262b" \
+ "-flto -O2 tmpdir/pr26262b.o tmpdir/pr26262c.o" "" \
+ {pr26262a.c} "pr26262b" "pass.out" \
+ "-flto -O2" "c" "" \
+ ""] \
]
if { [at_least_gcc_version 4 7] } {