]> git.ipfire.org Git - thirdparty/gcc.git/commit
testsuite,c,c++, Darwin: Allow LTO test link symbols to be undefined. master trunk
authorIain Sandoe <iain@sandoe.co.uk>
Fri, 14 Aug 2026 19:53:19 +0000 (20:53 +0100)
committerIain Sandoe <iain@sandoe.co.uk>
Mon, 17 Aug 2026 21:38:33 +0000 (22:38 +0100)
commit844c665f1701e889b4883df65004dfc310445422
tree8c86a93d3013065b04a68ef451a1cb045b0c8ac5
parent18f299849d3dd151b62e2214dfebaa5ecdebe9b5
testsuite,c,c++, Darwin: Allow LTO test link symbols to be undefined.

We had, for some time, a bug in the target supports that meant that
Darwin was not running tests that required -shared.  Since that was
fixed, we have failed a number of LTO tests.  It turns out that this
had nothing to do with LTO - but was a consequence of the tests
producing DSOs with undefined symbols.  Darwin's linker defaults to
requiring all symbols to be defined at link time unless individually
(-U) or generally (-undefined dynamic_lookup) allowed. For one or two
symbols -U is preferable - but most of these cases have several and
dynamic lookup is a shorter fix.  The extra_ld_flags option is not
additive - and so we must override for Darwin placing that second.

gcc/testsuite/ChangeLog:

* g++.dg/lto/pr108772_0.C: Allow undefined symbols on Darwin.
* g++.dg/lto/pr114790_0.C: Likewise.
* g++.dg/lto/pr119614_0.C: Likewise.
* g++.dg/lto/pr85405_0.C: Likewise.
* g++.dg/lto/pr85405b_0.C: Likewise.
* g++.dg/lto/pr85655_0.C: Likewise.
* g++.dg/lto/pr86523-3_0.C: Likewise.
* g++.dg/lto/pr86585_0.C: Likewise.
* g++.dg/lto/pr87906_0.C: Likewise.
* g++.dg/lto/pr88046_0.C: Likewise.
* g++.dg/lto/pr88758_0.C: Likewise.
* g++.dg/lto/pr89330_0.C: Likewise.
* g++.dg/lto/pr91574_0.C: Likewise.
* g++.dg/lto/pr92609_0.C: Likewise.
* g++.dg/lto/pr93166_0.C: Likewise.
* gcc.dg/lto/pr61526_0.c: Likewise.
* g++.dg/lto/pr87295_0.C: Skip on Darwin.

Signed-off-by: Iain Sandoe <iain@sandoe.co.uk>
17 files changed:
gcc/testsuite/g++.dg/lto/pr108772_0.C
gcc/testsuite/g++.dg/lto/pr114790_0.C
gcc/testsuite/g++.dg/lto/pr119614_0.C
gcc/testsuite/g++.dg/lto/pr85405_0.C
gcc/testsuite/g++.dg/lto/pr85405b_0.C
gcc/testsuite/g++.dg/lto/pr85655_0.C
gcc/testsuite/g++.dg/lto/pr86523-3_0.C
gcc/testsuite/g++.dg/lto/pr86585_0.C
gcc/testsuite/g++.dg/lto/pr87295_0.C
gcc/testsuite/g++.dg/lto/pr87906_0.C
gcc/testsuite/g++.dg/lto/pr88046_0.C
gcc/testsuite/g++.dg/lto/pr88758_0.C
gcc/testsuite/g++.dg/lto/pr89330_0.C
gcc/testsuite/g++.dg/lto/pr91574_0.C
gcc/testsuite/g++.dg/lto/pr92609_0.C
gcc/testsuite/g++.dg/lto/pr93166_0.C
gcc/testsuite/gcc.dg/lto/pr61526_0.c