|
From: | Nick Clifton |
Subject: | Re: [Bug ld/7027] 64-bit libstdc++.so fails to link on Solaris 11/SPARC: could not read symbols: Bad value |
Date: | Fri, 14 Nov 2008 14:49:49 +0000 |
User-agent: | Thunderbird 2.0.0.16 (X11/20080723) |
Hi Rainer,
+ if ((! ABI_64_P (abfd) && ELF32_R_TYPE (rel->r_info) == R_SPARC_PLT32) + || (ABI_64_P (abfd) && ELF32_R_TYPE (rel->r_info) == R_SPARC_PLT64))
The ABI_64_P() part doesn't trigger since ELF32_R_TYPE (rel->r_info) is 18 (i.e. R_SPARC_WPLT30) at this point. I don't really have an idea why/if the 32-bit part works.
As a matter of interest if you change this to: if ((! ABI_64_P (abfd) && ELF32_R_TYPE (rel->r_info) == R_SPARC_PLT32) || (ABI_64_P (abfd) && ELF32_R_TYPE (rel->r_info) == R_SPARC_WPLT30))does the patch then work ? (I agree that the 32-bit case does seem rather mysterious).
Cheers Nick
[Prev in Thread] | Current Thread | [Next in Thread] |