Dear GPC,
I need to do the following thing: in a main program I write on a file
but the "text" variable is declared in another unit.
The program is the following:
program demofile;
var test_external_value: integer; external; asmname 'external_value';
var f: text; external; asmname 'f_test_external';
begin
writeln('value of test_external_value=', test_external_value);
writeln('Create the file FILEDEMO');
{$I-}
Assign(f, 'FILEDEMO');
ReWrite(f);
{$I+}
writeln(f, 'file written by program demofile');
close(f);
end.
The unit is the following:
unit demofileunit; interface implementation
var test_value: integer = 7; asmname 'external_value';
var f_test: text; asmname 'f_test_external';
end.
Then I compile:
gpc -c demofileunit.pas
gpc -o demofile demofile.pas demofileunit.o
running demofile:
value of test_external_value=7
Create the file FILEDEMO
demofile: `Unbind' applied to non-bindable TFDD file `(null)' (error
#404 at 8049938)
this is the errore received and FILEDEMO is not created.
If I replace in demofile.pas the line:
var f: text; external; asmname 'f_test_external';
in the line
var f: text;
so that f is not external,
compiling and running again demofile:
value of test_external_value=7
Create the file FILEDEMO
and the content of FILEDEMO is:
file written by program demofile
Then, all is ok.
I installed GPC 2.95.2 with Linux RedHat 7.0 (then gcc is 2.96, but I
don't think it is important...)
It seems that it is not possible to link "text" variable externally as I
do with other types...Is it a bug?
Thanks
Fabio Casamatta