gdb/testsuite: re-compile entry-value-typedef .S files with -fPIE
authorSimon Marchi <simon.marchi@efficios.com>
Fri, 19 Aug 2022 14:12:36 +0000 (10:12 -0400)
committerSimon Marchi <simon.marchi@efficios.com>
Fri, 19 Aug 2022 14:12:36 +0000 (10:12 -0400)
commitd7c83303890edf9b59a93fb0ed4942f80b734af7
tree760117c07eccbb4c40af743c81dfc7898c1852a0
parent4afe8a8170a888310b41ef46a8b8e8f2b15597c6
gdb/testsuite: re-compile entry-value-typedef .S files with -fPIE

As Luis pointed out here [1], the AArch64 variant of the test doesn't
work on systems that use PIE by default.  For example, on this Debian
11:

    $ make check TESTS="gdb.dwarf2/entry-value-typedef.exp"
    gdb compile failed, /usr/bin/ld: /tmp/ccJE8ZSr.o: relocation R_AARCH64_ADR_PREL_PG_HI21 against symbol `_ZNSsD1Ev@@GLIBCXX_3.4' which may bind externally can not be used when making a shared object; recompile with -fPIC
    /usr/bin/ld: /tmp/ccJE8ZSr.o(.text+0x38): unresolvable R_AARCH64_ADR_PREL_PG_HI21 relocation against symbol `_ZNSsD1Ev@@GLIBCXX_3.4'

This is because entry-value-typedef-aarch64.S was generated on an old
system that does not generate position-independent code by default, but
the system the test runs on tries to link the test executable as
position-independent.  Fix this by regenerating the same binary on the
same system as the original one, but with -fPIE this time.  Do the same
for the amd64 binary, although this one was already position-independent
so the generated code doesn't change.

With this patch applied, the test passes on the Debian 11 AArch64
system.

[1] https://sourceware.org/pipermail/gdb-patches/2022-August/191462.html

Change-Id: I68d55adaa56a7a3eddb0c13980b1a98b791f8144
gdb/testsuite/gdb.dwarf2/entry-value-typedef-aarch64.S
gdb/testsuite/gdb.dwarf2/entry-value-typedef-amd64.S