ld, testsuite: improve CTF-availability test
authorNick Alcock <nick.alcock@oracle.com>
Wed, 17 Nov 2021 14:47:44 +0000 (14:47 +0000)
committerNick Alcock <nick.alcock@oracle.com>
Wed, 23 Mar 2022 13:38:16 +0000 (13:38 +0000)
commita12c988767e5bd6b6a15dd6ca5e3b277f5627c64
treef978e69ca1980d8abeb156d4ce1cb52172e41d8b
parent5aee45879681a7a76754a25b3f4f96b4529f7ae3
ld, testsuite: improve CTF-availability test

The test for -gctf support in the compiler is used to determine when to
run the ld-ctf tests and most of those in libctf.  Unfortunately,
because it uses check_compiler_available and compile_one_cc, it will
fail whenever the compiler emits anything on stderr, even if it
actually does support CTF perfectly well.

So, instead, ask the compiler to emit assembler output and grep it for
references to ".ctf": this is highly unlikely to be present if the
compiler does not support CTF.  (This will need adjusting when CTF grows
support for non-ELF platforms that don't dot-prepend their section
names, but right now the linker doesn't link CTF on any such platforms
in any case.)

With this in place we can do things like run all the libctf tests under
leak sanitizers etc even if those spray warnings on simple CTF
compilations, rather than being blocked from doing so just when we would
most like to.

ld/
* testsuite/lib/ld-lib.exp (check_ctf_available): detect CTF
even if a CTF-capable compiler emits warnings.
ld/testsuite/lib/ld-lib.exp