[fpc-devel] x86_64 linking issue (2.1.4)
Alan Krause
alank at shermanloan.com
Fri May 25 21:40:38 CEST 2007
Jonas Maebe wrote:
> It's a bug in the compiler. Please submit a bug report with a
> compilable sample that demonstrates the problem.
Jonas,
Thanks much for the reply. I will submit a bug report ASAP. I spent most
of the morning trying to simplify the error case, and came up with the
following:
---
library project1;
uses
Classes;
function dRound(iDec: integer; dRate: double): double;
const
TenToPower: Array[0..9] of integer = (1, 10, 100, 1000, 10000, 100000,
1000000, 10000000, 100000000,
1000000000);
var
dInc : double;
begin
if iDec > 0 then begin
dInc := 0.5000001;
result := trunc (dRate * (TenToPower [iDec]) + dInc) /
TenToPower [iDec];
end else begin
result := dRate;
end ;
end;
function one : double; cdecl;
begin
Result := dRound( 2, 0.529 ) ;
end;
---
Trying to compile this under fpc 2.1.4 on x86_64 via "fpc -Sd proj.pas"
gives me the following results:
Compiling proj.pas
Linking libproj.so
/usr/bin/ld: proj.o: relocation R_X86_64_32S against
`TC_P$PROJECT1_DROUND$LONGINT$TROUNDTYPE$DOUBLE$$DOUBLE_TENTOPOWER' can
not be used when making a shared object; recompile with -fPIC
proj.o: could not read symbols: Bad value
I'll sign up for an account and post the ticket now.
Thanks much,
Alan
More information about the fpc-devel
mailing list