Is GPC dead?

Gale Paeper gpaeper at empirenet.com
Fri Dec 30 04:52:41 CET 2016


> On Dec 27, 2016, at 7:39 PM, Schneider <schneidt at mail.nih.gov> wrote:
> 
> Ken:
> 
>> I have been wondering the same thing.
> 
> It's not functional on Mac OS X for more than a year and the guy
> responsible for it doesn't respond.

The last time I could put a lot of time into trying to get GPC building for  Mac OS X versions 10.8 or later, there were two big items (so far) that needed to be fixed to get past stage 1 building  GPC with any of the GPC supported base gcc versions.

1.  Starting with Mac OS X 10.6 (and a later than GPC gcc supported version) Apple started using system version dependent compile time version determined linker and library specs for the build driver.  The solution I believe is to back port from a later version of gcc containing Apple's system versioning mechanics code so the older GPC/gcc combinations work in the same system version specific manner with the necessary/correct linker and library specs.

2.  The older GPC/gcc supported versions' autoconfig config files have assumptions built into them that does not hold correct in a post Mac OS X 10,6/10,7 compilation setting..  Of particular note, config items (e.g., compiler and linker macros and directives) critical to successful  stage 1 bootstrapping doesn't get feed on to later bootstrapping stages in a manner to get anything built.  (Part of the problem here is that Apple reorganized some of the system header file locations starting with Mac OS X 10.8 so quite a few of the autoconfig test programs fail unless you can get them to use an older version of the system headers and linker libraries.)

The older GPC/gcc supported versions have issues with Apple's now stock llvm based tool chain.  For compiling code issues with Apple's stock clang C compiler, the solution the old versions GPC/gcc code bases is to use one the current version GNU gcc Mac OS X ports to do the compiling.  For assembler related issues, the solution is to build and configure to use GNU's as assembler and for that to work you have to be specific to invoke a GNU gcc instead of getting hijacked by XCode's aliasing of gcc/cc to the llvm based integrated clang compiler/assembler.  There are also linker issues; however, unfortunately, for Mac OS X 10.11 and later there is no alternative linker solution other than Apple's llvm based integrated linker.

Using a Mac OS X built  current gcc version for compiling, I was able to get through stage 1 GPC/gcc config, compile and GPC RTS build after trail and error messaging of config parameters and compiler building flags.  (Until item 1 above is fixed, the GPC RTS build system requires some hand tweaking for a linking issue to get the RTS built in stage 1.)

As far as the work involved goes, item 1 above looks to be the easiest and a fairly straight forward back port from a newer version of gcc to one or more of the supported GPC/gcc version.  I think accomplishing the item 1 fixes will be  a necessary and good start in fixing  item 2 problems since that should fix autoconfig going off the rails into bogus cross compiling land due to linker issues.

Overall, it would be a lot simpler if GPC was updated to use a closer to current gcc version since all the multitude of changes due to Apple's change over to a llvm based tool change stock base and reorganization of system hearer and library files have already been "solved" by the mainline gcc maintainers.  However, as Waldek alludes to in a later e-mail, the updating is a pretty big task iitself.


Gale Paeper
gpaeper at empirenet.com






More information about the Gpc mailing list