X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=hints%2Fcygwin.sh;h=3d6ea8d4f8c386476d0deb070e17ad4d5a0c30e9;hb=e853d2264b77e2bdc0758f8ab38e819629763e81;hp=4843200f8500100145ab686101cb87b9144565db;hpb=1761cee512762c09b2a848d3c6cbd5a3b4232ffa;p=p5sagit%2Fp5-mst-13.2.git diff --git a/hints/cygwin.sh b/hints/cygwin.sh index 4843200..3d6ea8d 100644 --- a/hints/cygwin.sh +++ b/hints/cygwin.sh @@ -8,6 +8,7 @@ firstmakefile='GNUmakefile' case "$ldlibpthname" in '') ldlibpthname=PATH ;; esac +archobjs='cygwin.o' # mandatory (overrides incorrect defaults) test -z "$cc" && cc='gcc' @@ -18,27 +19,61 @@ 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='-O3' +man3ext='3pm' +test -z "$use64bitint" && use64bitint='define' +test -z "$usethreads" && usethreads='define' +test -z "$usemymalloc" && usemymalloc='define' +ccflags="$ccflags -DPERL_USE_SAFE_PUTENV -U__STRICT_ANSI__" # - otherwise i686-cygwin archname='cygwin' # dynamic loading -ld='ld2' # - otherwise -fpic cccdlflags=' ' +lddlflags=' --shared' +ld='g++' -# optional(ish) -# - perl malloc needs to be unpolluted -bincompat5005='undef' +case "$osvers" in -# stubs (ENOSYS, not implemented) -d_chroot='undef' -d_seteuid='undef' -d_setegid='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; -# strip exe's and dll's +# compile Win32CORE "module" as static. try to avoid the space. +if test -z "$static_ext"; then + static_ext="Win32CORE" +else + static_ext="$static_ext Win32CORE" +fi + +# Win9x problem with non-blocking read from a closed pipe +d_eofnblk='define' + +# suppress auto-import warnings +ldflags="$ldflags -Wl,--enable-auto-import -Wl,--export-all-symbols -Wl,--stack,8388608 -Wl,--enable-auto-image-base" +lddlflags="$lddlflags $ldflags" + +# strip exe's and dll's, better do it afterwards #ldflags="$ldflags -s" #ccdlflags="$ccdlflags -s" #lddlflags="$lddlflags -s" + +# IPv6 not fully implemented under Cygwin +d_inetntop='undef' +d_inetpton='undef'