I should confess that I'm not using the bundles directory but a handbuilt Gmp 4.2.2. Nevertheless, going with a static module for Gmp solves my 10.5 issues.
To recap, I'd like to check in the following 7.8 changes:
gabrielle:7.8 $ cvs diff -u bin/smartlink Index: bin/smartlink =================================================================== RCS file: /pike/data/cvsroot/Pike/7.8/bin/smartlink,v retrieving revision 1.30 diff -u -r1.30 smartlink --- bin/smartlink 9 Mar 2006 20:57:19 -0000 1.30 +++ bin/smartlink 15 Aug 2008 09:22:42 -0000 @@ -192,6 +192,15 @@ # ;; #esac
+case "$UNAME" in + Darwin*) + # Needs to be 10.3 or better for ld to accept "-undefined dynamic_load" + export MACOSX_DEPLOYMENT_TARGET=10.3 + ;; + *) + ;; +esac + #echo $LINKER $LDOPTS
# exec $LINKER $LDOPTS
gabrielle:7.8 $ cvs diff -u src/configure.in Index: src/configure.in =================================================================== RCS file: /pike/data/cvsroot/Pike/7.8/src/configure.in,v retrieving revision 1.1067 diff -u -r1.1067 configure.in --- src/configure.in 31 Jul 2008 18:01:48 -0000 1.1067 +++ src/configure.in 15 Aug 2008 09:24:37 -0000 @@ -7610,7 +7610,9 @@ fi ;; Darwin*) - LDSHARED="$REALCC $CFLAGS -bundle -bind_at_load -flat_namespace -undefined suppress" + # Note that the following requires MACOSX_DEPLOYMENT_TARGET which is + # inited in bin/smartlink to 10.3. + LDSHARED="$REALCC $CFLAGS -bundle -bind_at_load -undefined dynamic_lookup" ;; IRIX*) if test "$GCC" = yes ; then
gabrielle:7.8 $ cvs diff -u src/modules/Gmp/Makefile.in Index: src/modules/Gmp/Makefile.in =================================================================== RCS file: /pike/data/cvsroot/Pike/7.8/src/modules/Gmp/Makefile.in,v retrieving revision 1.24 diff -u -r1.24 Makefile.in --- src/modules/Gmp/Makefile.in 4 May 2003 13:32:20 -0000 1.24 +++ src/modules/Gmp/Makefile.in 15 Aug 2008 09:23:35 -0000 @@ -9,7 +9,7 @@
CONFIG_HEADERS=@CONFIG_HEADERS@
-@dynamic_module_makefile@ +@static_module_makefile@
# UnixWare make needs help to find the source file... mpq.o: $(SRCDIR)/mpq.c
The first two updates dynamic module linking on Darwin to avoid -flat_namespace which is deprecated since many years. It requires OS X 10.3 or later but that's ok in my opinion.
The last one adresses building on OS X 10.5 where Gmp needs to be statically bound to overcome linker issues. The change would apply on all platforms but since bignums are an integral part of the Pike language it's not a concern.
Peter, any objections? Don't know if they qualify for any notes in CHANGES but I'd be happy to provide that too.