diff options
author | Jan Beulich <jbeulich@suse.com> | 2022-06-28 08:56:06 +0200 |
---|---|---|
committer | Jan Beulich <jbeulich@suse.com> | 2022-06-28 08:56:06 +0200 |
commit | d0e0f9c87a3eb141f2036c3ca1569ce7ba2d9ff3 (patch) | |
tree | a1949839e0853c00ade36271441a4a3e83fbc10b | |
parent | f40bb390bbf2c4a7a4ff0a042ac9ab9168ab6956 (diff) | |
download | gdb-d0e0f9c87a3eb141f2036c3ca1569ce7ba2d9ff3.zip gdb-d0e0f9c87a3eb141f2036c3ca1569ce7ba2d9ff3.tar.gz gdb-d0e0f9c87a3eb141f2036c3ca1569ce7ba2d9ff3.tar.bz2 |
ld/x86: skip p_align-1 tests with unsuitable compiler
When the compiler doesn't properly arrange for foo's alignment, there's
no point even trying these tests. Report the situation as a single
"unsupported" test.
-rw-r--r-- | ld/testsuite/ld-elf/linux-x86.exp | 82 |
1 files changed, 46 insertions, 36 deletions
diff --git a/ld/testsuite/ld-elf/linux-x86.exp b/ld/testsuite/ld-elf/linux-x86.exp index e3f2018..ae0ed6a 100644 --- a/ld/testsuite/ld-elf/linux-x86.exp +++ b/ld/testsuite/ld-elf/linux-x86.exp @@ -185,44 +185,54 @@ run_ld_link_exec_tests [list \ "" \ "tmpdir/indirect-extern-access-2.so" \ ] \ - [list \ - "Run p_align-1a without PIE" \ - "$NOPIE_LDFLAGS" \ - "" \ - { p_align-1.c } \ - "p_align-1a" \ - "pass.out" \ - "$NOPIE_CFLAGS" \ - ] \ - [list \ - "Run p_align-1b with PIE" \ - "-pie" \ - "" \ - { p_align-1.c } \ - "p_align-1b" \ - "pass.out" \ - "-fpie" \ - ] \ - [list \ - "Run p_align-1c with -Wl,-z,max-page-size=0x1000 without PIE" \ - "$NOPIE_LDFLAGS -Wl,-z,max-page-size=0x1000" \ - "" \ - { p_align-1.c } \ - "p_align-1c" \ - "pass.out" \ - "$NOPIE_CFLAGS" \ - ] \ - [list \ - "Run p_align-1d with -Wl,-z,max-page-size=0x1000 with PIE" \ - "-pie -Wl,-z,max-page-size=0x1000" \ - "" \ - { p_align-1.c } \ - "p_align-1d" \ - "pass.out" \ - "-fpie" \ - ] \ ] +# Old gcc silently ignores __attribute__ ((aligned())) with too big alignment. +ld_compile $CC_FOR_TARGET $srcdir/$subdir/p_align-1.c tmpdir/p_align-1.o +set output [run_host_cmd "$READELF" "-SW tmpdir/p_align-1.o"] +if { [regexp { [.]data *PROGBITS .* 8388608[\n]} $output] } then { + run_ld_link_exec_tests [list \ + [list \ + "Run p_align-1a without PIE" \ + "$NOPIE_LDFLAGS" \ + "" \ + { p_align-1.c } \ + "p_align-1a" \ + "pass.out" \ + "$NOPIE_CFLAGS" \ + ] \ + [list \ + "Run p_align-1b with PIE" \ + "-pie" \ + "" \ + { p_align-1.c } \ + "p_align-1b" \ + "pass.out" \ + "-fpie" \ + ] \ + [list \ + "Run p_align-1c with -Wl,-z,max-page-size=0x1000 without PIE" \ + "$NOPIE_LDFLAGS -Wl,-z,max-page-size=0x1000" \ + "" \ + { p_align-1.c } \ + "p_align-1c" \ + "pass.out" \ + "$NOPIE_CFLAGS" \ + ] \ + [list \ + "Run p_align-1d with -Wl,-z,max-page-size=0x1000 with PIE" \ + "-pie -Wl,-z,max-page-size=0x1000" \ + "" \ + { p_align-1.c } \ + "p_align-1d" \ + "pass.out" \ + "-fpie" \ + ] \ + ] +} else { + unsupported "p_align-1" +} + proc elfedit_test { options test output } { global ELFEDIT global READELF |