X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=hints%2Fdarwin.sh;h=518af30026977e366d4120b87b687975f7a75bb6;hb=416e7255471199e449f09747b8a3f428fc8e2bb5;hp=b4a7e52898cbeeecbf3fbcaff19d5172c4d4abe1;hpb=2590a1d735c9a5b2bb0473048e14315c625a1b7f;p=p5sagit%2Fp5-mst-13.2.git diff --git a/hints/darwin.sh b/hints/darwin.sh index b4a7e52..518af30 100644 --- a/hints/darwin.sh +++ b/hints/darwin.sh @@ -78,8 +78,16 @@ ccflags="${ccflags} -pipe -fno-common" # ccflags="${ccflags} -DINT32_MIN_BROKEN -DINT64_MIN_BROKEN" -# cpp-precomp is problematic. -cppflags='-traditional-cpp'; +# cppflags='-traditional-cpp'; +# avoid Apple's cpp precompiler, better for extensions +cppflags="${cppflags} -no-cpp-precomp" +# and ccflags needs them aswell since we don't use cpp directly +ccflags="${ccflags} -no-cpp-precomp" + +# Known optimizer problems. +case "`cc -v 2>&1`" in +*"3.1 20020105"*) toke_cflags='optimize=""' ;; +esac # Shared library extension is .dylib. # Bundle extension is .bundle. @@ -88,6 +96,13 @@ so='dylib'; dlext='bundle'; dlsrc='dl_dyld.xs'; usedl='define'; cccdlflags=' '; # space, not empty, because otherwise we get -fpic +# ldflag: -flat_namespace is only available since OS X 10.1 (Darwin 1.4.1) +# - but not in 10.0.x (Darwin 1.3.x) +# -- Kay Roepke +case "$osvers" in +1.[0-3].*) ;; +*) ldflags="${ldflags} -flat_namespace" ;; +esac lddlflags="${ldflags} -bundle -undefined suppress"; ldlibpthname='DYLD_LIBRARY_PATH'; useshrplib='true'; @@ -108,6 +123,7 @@ usemymalloc='n'; # Locales aren't feeling well. LC_ALL=C; export LC_ALL; +LANG=C; export LANG; # Case-insensitive filesystems don't get along with Makefile and # makefile in the same place. Since Darwin uses GNU make, this dodges @@ -115,8 +131,7 @@ LC_ALL=C; export LC_ALL; firstmakefile=GNUmakefile; # -# The libraries are not threadsafe as of OS X 10. (10.1?) -# Better stop now. +# The libraries are not threadsafe as of OS X 10.1. # # Fix when Apple fixes libc. # @@ -124,9 +139,10 @@ case "$usethreads$useithreads$use5005threads" in *define*) cat <&4 -*** You do not have threadsafe libraries, I cannot use threads. -*** Cannot continue, aborting. +*** Warning, there might be problems with your libraries with +*** regards to threading. The test ext/threads/t/libc.t is likely +*** to fail. + EOM - exit 1 ;; esac