[fpc-devel] x86_64 linking issue (2.1.4)

Jonas Maebe jonas.maebe at elis.ugent.be
Fri May 25 21:25:37 CEST 2007


On 25 mei 2007, at 18:50, Alan Krause wrote:

> The problem arises when the linker attempts to put all the pieces  
> together into one .so :
>
> /usr/bin/ld: uCUNASP_CLCalc.o: relocation R_X86_64_32S against  
> `U_UCUNASP_CLCALC_CUNASPCLSET' can not be used when making a shared  
> object; recompile with -fPIC
> uCUNASP_CLCalc.o: could not read symbols: Bad value
>
> I have successfully created a shared library, so it is not an -fPIC  
> issue (I think, and am compiling with the -Cg flag as well).
>
> The CUNASPCLSET refers to a public unit-wide variable (a custom  
> record type). If I redeclare the record type as an object and  
> dynamically create the variable in the unit's initialization  
> section (and free it up on finalization), then the error  
> disappears, and a similar issue pops up with another record type in  
> a different unit - I have also seen a similar error appear with a  
> unit level array [0..10] of double.
>
> Again - the code works fine on 32-bit linux, but not for x86_64.  
> Does anyone have any ideas?

It's a bug in the compiler. Please submit a bug report with a  
compilable sample that demonstrates the problem.


Jonas



More information about the fpc-devel mailing list