[PATCH] ld: testsuite: xfail vers26b3 on Solaris/amd64

Jan Beulich jbeulich@suse.com
Tue Aug 19 08:14:09 GMT 2025


On 19.08.2025 09:52, Rainer Orth wrote:
> Hi H.J.,
> 
>> On Mon, Aug 18, 2025 at 7:12 AM Rainer Orth <ro@cebitec.uni-bielefeld.de> wrote:
>>>
>>> Hi H.J.,
>>>
>>>> Can you adjust it here?
>>>>
>>>> if { [istarget x86_64-*-linux*] \
>>>>      || [istarget arm*-*-*] \
>>>>      || ( [istarget mips*-*-linux*] && [at_least_gcc_version 4 3] ) } {
>>>>     # x86_64, ARM and newer MIPS toolchains do not like non-pic shared
>>>> libraries    set pic "yes"
>>>> } else {
>>>>     set pic "no"
>>>> }
>>>
>>> I tried that first, but unlike Linux/x86_64, where several of the vers*
>>> tests XFAIL, on Solaris/amd64 it was only this single one, so all the
>>> others would XPASS instead.
>>>
>>> The fact that the test links just fine with Solaris ld might point to a
>>> gld issue, though.
>>>
>>
>> R_X86_64_32 can't be used to access the external symbols in
>> a shared library since 32-bit displacement may not reach the
>> symbol definition.  How can it work on Solaris?
> 
> No idea.  However, when reenabling the test on Linux/x86_64, I get the
> exact same error as on Solaris/amd64, so the issue is obviously the
> same:
> 
> ./ld-new: tmpdir/vers26b3.o: relocation R_X86_64_32 against symbol `foo' can not be used when making a shared object; recompile with -fPIC

Yet there lies the question: You say that linking with Solaris'es linker
works fine. Question is whether that's a bug there (and the resulting image
is broken), or whether GNU ld has a shortcoming.

Jan


More information about the Binutils mailing list