From: Michael T. <mic...@gm...> - 2008-03-24 21:10:48
|
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 |
From: Michael T. <mic...@gm...> - 2008-03-25 04:20:25
|
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. Michael Tughan Michael's Programming 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 |
From: Michael T. <mic...@gm...> - 2008-03-26 22:27:57
|
I have a bunzip of the latest version of my code, that seems to work for x86 and x86-64. I don't quite know if it works for PPC, but it should. This was built from the download on SF.net, not from the latest CVS/SVN, so changes may have to be merged. I can confirm that x86 builds run on Tiger though. http://michaelsprogramming.home.dyndns.org/sbcl-1.0.15-macosx.tar.bz2 Michael Tughan Michael's Programming On 25-Mar-08, at 12:20 AM, Michael Tughan wrote: > 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. > > Michael Tughan > Michael's Programming > > 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 > |