With test-case gdb.dwarf2/entry-value-typedef.exp and target board unix/-m32,
I run into:
...
builtin_spawn -ignore SIGHUP g++ -fno-stack-protector \
gdb/testsuite/gdb.dwarf2/entry-value-typedef-amd64.S \
-fdiagnostics-color=never -Lbuild/libiberty -lm -m32 \
-o outputs/gdb.dwarf2/entry-value-typedef/entry-value-typedef^M
entry-value-typedef.cpp: Assembler messages:^M
entry-value-typedef.cpp:38: Error: bad register name `%rbp'^M
...
The problem is that the test-cases selects an amd64 .S file based on the check:
...
if { [istarget "x86_64-*-linux*"] } {
...
which is also true for target board unix/-m32 on x86_64-linux.
Fix this by adding the missing is_lp64_target check.
Tested on x86_64-linux, using native and target board unix/-m32.
# The program associated to this test case uncovered a bug in GDB (PR 29374)
# where a typedef type was used before it was resolved.
-if { [istarget "x86_64-*-linux*"] } {
+if { [istarget "x86_64-*-linux*"] && [is_lp64_target] } {
set suffix amd64
} elseif { [istarget "aarch64-*-linux*"] } {
set suffix aarch64