On 23 Dec 2008, at 14:54, Andrew Brunner wrote:

'm running into another issue where I create all classes from scratch
to avoid using Classes unit inside library and now my library won't
load.  The only FPC related unit I use is SysUtils.

I cannot reproduce this crash following 
http://bugs.freepascal.org/view.php?id=12814

I completed the main program (please always submit fully compilable code, not just snippets) as follows:

{$mode delphi}
uses
  dynlibs;

procedure Test();
var
  FLib : TLibHandle;
begin
  FLib:=Dynlibs.LoadLibrary('./libMatrixMemoryManager.so');
  DynLibs.UnloadLibrary(FLib); // WILL CRASH HERE.
end;

begin
  test;
end.


Note that I replaced "MatrixMemoryManager.so" with "libMatrixMemoryManager.so". I get a crash if loadlibrary fails and returned 0. You should check for this condition in your code. Other than that, it works fine:

~/fpc/test/tw12814$ ppcxf1 -l MatrixMemoryManager.pp
Free Pascal Compiler version 2.2.3 [2008/12/17] for x86_64
Copyright (c) 1993-2008 by Florian Klaempfl
Target OS: Linux for x86-64
Compiling MatrixMemoryManager.pp
Linking libMatrixMemoryManager.so
18 lines compiled, 0.4 sec
~/fpc/test/tw12814$ ppcxf1 -l tt.pp
Free Pascal Compiler version 2.2.3 [2008/12/17] for x86_64
Copyright (c) 1993-2008 by Florian Klaempfl
Target OS: Linux for x86-64
Compiling tt.pp
Linking tt
15 lines compiled, 0.2 sec
~/fpc/test/tw12814$ ./tt
~/fpc/test/tw12814$ echo $?
0
~/fpc/test/tw12814$ cat MatrixMemoryManager.pp
library MatrixMemoryManager;
{$mode objfpc}{$H+}
 uses cMem,SysUtils,Classes;
var
  List:TList;
  function Startup:boolean; stdcall; export;
  begin
    List:=TList.Create;
    Result:=True;
  end;
  function Shutdown:boolean; stdcall; export;
  begin
    FreeAndNil(List);
    Result:=True;
  end;
  exports Startup, Shutdown;
begin
end.

This is on Scientific Linux 5.2 (free distro based on Red Hat Enterprise Linux 5.2). Are you sure that you are using 2.2.3 and not 2.3.1?


Jonas
_______________________________________________
fpc-pascal maillist  -  fpc-pascal@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-pascal

Reply via email to