[gdb/testsuite] Fix gdb.multi/multi-arch.exp on powerpc64le
authorTom de Vries <tdevries@suse.de>
Mon, 24 Apr 2023 12:48:06 +0000 (14:48 +0200)
committerTom de Vries <tdevries@suse.de>
Mon, 24 Apr 2023 12:48:06 +0000 (14:48 +0200)
commitac3c4894cfbfc876fffd193ebf6f6ff55ef62318
tree307de38063a59d32461f99d10b0396ecd7507558
parentddbc483e7dc2266296caff17990b5b896d15095f
[gdb/testsuite] Fix gdb.multi/multi-arch.exp on powerpc64le

When running test-case gdb.multi/multi-arch.exp on powerpc64le-linux, I run into:
...
Running gdb/testsuite/gdb.multi/multi-arch.exp ...
gdb compile failed, In file included from /usr/include/features.h:399:0,
                 from /usr/include/stdio.h:27,
                 from gdb/testsuite/gdb.multi/hangout.c:18:
/usr/include/gnu/stubs.h:8:27: fatal error: gnu/stubs-32.h: \
  No such file or directory
 # include <gnu/stubs-32.h>
                           ^
compilation terminated.
...

The problem is that the test-case attempts to use gcc -m32 to produce an
executable while that's not available.

Fix this by:
- introduce a new caching proc have_compile_and_link_flag, and
- using have_compile_and_link_flag in test-case gdb.multi/multi-arch.exp.

Tested on:
- x86_64-linux (openSUSE Leap 15.4), and
- powerpc64le-linux (CentOS-7).
gdb/testsuite/gdb.multi/multi-arch.exp
gdb/testsuite/lib/gdb.exp