libctf, tests: do not assume host and target have identical field offsets
authorNick Alcock <nick.alcock@oracle.com>
Wed, 5 Apr 2023 15:36:45 +0000 (16:36 +0100)
committerNick Alcock <nick.alcock@oracle.com>
Sat, 8 Apr 2023 15:07:17 +0000 (16:07 +0100)
commit30a794e9f1db2de9099ed4c494d917d4e86de0fd
tree0f4cfb385762718ccc854508b9507a99e9b77ac6
parent2dd5ec24c8560a7aca27475b1698aa3f133c3eae
libctf, tests: do not assume host and target have identical field offsets

The newly-introduced libctf-lookup unnamed-field-info test checks
C compiler-observed field offsets against libctf-computed ones
by #including the testcase in the lookup runner as well as
generating CTF for it.  This only works if the host, on which
the lookup runner is compiled and executed, is the same architecture as
the target, for which the CTF is generated: when crossing, the trick
may fail.

So pass down an indication of whether this is a cross into the
testsuite, and add a new no_cross flag to .lk files that is used to
suppress test execution when a cross-compiler is being tested.

libctf/
* Makefile.am (check_DEJAGNU): Pass down TEST_CROSS.
* Makefile.in: Regenerated.
* testsuite/lib/ctf-lib.exp (run_lookup_test): Use it to
implement the new no_cross option.
* testsuite/libctf-lookup/unnamed-field-info.lk: Mark as
no_cross.
libctf/Makefile.am
libctf/Makefile.in
libctf/testsuite/lib/ctf-lib.exp
libctf/testsuite/libctf-lookup/unnamed-field-info.lk