Change 30107 by [EMAIL PROTECTED] on 2007/02/03 18:08:37

        Integrate:
        [ 26793]
        Cygwin issue (26792) and patchlevel (26790)
        
        Subject: Re: Cygwin status, maint and blead
        From: Yitzchak Scott-Thoennes <[EMAIL PROTECTED]>
        Date: Fri, 6 Jan 2006 13:47:10 -0800
        Message-ID: <[EMAIL PROTECTED]>
        
        Subject: Re: Cygwin status, maint and blead
        From: Yitzchak Scott-Thoennes <[EMAIL PROTECTED]>
        Date: Thu, 10 Nov 2005 00:46:33 -0800
        Message-ID: <[EMAIL PROTECTED]>
        
        [ 26947]
        Make dump and -u croak on Win32 and Cygwin to avoid confusion
        such as was seen here:
        
        Subject: Weird Win32 error: "This application has requested the Runtime 
to terminate it in an unusual way."
        From: demerphq <[EMAIL PROTECTED]>
        Date: Thu, 26 Jan 2006 15:40:42 +0100
        Message-ID: <[EMAIL PROTECTED]>
        
        [ 27252]
        Subject: [PATCH] op/magic failure on cygwin after 1.5.19-4
        From: Yitzchak Scott-Thoennes <[EMAIL PROTECTED]>
        Date: Mon, 20 Feb 2006 11:09:33 -0800
        Message-ID: <[EMAIL PROTECTED]>
        
        [ 27865]
        Subject: [PATCH] fix cygwin build
        From: Yitzchak Scott-Thoennes <[EMAIL PROTECTED]>
        Date: Sun, 16 Apr 2006 18:05:20 -0700
        Message-ID: <[EMAIL PROTECTED]>
        
        [ 28803]
        Fix to first problem causing Cygwin Perl to fail to build 
        in a path with spaces in it. 
        
        [ 29142]
        Changes to get perl to compile with g++ on Cygwin.  Some additional
        changes will be needed to get it to link though.
        
        [ 29427]
        -Dprefix failed on Cygwin unless the directory ${installbin} already
        existed prior to running make.
        
        [ 29713]
        Subject: help cygwin find its dlls even on taint tests with no path
        From: "Yitzchak Scott-Thoennes" <[EMAIL PROTECTED]>
        Date: Sun, 7 Jan 2007 16:56:28 -0800 (PST)
        Message-ID: <[EMAIL PROTECTED]>

Affected files ...

... //depot/maint-5.8/perl/Configure#83 integrate
... //depot/maint-5.8/perl/cygwin/Makefile.SHs#4 integrate
... //depot/maint-5.8/perl/cygwin/cygwin.c#7 integrate
... //depot/maint-5.8/perl/malloc.c#24 integrate
... //depot/maint-5.8/perl/perl.c#199 integrate
... //depot/maint-5.8/perl/perl.h#154 integrate
... //depot/maint-5.8/perl/pod/perldiag.pod#94 integrate
... //depot/maint-5.8/perl/pod/perlport.pod#24 integrate
... //depot/maint-5.8/perl/sv.c#338 integrate
... //depot/maint-5.8/perl/t/op/magic.t#28 integrate
... //depot/maint-5.8/perl/t/op/taint.t#19 integrate

Differences ...

==== //depot/maint-5.8/perl/Configure#83 (xtext) ====
Index: perl/Configure
--- perl/Configure#82~30033~    2007-01-27 08:40:35.000000000 -0800
+++ perl/Configure      2007-02-03 10:08:37.000000000 -0800
@@ -5978,7 +5978,7 @@
        api_revision=`awk '/define[     ]+PERL_API_REVISION/ {print $3}' 
$rsrc/patchlevel.h`
        api_version=`awk '/define[      ]+PERL_API_VERSION/ {print $3}' 
$rsrc/patchlevel.h`
        api_subversion=`awk '/define[   ]+PERL_API_SUBVERSION/ {print $3}' 
$rsrc/patchlevel.h`
-       perl_patchlevel=`grep ',"DEVEL[0-9][0-9]*"' $rsrc/patchlevel.h|sed 
's/[^0-9]//g'`
+       perl_patchlevel=`egrep 'define PERL_PATCHNUM 
[0-9][0-9]|,"MAINT[0-9][0-9]*"' $rsrc/patchlevel.h|sed 's/[^0-9]//g'`
 else
        revision=0
        patchlevel=0
@@ -5989,8 +5989,8 @@
        perl_patchlevel=0
        $echo "(You do not have patchlevel.h.  Eek.)"
 fi
-if $test -r $rsrc/.patch ; then  
-       if $test "`cat $rsrc/.patch`" -gt "$perl_patchlevel" ; then
+if $test -r $rsrc/.patch ; then
+       if $test "X$perl_patchlevel" = "X" || $test "`cat $rsrc/.patch`" -gt 
"$perl_patchlevel" ; then
                perl_patchlevel=`cat $rsrc/.patch`
        fi
 fi
@@ -15989,9 +15989,9 @@
 #endif
 END
     : see whether semctl IPC_STAT can use union semun
-    val="$undef"
     case "$d_semctl_semun" in
     '')
+      val="$undef"
       $cat > try.c <<END
 #include <sys/types.h>
 #include <sys/ipc.h>
@@ -16030,7 +16030,7 @@
            printf("semctl IPC_STAT failed: errno = %d\n", errno);
 #      ifdef IPC_RMID
        if (semctl(sem, 0, IPC_RMID, arg) != 0)
-#      endif /* IPC_RMID */
+#      endif /* IPC_RMID */
            printf("semctl IPC_RMID failed: errno = %d\n", errno);
     } else
 #endif /* IPC_PRIVATE && ... */
@@ -16046,10 +16046,10 @@
           esac
       fi
       $rm -f try try.c
+      set d_semctl_semun
+      eval $setvar
       ;;
     esac
-    set d_semctl_semun
-    eval $setvar
     case "$d_semctl_semun" in
     $define)
         echo "You can use union semun for semctl IPC_STAT." >&4
@@ -16061,9 +16061,9 @@
     esac
 
     : see whether semctl IPC_STAT can use struct semid_ds pointer
-    val="$undef"
     case "$d_semctl_semid_ds" in
     '')
+      val="$undef"
       $cat > try.c <<'END'
 #include <sys/types.h>
 #include <sys/ipc.h>
@@ -16108,10 +16108,10 @@
           esac
       fi
       $rm -f try try.c
+      set d_semctl_semid_ds
+      eval $setvar
       ;;
     esac
-    set d_semctl_semid_ds
-    eval $setvar
     case "$d_semctl_semid_ds" in
     $define)
         echo "You can $also use struct semid_ds* for semctl IPC_STAT." >&4

==== //depot/maint-5.8/perl/cygwin/Makefile.SHs#4 (text) ====
Index: perl/cygwin/Makefile.SHs
--- perl/cygwin/Makefile.SHs#3~23312~   2004-09-10 02:20:53.000000000 -0700
+++ perl/cygwin/Makefile.SHs    2007-02-03 10:08:37.000000000 -0800
@@ -22,7 +22,7 @@
        ;;
 esac
 
-addtopath=`pwd`
+addtopath=`pwd | sed -e 's/ /\\\ /g'`
 $spitshell >>Makefile <<!GROK!THIS!
 
 cygwin.c: cygwin/cygwin.c
@@ -34,9 +34,10 @@
        @$sed s,@buildpath@,$addtopath,g <${src}/cygwin/ld2.in >ld2
        @chmod a+x ld2
        @echo "installing ld2 into $installbin"
-# install is included in Cygwin distributions, and we make a note of th
+# install is included in Cygwin distributions, and we make a note of the
 # requirement in the README.cygwin file. However, let's give them
 # a warning.
+       @test -d ${installbin} || mkdir -p ${installbin}
        @/usr/bin/install -c -m 755 ld2 ${installbin}/ld2
        @if test ! -f  ${installbin}/ld2; then \
                echo "*************************************************" ; \
@@ -104,13 +105,13 @@
 
 # library used to make statically linked executables
 # miniperl is linked against it to avoid libperl.dll locking
-$(LIBPERL)$(LIB_EXT): $& perl$(OBJ_EXT) $(cwobj)
-       $(AR) rcu $@ perl$(OBJ_EXT) $(cwobj)
+$(LIBPERL)$(LIB_EXT): $& $(cwobj)
+       $(AR) rcu $@ $(cwobj)
 
 # dll and import library
-$(LIBPERL).dll$(LIB_EXT): $& perl$(OBJ_EXT) $(cwobj) ld2
+$(LIBPERL).dll$(LIB_EXT): $& $(cwobj) ld2
        $(LDLIBPTH) ld2 $(SHRPLDFLAGS) -o $(LIBPERL)$(DLSUFFIX) \
-       perl$(OBJ_EXT) $(cwobj) $(libs)
+       $(cwobj) $(libs)
 
 # How to build executables.
 
@@ -145,8 +146,8 @@
 cwobj = $(obj)
 
 # perl library
-$(LIBPERL)$(LIB_EXT): $& perl$(OBJ_EXT) $(cwobj)
-       $(AR) rcu $@ perl$(OBJ_EXT) $(cwobj)
+$(LIBPERL)$(LIB_EXT): $& $(cwobj)
+       $(AR) rcu $@ $(cwobj)
 
 # How to build executables.
 
@@ -205,4 +206,12 @@
        ./miniperl '-MExtUtils::Manifest' \
        -e 
"ExtUtils::Manifest::manicopy(ExtUtils::Manifest::maniread(),'$(DIST_DIRECTORY)')"
 
+cygwin1.dll: /bin/cygwin1.dll
+       cp /bin/cygwin1.dll .
+
+cygcrypt-0.dll: /bin/cygcrypt-0.dll
+       cp /bin/cygcrypt-0.dll .
+
+test_prep: cygwin1.dll cygcrypt-0.dll
+
 !NO!SUBS!

==== //depot/maint-5.8/perl/cygwin/cygwin.c#7 (text) ====
Index: perl/cygwin/cygwin.c
--- perl/cygwin/cygwin.c#6~28115~       2006-05-06 17:03:20.000000000 -0700
+++ perl/cygwin/cygwin.c        2007-02-03 10:08:37.000000000 -0800
@@ -57,7 +57,7 @@
 
     while (++mark <= sp)
         if (*mark)
-            *a++ = SvPVx(*mark, n_a);
+            *a++ = SvPVx((SV *)*mark, n_a);
         else
             *a++ = "";
     *a = Nullch;
@@ -137,7 +137,6 @@
 }
 
 /* see also Cwd.pm */
-static
 XS(Cygwin_cwd)
 {
     dXSARGS;
@@ -156,7 +155,6 @@
     XSRETURN_UNDEF;
 }
 
-static
 XS(XS_Cygwin_pid_to_winpid)
 {
     dXSARGS;
@@ -175,7 +173,6 @@
     XSRETURN_UNDEF;
 }
 
-static
 XS(XS_Cygwin_winpid_to_pid)
 {
     dXSARGS;

==== //depot/maint-5.8/perl/malloc.c#24 (text) ====
Index: perl/malloc.c
--- perl/malloc.c#23~29925~     2007-01-22 14:10:59.000000000 -0800
+++ perl/malloc.c       2007-02-03 10:08:37.000000000 -0800
@@ -1997,11 +1997,11 @@
 }
 
 Free_t
-Perl_mfree(void *mp)
+Perl_mfree(Malloc_t where)
 {
        register MEM_SIZE size;
        register union overhead *ovp;
-       char *cp = (char*)mp;
+       char *cp = (char*)where;
 #ifdef PACK_MALLOC
        u_char bucket;
 #endif 
@@ -2318,7 +2318,7 @@
     MEM_SIZE l = strlen(s);
     char *s1 = (char *)Perl_malloc(l+1);
 
-    return CopyD(s, s1, (MEM_SIZE)(l+1), char);
+    return (char *)CopyD(s, s1, (MEM_SIZE)(l+1), char);
 }
 
 #ifdef PERL_CORE
@@ -2341,7 +2341,7 @@
   if (l < sizeof(buf))
       var = buf;
   else
-      var = Perl_malloc(l + 1);
+      var = (char *)Perl_malloc(l + 1);
   Copy(a, var, l, char);
   var[l + 1] = 0;
   my_setenv(var, val+1);

==== //depot/maint-5.8/perl/perl.c#199 (text) ====
Index: perl/perl.c
--- perl/perl.c#198~30094~      2007-02-02 08:57:24.000000000 -0800
+++ perl/perl.c 2007-02-03 10:08:37.000000000 -0800
@@ -3543,6 +3543,8 @@
 #  ifdef VMS
 #    include <lib$routines.h>
      lib$signal(SS$_DEBUG);  /* ssdef.h #included from vmsish.h */
+#  elif defined(WIN32) || defined(__CYGWIN__)
+    Perl_croak(aTHX_ "dump is not supported");
 #  else
     ABORT();           /* for use with undump */
 #  endif

==== //depot/maint-5.8/perl/perl.h#154 (text) ====
Index: perl/perl.h
--- perl/perl.h#153~30099~      2007-02-02 13:14:53.000000000 -0800
+++ perl/perl.h 2007-02-03 10:08:37.000000000 -0800
@@ -1095,6 +1095,10 @@
 EXTERN_C char **environ;
 #endif
 
+#if defined(__CYGWIN__) && defined(__cplusplus)
+EXTERN_C char *crypt(const char *, const char *);
+#endif
+
 #if defined(__OpenBSD__) && defined(__cplusplus)
 EXTERN_C char **environ;
 #endif

==== //depot/maint-5.8/perl/pod/perldiag.pod#94 (text) ====
Index: perl/pod/perldiag.pod
--- perl/pod/perldiag.pod#93~29864~     2007-01-17 15:29:13.000000000 -0800
+++ perl/pod/perldiag.pod       2007-02-03 10:08:37.000000000 -0800
@@ -1450,6 +1450,10 @@
 (W misc) You used the obsolescent C<dump()> built-in function, without fully
 qualifying it as C<CORE::dump()>.  Maybe it's a typo.  See L<perlfunc/dump>.
 
+=item dump is not supported
+
+(F) Your machine doesn't support dump/undump.
+
 =item Duplicate free() ignored
 
 (S malloc) An internal routine called free() on something that had

==== //depot/maint-5.8/perl/pod/perlport.pod#24 (text) ====
Index: perl/pod/perlport.pod
--- perl/pod/perlport.pod#23~28111~     2006-05-05 12:41:27.000000000 -0700
+++ perl/pod/perlport.pod       2007-02-03 10:08:37.000000000 -0800
@@ -1709,7 +1709,7 @@
 
 Not useful. (S<Mac OS>, S<RISC OS>)
 
-Not implemented. (Win32)
+Not supported. (Cygwin, Win32)
 
 Invokes VMS debugger. (VMS)
 

==== //depot/maint-5.8/perl/sv.c#338 (text) ====
Index: perl/sv.c
--- perl/sv.c#337~30096~        2007-02-02 10:03:45.000000000 -0800
+++ perl/sv.c   2007-02-03 10:08:37.000000000 -0800
@@ -9919,7 +9919,7 @@
            /* fall through */
        case SAVEt_COMPPAD:
        case SAVEt_NSTAB:
-           sv = POPPTR(ss,ix);
+           sv = (SV*) POPPTR(ss,ix);
            TOPPTR(nss,ix) = sv_dup(sv, param);
            break;
        case SAVEt_INT:                         /* int reference */

==== //depot/maint-5.8/perl/t/op/magic.t#28 (xtext) ====
Index: perl/t/op/magic.t
--- perl/t/op/magic.t#27~26697~ 2006-01-07 05:18:30.000000000 -0800
+++ perl/t/op/magic.t   2007-02-03 10:08:37.000000000 -0800
@@ -257,7 +257,7 @@
     s{\\}{/}g;
     ok((($Is_MSWin32 || $Is_os2) ? uc($_) eq uc($s1) : $_ eq $s1), " 
:$_:!=:$s1:");
     $_ = `$perl $script`;
-    s/\.exe//i if $Is_Dos or $Is_os2;
+    s/\.exe//i if $Is_Dos or $Is_os2 or $Is_Cygwin;
     s{./$perl}{$perl} if $Is_BeOS; # revert BeOS execvp() side-effect
     s{\\}{/}g;
     ok((($Is_MSWin32 || $Is_os2) ? uc($_) eq uc($s1) : $_ eq $s1), " 
:$_:!=:$s1: after `$perl $script`");

==== //depot/maint-5.8/perl/t/op/taint.t#19 (xtext) ====
Index: perl/t/op/taint.t
--- perl/t/op/taint.t#18~30048~ 2007-01-27 16:08:17.000000000 -0800
+++ perl/t/op/taint.t   2007-02-03 10:08:37.000000000 -0800
@@ -155,22 +155,6 @@
     delete @[EMAIL PROTECTED];
     $ENV{TERM} = 'dumb';
 
-    if ($Is_Cygwin && ! -f 'cygwin1.dll') {
-       system("/usr/bin/cp /usr/bin/cygwin1.dll .") &&
-           die "$0: failed to cp cygwin1.dll: $!\n";
-       eval q{
-           END { unlink "cygwin1.dll" }
-       };
-    }
-
-    if ($Is_Cygwin && ! -f 'cygcrypt-0.dll' && -f '/usr/bin/cygcrypt-0.dll') {
-       system("/usr/bin/cp /usr/bin/cygcrypt-0.dll .") &&
-           die "$0: failed to cp cygcrypt-0.dll: $!\n";
-       eval q{
-           END { unlink "cygcrypt-0.dll" }
-       };
-    }
-
     test eval { `$echo 1` } eq "1\n";
 
     SKIP: {
End of Patch.

Reply via email to