Skip to content

Commit 86d9cdf

Browse files
committed
WIP: build scripts and patch files for 5.36
1 parent ec55cb5 commit 86d9cdf

File tree

6 files changed

+812
-0
lines changed

6 files changed

+812
-0
lines changed

devel.utils/_build-5.36.bat

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
::@cls
2+
::call ..\build.bat test
3+
4+
::set PERL_USE_UNSAFE_INC=1
5+
6+
set SP=z:\sp532
7+
set PATH=%SP%\c\bin;%SP%\perl\bin;%SP%\perl\site\bin;%PATH%
8+
9+
set SKIP_MSI_STEP=
10+
set SKIP_PDL_STEP=
11+
perl -Mblib ..\script\perldist_strawberry -job ..\share\64bit-5.36.0.1.pp -test_core -beta=0 -nointeractive -norestorepoints -wixbin_dir=z:\sw\wix311 -cpan_url https://cpan.metacpan.org
12+
13+

share/64bit-5.36.0.1.pp

Lines changed: 546 additions & 0 deletions
Large diffs are not rendered by default.

share/perl-5.36/19663.patch

Lines changed: 103 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,103 @@
1+
From 11c0968b321f527a61803b68c4b1cb05e2bb78e5 Mon Sep 17 00:00:00 2001
2+
From: sisyphus <[email protected]>
3+
Date: Mon, 25 Apr 2022 20:11:28 +1000
4+
Subject: [PATCH 1/3] Fix dist/IO/poll.h for mingw-w64 runtimes 9.0 and later
5+
6+
---
7+
dist/IO/poll.h | 9 ++++++++-
8+
1 file changed, 8 insertions(+), 1 deletion(-)
9+
10+
diff --git a/dist/IO/poll.h b/dist/IO/poll.h
11+
index 08de2506cdb2..0b025c0ad20d 100644
12+
--- a/dist/IO/poll.h
13+
+++ b/dist/IO/poll.h
14+
@@ -10,7 +10,7 @@
15+
#ifndef POLL_H
16+
# define POLL_H
17+
18+
-#if (defined(HAS_POLL) && defined(I_POLL)) || defined(POLLWRBAND)
19+
+#if (defined(HAS_POLL) && defined(I_POLL)) || (defined(POLLWRBAND) && !defined(_WIN32))
20+
# include <poll.h>
21+
#elif (defined(HAS_POLL) && defined(I_SYS_POLL))
22+
# include <sys/poll.h>
23+
@@ -22,11 +22,16 @@
24+
25+
#define EMULATE_POLL_WITH_SELECT
26+
27+
+#ifdef _WIN32
28+
+# include <winsock2.h>
29+
+#endif
30+
+
31+
#ifdef poll
32+
# undef poll
33+
#endif
34+
#define poll Perl_my_poll
35+
36+
+#if WINVER < 0x0600
37+
typedef struct pollfd {
38+
int fd;
39+
short events;
40+
@@ -48,6 +53,8 @@ typedef struct pollfd {
41+
#define POLLHUP 0x0010
42+
#define POLLNVAL 0x0020
43+
44+
+#endif
45+
+
46+
int poll (struct pollfd *, unsigned long, int);
47+
48+
#ifndef HAS_POLL
49+
50+
From baf5354a4ef7c7c9dc886e9f0eeaebc65833d25d Mon Sep 17 00:00:00 2001
51+
From: sisyphus <[email protected]>
52+
Date: Mon, 25 Apr 2022 20:19:38 +1000
53+
Subject: [PATCH 2/3] define d_inetntop and d_inetpton for mingw builds
54+
55+
---
56+
win32/config.gc | 4 ++--
57+
1 file changed, 2 insertions(+), 2 deletions(-)
58+
59+
diff --git a/win32/config.gc b/win32/config.gc
60+
index 9d44768f64d1..6005e72bfa60 100644
61+
--- a/win32/config.gc
62+
+++ b/win32/config.gc
63+
@@ -307,8 +307,8 @@ d_ilogbl='define'
64+
d_inc_version_list='undef'
65+
d_index='undef'
66+
d_inetaton='undef'
67+
-d_inetntop='undef'
68+
-d_inetpton='undef'
69+
+d_inetntop='define'
70+
+d_inetpton='define'
71+
d_int64_t='undef'
72+
d_ip_mreq='undef'
73+
d_ip_mreq_source='undef'
74+
75+
From 75d119e39549ce67ed6c0c8fabfcb943f2187866 Mon Sep 17 00:00:00 2001
76+
From: sisyphus <[email protected]>
77+
Date: Mon, 25 Apr 2022 20:22:23 +1000
78+
Subject: [PATCH 3/3] define HAS_INETPTON and HAS_INETNTOP for mingw builds
79+
80+
---
81+
win32/config_H.gc | 4 ++--
82+
1 file changed, 2 insertions(+), 2 deletions(-)
83+
84+
diff --git a/win32/config_H.gc b/win32/config_H.gc
85+
index 3644377b7973..2533efd05908 100644
86+
--- a/win32/config_H.gc
87+
+++ b/win32/config_H.gc
88+
@@ -2809,13 +2809,13 @@
89+
* This symbol, if defined, indicates that the inet_ntop() function
90+
* is available to parse IPv4 and IPv6 strings.
91+
*/
92+
-/*#define HAS_INETNTOP / **/
93+
+#define HAS_INETNTOP /**/
94+
95+
/* HAS_INETPTON:
96+
* This symbol, if defined, indicates that the inet_pton() function
97+
* is available to parse IPv4 and IPv6 strings.
98+
*/
99+
-/*#define HAS_INETPTON / **/
100+
+#define HAS_INETPTON /**/
101+
102+
/* HAS_INT64_T:
103+
* This symbol will defined if the C compiler supports int64_t.

share/perl-5.36/perl_pr19663.diff

Lines changed: 74 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,74 @@
1+
diff --git a/dist/IO/poll.h b/dist/IO/poll.h
2+
index 08de2506cdb2..0b025c0ad20d 100644
3+
--- a/dist/IO/poll.h
4+
+++ b/dist/IO/poll.h
5+
@@ -10,7 +10,7 @@
6+
#ifndef POLL_H
7+
# define POLL_H
8+
9+
-#if (defined(HAS_POLL) && defined(I_POLL)) || defined(POLLWRBAND)
10+
+#if (defined(HAS_POLL) && defined(I_POLL)) || (defined(POLLWRBAND) && !defined(_WIN32))
11+
# include <poll.h>
12+
#elif (defined(HAS_POLL) && defined(I_SYS_POLL))
13+
# include <sys/poll.h>
14+
@@ -22,11 +22,16 @@
15+
16+
#define EMULATE_POLL_WITH_SELECT
17+
18+
+#ifdef _WIN32
19+
+# include <winsock2.h>
20+
+#endif
21+
+
22+
#ifdef poll
23+
# undef poll
24+
#endif
25+
#define poll Perl_my_poll
26+
27+
+#if WINVER < 0x0600
28+
typedef struct pollfd {
29+
int fd;
30+
short events;
31+
@@ -48,6 +53,8 @@ typedef struct pollfd {
32+
#define POLLHUP 0x0010
33+
#define POLLNVAL 0x0020
34+
35+
+#endif
36+
+
37+
int poll (struct pollfd *, unsigned long, int);
38+
39+
#ifndef HAS_POLL
40+
diff --git a/win32/config.gc b/win32/config.gc
41+
index 9d44768f64d1..6005e72bfa60 100644
42+
--- a/win32/config.gc
43+
+++ b/win32/config.gc
44+
@@ -307,8 +307,8 @@ d_ilogbl='define'
45+
d_inc_version_list='undef'
46+
d_index='undef'
47+
d_inetaton='undef'
48+
-d_inetntop='undef'
49+
-d_inetpton='undef'
50+
+d_inetntop='define'
51+
+d_inetpton='define'
52+
d_int64_t='undef'
53+
d_ip_mreq='undef'
54+
d_ip_mreq_source='undef'
55+
diff --git a/win32/config_H.gc b/win32/config_H.gc
56+
index 3644377b7973..2533efd05908 100644
57+
--- a/win32/config_H.gc
58+
+++ b/win32/config_H.gc
59+
@@ -2809,13 +2809,13 @@
60+
* This symbol, if defined, indicates that the inet_ntop() function
61+
* is available to parse IPv4 and IPv6 strings.
62+
*/
63+
-/*#define HAS_INETNTOP / **/
64+
+#define HAS_INETNTOP /**/
65+
66+
/* HAS_INETPTON:
67+
* This symbol, if defined, indicates that the inet_pton() function
68+
* is available to parse IPv4 and IPv6 strings.
69+
*/
70+
-/*#define HAS_INETPTON / **/
71+
+#define HAS_INETPTON /**/
72+
73+
/* HAS_INT64_T:
74+
* This symbol will defined if the C compiler supports int64_t.

share/perl-5.36/perlexe.rc.tt

Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
PERLEXE ICON perlexe.ico
2+
3+
#define CREATEPROCESS_MANIFEST_RESOURCE_ID 1
4+
#define RT_MANIFEST 24
5+
6+
#ifdef INCLUDE_MANIFEST
7+
CREATEPROCESS_MANIFEST_RESOURCE_ID RT_MANIFEST "perlexe.manifest"
8+
#endif
9+
10+
#include <Windows.h>
11+
12+
#ifndef DEBUG
13+
#define RCFLAG 0
14+
#else
15+
#define RCFLAG VER_DEBUG
16+
#endif
17+
18+
#define RCVERSION [%app_rc_version%]
19+
#define RCVERSION_STR "[%app_version%]\0"
20+
21+
VS_VERSION_INFO VERSIONINFO
22+
FILEVERSION RCVERSION
23+
PRODUCTVERSION RCVERSION
24+
FILEFLAGS RCFLAG
25+
FILEFLAGSMASK VS_FFI_FILEFLAGSMASK
26+
FILEOS VOS__WINDOWS32
27+
FILETYPE VFT_APP
28+
FILESUBTYPE VFT2_UNKNOWN
29+
BEGIN
30+
BLOCK "StringFileInfo"
31+
BEGIN
32+
BLOCK "040904E4"
33+
BEGIN
34+
VALUE "CompanyName", "strawberryperl.com\0"
35+
VALUE "FileDescription", "Perl interpreter\0"
36+
VALUE "FileVersion", RCVERSION_STR
37+
VALUE "InternalName", "perl.exe\0"
38+
VALUE "LegalCopyright", "Copyright 1987-2019 Larry Wall, binaries by https://strawberryperl.com\0"
39+
VALUE "OriginalFilename", "perl.exe\0"
40+
VALUE "ProductName", "[%app_fullname%]\0"
41+
VALUE "ProductVersion", RCVERSION_STR
42+
END
43+
END
44+
45+
BLOCK "VarFileInfo"
46+
BEGIN
47+
VALUE "Translation", 0x409, 0x04E4 /* English 0x409 + Windows ANSI codepage 0x04E4 */
48+
END
49+
END

share/perl-5.36/rt142390.patch

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
--- perl-5.37.0-20220604/cpan/Socket/Socket.xs_socket_poll 2022-06-04 12:25:26 +1000
2+
+++ perl-5.37.0-20220604/cpan/Socket/Socket.xs 2022-06-04 14:53:08 +1000
3+
@@ -98,6 +98,14 @@
4+
5+
#endif
6+
7+
+/*
8+
+ * The Windows implementations of inet_ntop and inet_pton are available
9+
+ * whenever (and only when) InetNtopA is defined.
10+
+ * Use those implementations whenever they are available.
11+
+ * Else use the implementations provided below.
12+
+*/
13+
+#ifndef InetNtopA
14+
+
15+
static int inet_pton(int af, const char *src, void *dst)
16+
{
17+
struct sockaddr_storage ss;
18+
@@ -146,6 +154,8 @@
19+
return dst;
20+
}
21+
22+
+#endif /* InetNtopA not defined */
23+
+
24+
#define HAS_INETPTON
25+
#define HAS_INETNTOP
26+
#endif
27+

0 commit comments

Comments
 (0)