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