Op Sat, 19 Jan 2008, schreef Karl-Michael Schindler:

Hallo, it's me again.

Bug is fixed with revision 9785

Well, not fixed, but just disabled on Darwin. However, it did finally succeed on Win32 this night.

Hi there,

when cycling fpc on macosx/darwin-386 (10.5) I get this error:

i386.inc(1198,1) Error: Unknown label identifier .LPIC

with revision 9781/2. I tried 2.3.1 and 2.2.1

"call .LPic" is actually one line before the declaration of ".LPic". My knowledge of asm is near zero. So, no idea whether this is allowed or not.

To access global variables in a PIC environment you need to get the value of the program counter. "call" puts the value on the stack and jumps to the label. You don't want to jump, just push the program counter, so you declare a label immedeately after the call instruction.

The "pop ebx" after it retrieves the pushed program counter from the stack again in ebx. So this code is correct. The reason why it didn't compile was case sensitivity of the ATT assembler reader, which Jonas did correct.

Jonas did disable it on Darwin as it apparently still did not work for him. It has to be the Darwin PIC code, allthough to the eye it seems correct to me.

Daniël
_______________________________________________
fpc-devel maillist  -  fpc-devel@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-devel

Reply via email to