diff options
-rw-r--r-- | Makefile.SH | 11 | ||||
-rw-r--r-- | hints/darwin.sh | 31 |
2 files changed, 26 insertions, 16 deletions
diff --git a/Makefile.SH b/Makefile.SH index e97fc65995..51db4ad494 100644 --- a/Makefile.SH +++ b/Makefile.SH @@ -547,12 +547,17 @@ miniperl: $& miniperlmain$(OBJ_EXT) $(LIBPERL) opmini$(OBJ_EXT) !NO!SUBS! ;; darwin*) - case "$ldflags" in - *"-flat_namespace"*) ;; - *) # to allow opmini.o to override stuff in libperl.dylib + case "$osvers" in + [1-6].*) ;; + *) case "$ldflags" in + *"-flat_namespace"*) ;; + *) # to allow opmini.o to override stuff in libperl.dylib $spitshell >>Makefile <<!NO!SUBS! NAMESPACEFLAGS = -force_flat_namespace !NO!SUBS! + ;; + esac + ;; esac $spitshell >>Makefile <<'!NO!SUBS!' miniperl$(EXE_EXT): $& miniperlmain$(OBJ_EXT) $(LIBPERL) opmini$(OBJ_EXT) diff --git a/hints/darwin.sh b/hints/darwin.sh index a5e2c263dc..b50ad771da 100644 --- a/hints/darwin.sh +++ b/hints/darwin.sh @@ -118,20 +118,25 @@ dlext='bundle'; dlsrc='dl_dyld.xs'; usedl='define'; cccdlflags=' '; # space, not empty, because otherwise we get -fpic # Perl bundles do not expect two-level namespace, added in Darwin 1.4. +# But starting from perl 5.8.1/Darwin 7 the default is the two-level. case "$osvers" in 1.[0-3].*) - lddlflags="${ldflags} -bundle -undefined suppress" - ;; -1.*|[2-6].*) - ldflags="${ldflags} -flat_namespace" - lddlflags="${ldflags} -bundle -undefined suppress" - ;; -*) - lddlflags="${ldflags} -bundle -undefined dynamic_lookup" - case "$ld" in - *MACOSX_DEVELOPMENT_TARGET*) ;; - *) ld="MACOSX_DEPLOYMENT_TARGET=10.3 ${ld}" ;; - esac + lddlflags="${ldflags} -bundle -undefined suppress" + ;; +1.*) + ldflags="${ldflags} -flat_namespace" + lddlflags="${ldflags} -bundle -undefined suppress" + ;; +[2-6].*) + ldflags="${ldflags} -flat_namespace" + lddlflags="${ldflags} -bundle -undefined suppress" + ;; +*) lddlflags="${ldflags} -bundle -undefined dynamic_lookup" + case "$ld" in + *MACOSX_DEVELOPMENT_TARGET*) ;; + *) ld="MACOSX_DEPLOYMENT_TARGET=10.3 ${ld}" ;; + esac + ;; esac ldlibpthname='DYLD_LIBRARY_PATH'; useshrplib='true'; @@ -140,7 +145,7 @@ cat > UU/archname.cbu <<'EOCBU' # This script UU/archname.cbu will get 'called-back' by Configure # after it has otherwise determined the architecture name. case "$ldflags" in -*"-flat_namespace"*) ;; # Backward compat. +*"-flat_namespace"*) ;; # Backward compat, be flat. # If we are using two-level namespace, we will munge the archname to show it. *) archname="${archname}-2level" ;; esac |