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.