[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