initial patch for cygwin IPC via cygserver
Yitzchak Scott-Thoennes [Thu, 19 Feb 2004 09:01:13 +0000 (01:01 -0800)]
Message-ID: <20040219170113.GA2792@efn.org>

p4raw-id: //depot/perl@22358

ext/IPC/SysV/hints/cygwin.pl
hints/cygwin.sh

index e1a1dea..7c7299d 100644 (file)
@@ -1,2 +1,6 @@
 # SysV IPC is an optional Cygwin package
-$self->{LIBS} = ['-lcygipc']
+#
+# Starting with cygwin 1.5.7, cygipc is deprecated in favor of
+# cygserver (which requires no extra libs).
+# Uncomment if for some reason you need to get this to work with cygipc.
+#$self->{LIBS} = ['-lcygipc']
index b075b5c..aca6998 100644 (file)
@@ -23,9 +23,12 @@ so='dll'
 libswanted=`echo " $libswanted " | sed -e 's/ c / /g'`
 # - 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"
@@ -37,6 +40,16 @@ archname='cygwin'
 cccdlflags=' '
 ld='ld2'
 
+case "$osvers" in
+
+# 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'