ld/x86: skip p_align-1 tests with unsuitable compiler

Jan Beulich jbeulich@suse.com
Wed Jun 29 05:59:05 GMT 2022


On 29.06.2022 02:47, Alan Modra via Binutils wrote:
> commit d0e0f9c87a3e results "ERROR: i586-linux-cc does not exist" if
> cross-building an i586-linux target without a target compiler
> installed.
> 
> 	* testsuite/ld-elf/linux-x86.exp (compiler_honours_aligned): New.
> 	Use it after first testing check_compiler_available.

Just noticed this myself (apparently didn't test the right variants
the first time through to see it). Thanks for fixing (and educating
me about how such checks ought to be done).

Jan

> diff --git a/ld/testsuite/ld-elf/linux-x86.exp b/ld/testsuite/ld-elf/linux-x86.exp
> index ae0ed6ac0d2..6035ecd6829 100644
> --- a/ld/testsuite/ld-elf/linux-x86.exp
> +++ b/ld/testsuite/ld-elf/linux-x86.exp
> @@ -188,9 +188,17 @@ run_ld_link_exec_tests [list \
>  ]
>  
>  # 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 {
> +proc compiler_honours_aligned { } {
> +    global CC_FOR_TARGET READELF srcdir subdir
> +    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] } {
> +	return 1
> +    }
> +    return 0
> +}
> +
> +if { [check_compiler_available] && [compiler_honours_aligned] } {
>      run_ld_link_exec_tests [list \
>  	[list \
>  	    "Run p_align-1a without PIE" \
> 



More information about the Binutils mailing list