[PATCH 1/2] libctf, testsuite: don't run without a suitable compiler

Nick Alcock nick.alcock@oracle.com
Wed Feb 3 13:19:04 GMT 2021
On 3 Feb 2021, Jan Beulich stated:

> On 05.01.2021 20:52, Nick Alcock via Binutils wrote:
>> We never actually check to see if the compiler supports CTF,
>> or even if a suitable compiler exists.
>> 
>> libctf/ChangeLog
>> 2021-01-05  Nick Alcock  <nick.alcock@oracle.com>
>> 
>> 	* Makefile.am (BASEDIR): New.
>> 	(BFDDIR): Likewise.
>> 	(check-DEJAGNU): Add development.exp to prerequisites.
>> 	(development.exp): New.
>> 	(CONFIG_STATUS_DEPENDENCIES): New.
>> 	(EXTRA_DEJAGNU_SITE_CONFIG): Likewise.
>> 	(DISTCLEANFILES): Likewise.
>> 	* Makefile.in: Regenerated.
>> 	* testsuite/lib/ctf-lib.exp (check_ctf_available): Return boolean.
>> 	* testsuite/libctf-lookup/lookup.exp: Call check_ctf_available.
>> 	* testsuite/libctf-regression/regression.exp: Likewise.
>
> Is there any reason the same check didn't get added here to
> testsuite/libctf-writable/writable.exp?

Yes. The libctf-writable stuff exists to test *writable* dictionaries:
these tests create CTF on the fly using ctf_create and then populate it
using ctf_add_*(), rather than reading in .ctf sections in binaries
created by the linker (with CTF ultimately generated by the compiler).
So no compiler support is needed to run these (and they will happily run
on non-ELF platforms for which I haven't got the linker emitting .ctf
yet). The writable tsts still use run_lookup_test, but because none of
the tests have any source: declared in their .lk files, we end up not
calling GCC with -gt at all.

(Side note: the compiler flag in question will probably be -gctf when
the compiler gets upstream: I'll be submitting changes to switch to
that, and to adjust the test results for the new GCC 11-based compiler
just submitted upstream, fairly soon. There are no synchronization
concerns because if I'm a bit late the only side effect is that the
testsuite isn't run if people install the newer compiler.)

> because the Tcl there is 8.5, but "try" is available only
> from 8.6. I think this dependency would also be nice to be
> checked.

Ah yeah, that's a quite different bug :) will fix soon. I guess I'll
have to conditionalize out the entirety of check-DEJAGNU in
libctf/Makefile.am if Tcl is too old. I could rewrite things to not use
'try' but honestly if you have a Tcl that old I guess a few tests
getting skipped is not too much of a problem.


More information about the Binutils mailing list