[fpc-devel] is smartlink of Win32 DLLs broken again? And a old FreeBSD port problem additionaly

Pavel V. Ozerski pavel at insect.mail.iephb.ru
Wed Apr 27 12:22:46 CEST 2005


Hello all,

It seems, I solved the smartlink problem.
Solution:
1) in pexports.pas, I added into interface part of unit
    var
      BinaryContainsExports: boolean = false;
2) in pexports.pas, in first line of main body of read_exports
procedure, I added
....
      begin
         BinaryContainsExports:=true; //NEW!!!
         DefString:='';
....
3) in pmodules.pas, I added a reference to pexports into the uses
clause of implementation part.

4) in pmodules.pas, I changed a line in proc_program procedure:
INSTEAD
         if assigned(exportlib) and
            (target_info.system in [system_i386_win32,system_i386_wdosx]) and
            assigned(current_module._exports.first) then
           codesegment.concat(tai_const.create_sym(exportlib.edatalabel));

I MADE
         if assigned(exportlib) and
            (target_info.system in [system_i386_win32,system_i386_wdosx]) and
            BinaryContainsExports then
           codesegment.concat(tai_const.create_sym(exportlib.edatalabel));

That's all. The patched compiler builds my tests correctly.
-- 
Best regards,
 Pavel                            mailto:pavel at insect.mail.iephb.ru






More information about the fpc-devel mailing list