Linking a dynlib fails, depending on used units
Original Reporter info from Mantis: Jan Bruns
-
Reporter name: Jan Bruns
Original Reporter info from Mantis: Jan Bruns
- Reporter name: Jan Bruns
Description:
fpc fails to link dynlibs, that use units, which implement global vars.
The dynlib itself can make use of global vars.
Steps to reproduce:
////////////////////
unit unit1; // fails
interface
var unitval : longint;
implementation
begin
unitval := 123;
end.
////////////////////
unit unit2; // fails
interface
function unitval : longint;
implementation
var vunitval : longint;
function unitval : longint;
begin
unitval := vunitval;
end;
begin
vunitval := 123;
end.
////////////////////
unit unit3; // works
interface
function unitval : longint;
implementation
function unitval : longint;
begin
unitval := 123;
end;
begin
end.
////////////////////
{$mode objfpc}
library linktest;
uses unit3;
var
addv : longint;
procedure setav;
begin
addv := 2;
end;
procedure doit;
begin
setav;
writeln('Used unit says: ',unitval*addv );
end;
exports doit;
end.
Mantis conversion info:
- Mantis ID: 18596
- OS: Linux
- OS Build: Debian
- Build: 2.4.0-2 [2010/02/20] for x86_64
- Platform: X64
- Version: 2.4.0