mirror of
https://github.com/espressif/binutils-gdb.git
synced 2025-06-19 00:59:15 +08:00
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.
This commit is contained in:
@ -185,44 +185,54 @@ run_ld_link_exec_tests [list \
|
|||||||
"" \
|
"" \
|
||||||
"tmpdir/indirect-extern-access-2.so" \
|
"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 } {
|
proc elfedit_test { options test output } {
|
||||||
global ELFEDIT
|
global ELFEDIT
|
||||||
global READELF
|
global READELF
|
||||||
|
Reference in New Issue
Block a user