gdb/testsuite: add (and use) a new build-id compile option
authorAndrew Burgess <aburgess@redhat.com>
Fri, 11 Nov 2022 15:51:34 +0000 (15:51 +0000)
committerAndrew Burgess <aburgess@redhat.com>
Fri, 18 Nov 2022 11:21:37 +0000 (11:21 +0000)
commitf2509beef8d8c81f7bd6f61a1baab089a470626e
treedce33c04fc1af7e758ca563f0a33b8cbebad3f4b
parented64647b7f32b067e910ae7b24b477e11b268d5d
gdb/testsuite: add (and use) a new build-id compile option

I noticed that the gdb.debuginfod/fetch_src_and_symbols.exp test was
failing when run with Clang as the compiler.

This test relies on the compiled binaries having a build-id within
them.  For GCC, really GNU ld, the default is to always include a
build-id.

When compiling with Clang though, the default is for no build-id.

I did consider *always* turning on the build-id feature when the
compiler is Clang, but that felt a little weird.

Instead, I propose that we add a new 'build-id' compiler option to
gdb_compile, this flag indicates that the test _requires_ a build-id.
In gcc_compile we can then add the required flags if the compiler is
Clang so that we do get a build-id.

With this change the gdb.debuginfod/fetch_src_and_symbols.exp test
now (mostly) passes with Clang 9.0.1 and 15.0.2, and still passes with
gcc.  The 'mostly' part is an unrelated issue, and will be addressed
in a later commit in this series.

Reviewed-By: Lancelot SIX <lancelot.six@amd.com>
gdb/testsuite/gdb.debuginfod/fetch_src_and_symbols.exp
gdb/testsuite/lib/gdb.exp