It's your lucky day. :-) Here's an updated patch which preserves the
old behavior unless you're running 10.3 or newer.
gabrielle:7.8 $ cvs diff -u bin/smartlink src/configure.in
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 12:18:56 -0000
@@ -192,6 +192,15 @@
# ;;
#esac
+case "$UNAME" in
+ Darwin\ [7-9]*|Darwin\ [1-9][0-9]*)
+ # Needs to be 10.3 or better for ld to accept "-undefined dynamic_lookup"
+ export MACOSX_DEPLOYMENT_TARGET=10.3
+ ;;
+ *)
+ ;;
+esac
+
#echo $LINKER $LDOPTS
# exec $LINKER $LDOPTS
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 12:18:56 -0000
@@ -7610,7 +7610,19 @@
fi
;;
Darwin*)
- LDSHARED="$REALCC $CFLAGS -bundle -bind_at_load -flat_namespace
-undefined suppress"
+ case "`uname -r`" in
+ [1-6].*)
+ # Mac OS X prior to 10.3 need -flat_namespace to support dynamic
modules
+ LDSHARED="$REALCC $CFLAGS -bundle -bind_at_load -flat_namespace
-undefined suppress"
+ ;;
+ *)
+ # 10.3 or newer take advantage of two-level namespaces to avoid
+ # symbol collisions for e.g. libjpeg which is referenced from both
+ # _Image_JPEG and _Image_TIFF. It requires MACOSX_DEPLOYMENT_TARGET
+ # which is initialized in bin/smartlink to 10.3.
+ LDSHARED="$REALCC $CFLAGS -bundle -bind_at_load -undefined
dynamic_lookup"
+ ;;
+ esac
;;
IRIX*)
if test "$GCC" = yes ; then