Pike @ MacOS X 10.1.x patches
Imported from http://bugzilla.roxen.com/bugzilla/show_bug.cgi?id=2664
Reported by @grubba
From the email@example.com mailinglist:
From: Bill Welliver <firstname.lastname@example.org> To: "email@example.com" <firstname.lastname@example.org> Date: Sun, 6 Jan 2002 14:56:18 -0500 Subject: Pike and MacOS X 10.1.x
After considerable fiddling, I was able to get Pike to compile successfully with dynamic modules, and then get the latest Caudium from CVS to work. I was using a recent CVS snapshot of Pike in order to make this all happen.
MacOSX 10.1 introduces a two-level namespace for its dynamic loader. It also uses this by default, which is probably not what we want for pike. We also get command line errors by mixing flat and two_level arguments. In order to get back to the flat namespace, you have to modify the LDSHARED definition for Darwin in configure:
--- START OF DIFF ---
--- configure.orig Thu Nov 1 17:04:57 2001 +++ configure Sun Jan 6 10:38:15 2002 @@ -21815,7 +21815,7 @@ fi ;; Darwin*) - LDSHARED="ld -bundle -bind_at_load -undefined suppress -lbundle1.o" + LDSHARED="ld -bundle -bind_at_load -flat_namespace -undefined suppress -lbundle1.o" ;; IRIX*) if test "$GCC" = yes ; then
--- END OF DIFF ---
That alone should get you through the configure, but there are a few problems compiling:
ld complains of incorrect references to symbols restFP and saveFP. These symbols are defined in /usr/lib/libcc_dynamic.a, so you have to include cc_dynamic as a library. I did this using the environment variable:
CFLAGS="-I/sw/include" LDFLAGS="-lcc_dynamic -L/sw/lib" ./configure
(I have the fink package installed, and fink installs everything in /sw, so that's where I have gmp and several other libraries.) Perhaps cc_dynamic can get automatically added to the list of C libraries on a Darwin system...