Am 13.02.2014 17:04, schrieb Fred van Stappen:
> Please provide a simple, self contained example that shows this problem.
>Regards,
>Sven

Hello.

Hum, i have done a simple library, with a thread and a simple program calling this library.

Not usefully to show it because, both using cmem are working perfectly... ;-)

So the problem is somewhere else.

I resume: if i use cmem in uses section of uos library (without debug on) it compile but i get that error when a program call the library (at thread.terminate):

Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0x7fffe859c700 (LWP 3289)]
0x00007fffefe08944 in ?? ()
   from /home/fred/uoslib/examples/lib/Linux/64bit/libuos-64.so

I have then try to compile uos library with that parameters with debug :
-MObjFPC -Scghi -O1 -gw2 -godwarfsets -gl -gv -Xg -gt -pg -vewnhi

and with cmem in uses section.

And now, fpc refuse to compile, focusing at cmem in uses section !

>> simpleplayer.lpr(7,8) Error: Duplicate identifier "cmem"
-gv which enables valgrind profiling needs cmem, so the compiler will include cmem and you did include cmem. Maybe this should be checked somehow... I suggest you not to use -gv and -pg except for profiling of performance or other things where you might need profiling.
I do not understand, i never declare cmem somewhere else, why does the debugger say me that ?
compiler, not debugger
(and sure, that is the problem=>solution).

Here the uses section :
uses
 {$IFDEF UNIX}
 cthreads,
 cwstring, {$ENDIF}
cmem, // => debugger focus here, saying "Error: Duplicate identifier "cmem" ??
compiler, not debugger
  ctypes, uos;

Put cmem at the first location of the library's uses clause (before the ifdef).

Regards,
Sven
_______________________________________________
fpc-pascal maillist  -  fpc-pascal@lists.freepascal.org
http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal

Reply via email to