[Stackless] Warning: build may fail on OS X with Xcode 1.1.1's gcc 3.3 compiler
bob at redivi.com
Sun Mar 14 12:55:45 CET 2004
On Mar 14, 2004, at 12:43 PM, Christian Tismer wrote:
> Bob Ippolito wrote:
>> gcc version 3.3 20030304 (Apple Computer, Inc. build 1636)
>> (-mlongcall), distributed with the latest seed of Xcode 1.1.1, isn't
>> able to build slp_transfer. You will see errors that looks like
>> /var/tmp//ccyq4M9K.s:64:non-relocatable subtraction expression,
>> "__cst" minus "L00000000001$pb"
>> /var/tmp//ccyq4M9K.s:64:symbol: "L00000000001$pb" can't be undefined
>> in a subtraction expression
>> Current workarounds:
>> don't upgrade Xcode
>> or compile with gcc 3.1 (/usr/bin/gcc3)
>> If I can't tweak it to compile, I'll guess I'll distribute a .s
>> (assembly) file for the platform (created with gcc -S from a working
>> compiler) and jigger the makefile to use that instead.
> That's just fine.
> Maybe this would be the better option in general, since we
> would have more control over the registers and such.
> On the other hand, it would not integrate so nice with
> those macros which do the actual data transfers.
> Maybe these would be real functions, instead, and
> called from the assembly?
Well, I ended up "solving" this problem by adding a static variable to
the function, and referencing it from an __asm__.. this forced the full
PIC prologue to be generated. I'm not sure if maintaining more
assembly code would be a good idea if we don't have to.. this is the
sort of function you write once and hope to never look at it again :)
Stackless mailing list
Stackless at stackless.com
More information about the Stackless