The changes I made did break x86-64 compilation, but that has been
fixed now. I can build x86-64 now, but it fails in make-target-2.sh.
It's to be expected, as I'm running an Intel 32-bit system, which
wouldn't be able to run x86-64 code. PowerPC compiles, but will not
run either. This one's a little more puzzling, as the Intel Macs are
capable of emulating PPC code. make-target-2.sh is entered, and the
"warm init compilation phase" executed. Once there, it gives the error:
fatal error encountered in SBCL pid <whatever>:
blockable signal 1 not blocked
Running it again from the command line gives the above error along
with (one instance):
invalid magic number in core: 0x4c434253 should have been 0x5342434c.
I'm not quite sure if this is a result of the edits I made or a
problem that SBCL has, but that's as far as it gets.
As for the rest of the changes, you need to check for both
_POSIX_C_SOURCE, to satisfy the Panther and Tiger frameworks, and
__DARWIN_UNIX03, to satisfy the Leopard framework. From what I can
tell, that will build both the x86 and x86-64 apps.
On 24-Mar-08, at 5:10 PM, Michael Tughan wrote:
> I don't know if anyone else is experiencing this, but I had errors
> trying to compile SBCL on a Leopard machine for it to run on Tiger.
> I remember reading something on the mailing list here about this
> issue, but I did some digging myself. I did manage, but there are
> some misplaced #ifdef's and config files for GCC to change. I have a
> list of the changes I made for it to run correctly. I can also send
> the files to someone or upload via a versioning system if need be.
> There are two major issues right now. First, the GCC flags in src/
> runtime/Config.ppc-darwin, Config.x86-64-darwin, and Config.x86-
> darwin assume that it is being compiled on the system that it will
> be used. It's safe to add flags to explicitly say what architecture
> it will be building for, what SDK to use, and the minimum Mac OS X
> version for linking purposes. Second, the define
> MAC_OS_X_VERSION_10_5 is used moderately in the darwin files in src/
> runtime, but that's not the define that the SDKs are looking for.
> What should be used is _POSIX_C_SOURCE, and then it compiles
> correctly, with all struct definitions being found (that was one
> error I encountered). This works for the Tiger SDK for an Intel 32-
> bit build (Core Duo and Core Solo processors). I'm going to attempt
> a PowerPC 32-bit build and an Intel 64-bit (Core 2 series) builds,
> just to make sure everything works as expected.
> Michael Tughan
> Michael's Programming