[PATCH] i386: Pass -Wl,--no-as-needed to compiler as needed

Jan Beulich jbeulich@suse.com
Thu Jan 26 07:41:18 GMT 2023


On 25.01.2023 18:07, H.J. Lu via Binutils wrote:
> Pass -Wl,--no-as-needed to linker tests to fix
> 
> FAIL: Run pr19031
> FAIL: Run got1
> FAIL: Undefined weak symbol (-fPIE -no-pie)
> FAIL: Undefined weak symbol (-fPIE -pie)

How come these four don't match (even in count) ...

> --- a/ld/testsuite/ld-i386/i386.exp
> +++ b/ld/testsuite/ld-i386/i386.exp
> @@ -577,7 +577,8 @@ proc undefined_weak {cflags ldflags} {
>      run_ld_link_exec_tests [list \
>  	[list \
>  	    "Run pr19704" \
> -	    "$ldflags tmpdir/libpr19704.so -Wl,-R,tmpdir" \
> +	    "$ldflags -Wl,--no-as-needed tmpdir/libpr19704.so \
> +	     -Wl,-R,tmpdir" \
>  	    "-Wa,-mrelax-relocations=yes" \
>  	    { pr19704a.c } \
>  	    "pr19704" \
> @@ -1078,7 +1079,7 @@ if { [isnative]
>  	] \
>  	[list \
>  	    "Run pr19031" \
> -	    "$NOPIE_LDFLAGS tmpdir/pr19031.so" \
> +	    "$NOPIE_LDFLAGS -Wl,--no-as-needed tmpdir/pr19031.so" \
>  	    "-Wa,-mx86-used-note=yes" \
>  	    { pr19031b.S pr19031c.c } \
>  	    "pr19031" \
> @@ -1087,7 +1088,7 @@ if { [isnative]
>  	] \
>  	[list \
>  	    "Run got1" \
> -	    "$NOPIE_LDFLAGS tmpdir/got1d.so" \
> +	    "$NOPIE_LDFLAGS -Wl,--no-as-needed tmpdir/got1d.so" \
>  	    "-Wa,-mx86-used-note=yes" \
>  	    { got1a.S got1b.c got1c.c } \
>  	    "got1" \

... the three tests (with the "Run ..." even visible in context)? Also
it would have helped if you said a word on what it is that breaks with
--as-needed. After all there might also be the option of adjusting
overly strict expectations. (It is always somewhat questionable to
"fight" compiler defaults by further command line overrides. That's not
to say it's always the extra override which is wrong; sometimes it's
also the compiler default which is to be put under question.)

Jan


More information about the Binutils mailing list