Fix an error, spotted by Tim Bunce.
[p5sagit/p5-mst-13.2.git] / hints / cygwin.sh
index 47c2092..8fa9ec6 100644 (file)
@@ -19,10 +19,19 @@ then
     plibpth=`cd $plibpth && pwd`
 fi
 so='dll'
-# - eliminate -lc, implied by gcc
+# - eliminate -lc, implied by gcc and a symlink to libcygwin.a
 libswanted=`echo " $libswanted " | sed -e 's/ c / /g'`
-libswanted="$libswanted cygipc cygwin kernel32"
+# - eliminate -lm, symlink to libcygwin.a
+libswanted=`echo " $libswanted " | sed -e 's/ m / /g'`
+# - eliminate -lutil, symbols are all in libcygwin.a
+libswanted=`echo " $libswanted " | sed -e 's/ util / /g'`
+# - add libgdbm_compat $libswanted
+# - libcygipc doesn't work much at all with
+#   the Perl SysV IPC tests so not adding it --jhi 2003-08-09
+#   (with cygwin 1.5.7, cygipc is deprecated in favor of the builtin cygserver)
+libswanted="$libswanted gdbm_compat"
 test -z "$optimize" && optimize='-O2'
+ccflags="$ccflags -DPERL_USE_SAFE_PUTENV"
 # - otherwise i686-cygwin
 archname='cygwin'
 
@@ -31,16 +40,22 @@ archname='cygwin'
 cccdlflags=' '
 ld='ld2'
 
-# optional(ish)
-# - perl malloc needs to be unpolluted
-bincompat5005='undef'
+case "$osvers" in
 
-# stubs (ENOSYS, not implemented)
-d_chroot='undef'
+# Configure gets these wrong if the IPC server isn't yet running:
+# only use for 1.5.7 and onwards
+[2-9]*|1.[6-9]*|1.[1-5][0-9]*|1.5.[7-9]*|1.5.[1-6][0-9]*)
+        d_semctl_semid_ds='define'
+        d_semctl_semun='define'
+        ;;
+esac;
 
 # Win9x problem with non-blocking read from a closed pipe
 d_eofnblk='define'
 
+# suppress auto-import warnings
+ldflags="$ldflags -Wl,--enable-auto-import"
+
 # strip exe's and dll's
 #ldflags="$ldflags -s"
 #ccdlflags="$ccdlflags -s"