Merge pull request #3965 from lazka/msys2-runtime-3.4.8

msys2-runtime: Update to 3.4.8
This commit is contained in:
Christoph Reiter 2023-08-19 00:05:29 +02:00 committed by GitHub
commit f7e036d87b
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
48 changed files with 187 additions and 630 deletions

View File

@ -1,4 +1,4 @@
From 52012877a0115ba41cd30181892dae26d06830f0 Mon Sep 17 00:00:00 2001
From 7d015d21713754d31fc4ba398fa65b00c472e083 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=D0=90=D0=BB=D0=B5=D0=BA=D1=81=D0=B5=D0=B8=CC=86=20=D0=9F?=
=?UTF-8?q?=D0=B0=D0=B2=D0=BB=D0=BE=D0=B2?= <alexey.pawlow@gmail.com>
Date: Sun, 14 Apr 2019 20:40:45 +0300

View File

@ -1,4 +1,4 @@
From e84fccba6030937ccc9a0b42880ccbd1de42a8da Mon Sep 17 00:00:00 2001
From 61f9f3954a92fa7fc16a018c3459e7b7f12b74f1 Mon Sep 17 00:00:00 2001
From: Kaleb Barrett <dev.ktbarrett@gmail.com>
Date: Sun, 14 Mar 2021 18:58:55 -0500
Subject: [PATCH 02/N] Fix msys library name in import libraries

View File

@ -1,4 +1,4 @@
From e7ff93755b865000c2475659c5c1d5255892b0dc Mon Sep 17 00:00:00 2001
From f09af38c78294c2aac91a550b936b791b5b54999 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=D0=90=D0=BB=D0=B5=D0=BA=D1=81=D0=B5=D0=B8=CC=86=20=D0=9F?=
=?UTF-8?q?=D0=B0=D0=B2=D0=BB=D0=BE=D0=B2?= <alexey.pawlow@gmail.com>
Date: Sun, 14 Apr 2019 21:09:17 +0300
@ -425,10 +425,10 @@ index e231316..283319c 100644
/* Create a pipe, and return handles to the read and write ends,
just like CreatePipe, but ensure that the write end permits
diff --git a/winsup/cygwin/fhandler/pty.cc b/winsup/cygwin/fhandler/pty.cc
index bb34d10..01721e3 100644
index df37d91..2836e4e 100644
--- a/winsup/cygwin/fhandler/pty.cc
+++ b/winsup/cygwin/fhandler/pty.cc
@@ -925,7 +925,11 @@ fhandler_pty_slave::open (int flags, mode_t)
@@ -924,7 +924,11 @@ fhandler_pty_slave::open (int flags, mode_t)
pipe_reply repl;
DWORD len;
@ -440,7 +440,7 @@ index bb34d10..01721e3 100644
&cygheap->installation_key, get_minor ());
termios_printf ("dup handles via master control pipe %s", buf);
if (!CallNamedPipe (buf, &req, sizeof req, &repl, sizeof repl,
@@ -1200,7 +1204,11 @@ fhandler_pty_slave::reset_switch_to_nat_pipe (void)
@@ -1199,7 +1203,11 @@ fhandler_pty_slave::reset_switch_to_nat_pipe (void)
{
char pipe[MAX_PATH];
__small_sprintf (pipe,
@ -452,7 +452,7 @@ index bb34d10..01721e3 100644
&cygheap->installation_key, get_minor ());
pipe_request req = { GetCurrentProcessId () };
pipe_reply repl;
@@ -2079,7 +2087,11 @@ fhandler_pty_master::close ()
@@ -2078,7 +2086,11 @@ fhandler_pty_master::close ()
pipe_reply repl;
DWORD len;
@ -476,7 +476,7 @@ index bb34d10..01721e3 100644
&cygheap->installation_key, unit);
master_ctl = CreateNamedPipe (buf, PIPE_ACCESS_DUPLEX
| FILE_FLAG_FIRST_PIPE_INSTANCE,
@@ -3897,7 +3913,11 @@ fhandler_pty_slave::transfer_input (tty::xfer_dir dir, HANDLE from, tty *ttyp,
@@ -3899,7 +3915,11 @@ fhandler_pty_slave::transfer_input (tty::xfer_dir dir, HANDLE from, tty *ttyp,
{
char pipe[MAX_PATH];
__small_sprintf (pipe,
@ -560,7 +560,7 @@ index 1e4cf98..b77598b 100644
} \
} \
diff --git a/winsup/cygwin/include/cygwin/version.h b/winsup/cygwin/include/cygwin/version.h
index d26e06f..79f2b41 100644
index 51b2884..93068e6 100644
--- a/winsup/cygwin/include/cygwin/version.h
+++ b/winsup/cygwin/include/cygwin/version.h
@@ -496,7 +496,11 @@ details. */
@ -767,7 +767,7 @@ index 43b5803..db1d5c8 100644
ts.SourceIdentifier.LowPart = kerberos_auth ? 0x0105 : 0x0106;
diff --git a/winsup/cygwin/syscalls.cc b/winsup/cygwin/syscalls.cc
index 5adc614..3aa431b 100644
index a0ad3c2..dba1c0d 100644
--- a/winsup/cygwin/syscalls.cc
+++ b/winsup/cygwin/syscalls.cc
@@ -297,7 +297,7 @@ try_to_bin (path_conv &pc, HANDLE &fh, ACCESS_MASK access, ULONG flags)

View File

@ -1,4 +1,4 @@
From 42631a088d441739abc469c0e46bd0d781289583 Mon Sep 17 00:00:00 2001
From f810746047f3105b2a1fef152520d2c1b558fa45 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=D0=90=D0=BB=D0=B5=D0=BA=D1=81=D0=B5=D0=B8=CC=86=20=D0=9F?=
=?UTF-8?q?=D0=B0=D0=B2=D0=BB=D0=BE=D0=B2?= <alexey.pawlow@gmail.com>
Date: Sun, 14 Apr 2019 21:17:46 +0300
@ -13,11 +13,11 @@ Subject: [PATCH 04/N] Add functionality for converting UNIX paths in
winsup/cygwin/include/sys/cygwin.h | 6 +
winsup/cygwin/local_includes/environ.h | 2 +-
winsup/cygwin/local_includes/winf.h | 4 +
winsup/cygwin/msys2_path_conv.cc | 642 +++++++++++++++++++++++++
winsup/cygwin/msys2_path_conv.cc | 636 +++++++++++++++++++++++++
winsup/cygwin/msys2_path_conv.h | 147 ++++++
winsup/cygwin/path.cc | 69 +++
winsup/cygwin/spawn.cc | 38 +-
10 files changed, 931 insertions(+), 4 deletions(-)
10 files changed, 925 insertions(+), 4 deletions(-)
create mode 100644 winsup/cygwin/msys2_path_conv.cc
create mode 100644 winsup/cygwin/msys2_path_conv.h
@ -142,10 +142,10 @@ index 651f78b..38719f3 100644
for (int i = calloced; i < argc; i++)
diff --git a/winsup/cygwin/msys2_path_conv.cc b/winsup/cygwin/msys2_path_conv.cc
new file mode 100644
index 0000000..367692b
index 0000000..f0fe18e
--- /dev/null
+++ b/winsup/cygwin/msys2_path_conv.cc
@@ -0,0 +1,642 @@
@@ -0,0 +1,636 @@
+/*
+ The MSYS2 Path conversion source code is licensed under:
+
@ -349,7 +349,7 @@ index 0000000..367692b
+
+
+void find_end_of_posix_list(const char** to, int* in_string) {
+ for (; **to != '\0' && (in_string ? (**to != *in_string) : **to != ' '); ++*to) {
+ for (; **to != '\0' && (!in_string || **to != *in_string); ++*to) {
+ }
+
+ if (**to == *in_string) {
@ -450,12 +450,6 @@ index 0000000..367692b
+ }
+ continue;
+ }
+
+ if (isspace(*srcit)) {
+ //sub_convert(&srcbeg, &srcit, &dstit, dstend, &in_string);
+ //srcbeg = srcit + 1;
+ break;
+ }
+ }
+
+ sub_convert(&srcbeg, &srcit, &dstit, dstend, &in_string);

View File

@ -1,4 +1,4 @@
From f128c3d95b2b3c298f90791d8c38511d800e7fd0 Mon Sep 17 00:00:00 2001
From 352a420ae759165349a57ff4f47f21b1e0a753ec Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=D0=90=D0=BB=D0=B5=D0=BA=D1=81=D0=B5=D0=B8=CC=86=20=D0=9F?=
=?UTF-8?q?=D0=B0=D0=B2=D0=BB=D0=BE=D0=B2?= <alexey.pawlow@gmail.com>
Date: Sun, 14 Apr 2019 21:29:01 +0300

View File

@ -1,4 +1,4 @@
From 8b6eefea34cd4a95ee373758e668c1be80ad4f29 Mon Sep 17 00:00:00 2001
From 544e24710d47e1a941459888466fa7e08ccd1f63 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=D0=90=D0=BB=D0=B5=D0=BA=D1=81=D0=B5=D0=B8=CC=86=20=D0=9F?=
=?UTF-8?q?=D0=B0=D0=B2=D0=BB=D0=BE=D0=B2?= <alexey.pawlow@gmail.com>
Date: Sun, 14 Apr 2019 21:45:06 +0300

View File

@ -1,4 +1,4 @@
From 0fc4cf316cd02b70e539b0dc24ddeaf712f7ae8b Mon Sep 17 00:00:00 2001
From e6599e0dd16ba302a46065320488524b4f32331f Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=D0=90=D0=BB=D0=B5=D0=BA=D1=81=D0=B5=D0=B8=CC=86=20=D0=9F?=
=?UTF-8?q?=D0=B0=D0=B2=D0=BB=D0=BE=D0=B2?= <alexey.pawlow@gmail.com>
Date: Sun, 14 Apr 2019 21:47:21 +0300

View File

@ -1,4 +1,4 @@
From 0d77252ed76d97e137fd12376c4d6a913490749a Mon Sep 17 00:00:00 2001
From eba0398f5009f22a403cedb618cf40e0bcaf4633 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=D0=90=D0=BB=D0=B5=D0=BA=D1=81=D0=B5=D0=B8=CC=86=20=D0=9F?=
=?UTF-8?q?=D0=B0=D0=B2=D0=BB=D0=BE=D0=B2?= <alexey.pawlow@gmail.com>
Date: Sun, 14 Apr 2019 21:48:54 +0300

View File

@ -1,4 +1,4 @@
From 45aa3867bb3485cfe6e781843578735ece245bbb Mon Sep 17 00:00:00 2001
From ac57d016d17c97e358c3899c6c3bb640da52bc69 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=D0=90=D0=BB=D0=B5=D0=BA=D1=81=D0=B5=D0=B8=CC=86=20=D0=9F?=
=?UTF-8?q?=D0=B0=D0=B2=D0=BB=D0=BE=D0=B2?= <alexey.pawlow@gmail.com>
Date: Sun, 14 Apr 2019 21:50:55 +0300

View File

@ -1,4 +1,4 @@
From d9d7bda19a5bc1843e91ad8c5a18cd2a379aa98d Mon Sep 17 00:00:00 2001
From 4ffc0436e0d3b5ceeb8c7583cfa006b1c9f21190 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=D0=90=D0=BB=D0=B5=D0=BA=D1=81=D0=B5=D0=B8=CC=86=20=D0=9F?=
=?UTF-8?q?=D0=B0=D0=B2=D0=BB=D0=BE=D0=B2?= <alexey.pawlow@gmail.com>
Date: Sun, 14 Apr 2019 22:13:51 +0300

View File

@ -1,4 +1,4 @@
From 8a7e2c8fdcf85582c06a08c8045012571bf96137 Mon Sep 17 00:00:00 2001
From 34561af15adf6d861f8ba46c65cdbea9fa4c8f4f Mon Sep 17 00:00:00 2001
From: Ray Donnelly <mingw.android@gmail.com>
Date: Fri, 21 Aug 2015 12:52:09 +0100
Subject: [PATCH 11/N] dcrt0.cc: Untangle allow_glob from winshell

View File

@ -1,4 +1,4 @@
From 48bf4db48a5e79c8d44044e4c154b5968a7cb160 Mon Sep 17 00:00:00 2001
From 05b2ac972c2e8784991c8fee0158e715def3f2cb Mon Sep 17 00:00:00 2001
From: Ray Donnelly <mingw.android@gmail.com>
Date: Mon, 24 Aug 2015 00:48:06 +0100
Subject: [PATCH 12/N] dcrt0.cc (globify): Don't quote literal strings

View File

@ -1,4 +1,4 @@
From d3686a1495931dd55f4e9e8cc496497d1f3fd6fd Mon Sep 17 00:00:00 2001
From 0600ea28681041ae352a19dcb4f01f8d2b3a5e1b Mon Sep 17 00:00:00 2001
From: Ray Donnelly <mingw.android@gmail.com>
Date: Sun, 23 Aug 2015 20:47:30 +0100
Subject: [PATCH 13/N] strace.cc: Don't set MSYS=noglob

View File

@ -1,4 +1,4 @@
From fdf8171fe870eb651f1496fd5d4c7556b38fff47 Mon Sep 17 00:00:00 2001
From 4b5ceb138c3f998a28674d9454db1cffc66c1858 Mon Sep 17 00:00:00 2001
From: Ray Donnelly <mingw.android@gmail.com>
Date: Fri, 21 Aug 2015 12:18:52 +0100
Subject: [PATCH 14/N] Add debugging for build_argv

View File

@ -1,4 +1,4 @@
From 5d8a5b29aaaff9f33d1aa72c09ec8145b70a7500 Mon Sep 17 00:00:00 2001
From 44cd2849b35a5744cd6bfaca32bbae858e5bb243 Mon Sep 17 00:00:00 2001
From: Ray Donnelly <mingw.android@gmail.com>
Date: Fri, 21 Aug 2015 09:52:47 +0100
Subject: [PATCH 15/N] Add debugging for strace make_command_line

View File

@ -1,4 +1,4 @@
From 6d550baa7883d36b1df4ceba6762469b5f122411 Mon Sep 17 00:00:00 2001
From b3a91e38a43be69e6aeaba002aee2165cbe76a4d Mon Sep 17 00:00:00 2001
From: Ray Donnelly <mingw.android@gmail.com>
Date: Sun, 10 Apr 2016 21:47:41 +0100
Subject: [PATCH 16/N] environ.cc: New facility/environment variable

View File

@ -1,4 +1,4 @@
From 8573928f8ee5886f43c8888713a298bb2a08f253 Mon Sep 17 00:00:00 2001
From bfd04ad219d31ec6dc0495d881a61beb2c9f8b3a Mon Sep 17 00:00:00 2001
From: SquallATF <squallatf@gmail.com>
Date: Mon, 10 Sep 2018 11:32:18 +0300
Subject: [PATCH 17/N] Fix native symbolic link spawn passing wrong arg0

View File

@ -1,4 +1,4 @@
From b81a4da46af799fec572f03294cc94fd6a4efe2e Mon Sep 17 00:00:00 2001
From 31730e6a7dfc387810be809db69cd5c7eac9e879 Mon Sep 17 00:00:00 2001
From: Johannes Schindelin <johannes.schindelin@gmx.de>
Date: Wed, 17 May 2017 18:13:32 +0200
Subject: [PATCH 18/N] strace --quiet: be *really* quiet

View File

@ -1,4 +1,4 @@
From cb4a389838cce18b3568dcaaa6b97af53bd76f78 Mon Sep 17 00:00:00 2001
From 3eb205195e2984e8a817c004e9808b19979c6aee Mon Sep 17 00:00:00 2001
From: Johannes Schindelin <johannes.schindelin@gmx.de>
Date: Tue, 19 May 2020 13:49:37 +0200
Subject: [PATCH 19/N] Introduce the `enable_pcon` value for `MSYS`

View File

@ -1,4 +1,4 @@
From d0804ef6bc27263aeac6f7b1f2cb1ecbefb02e58 Mon Sep 17 00:00:00 2001
From 294472a269b48bdc7b9c01af5f6b6aabedaee9e5 Mon Sep 17 00:00:00 2001
From: Christoph Reiter <reiter.christoph@gmail.com>
Date: Fri, 5 Jun 2020 20:09:11 +0200
Subject: [PATCH 20/N] popen: call /usr/bin/sh instead of /bin/sh
@ -17,7 +17,7 @@ in this scenario, so this maybe should be extended to all of them.
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/winsup/cygwin/syscalls.cc b/winsup/cygwin/syscalls.cc
index 3aa431b..cd1826c 100644
index dba1c0d..068aeeb 100644
--- a/winsup/cygwin/syscalls.cc
+++ b/winsup/cygwin/syscalls.cc
@@ -4332,7 +4332,7 @@ popen (const char *command, const char *in_type)

View File

@ -1,4 +1,4 @@
From 38482c8a8a4c6a1a0f955cd8ddc5068d1b0df863 Mon Sep 17 00:00:00 2001
From 79c704f72d6b21e17e979c2d2fbd06e4e54a0494 Mon Sep 17 00:00:00 2001
From: Johannes Schindelin <johannes.schindelin@gmx.de>
Date: Wed, 12 Aug 2020 12:22:38 +0200
Subject: [PATCH 21/N] Expose full command-lines to other Win32 processes by

View File

@ -1,4 +1,4 @@
From f7fc58930648ce6dc472399023ae250aa85db8bc Mon Sep 17 00:00:00 2001
From 754166406c305499872f704e32dbe8bd1c48bc03 Mon Sep 17 00:00:00 2001
From: Johannes Schindelin <johannes.schindelin@gmx.de>
Date: Wed, 31 Mar 2021 11:38:41 +0200
Subject: [PATCH 22/N] Do not show Error dialogs by default

View File

@ -1,4 +1,4 @@
From 502a5cb1893f0ec73cf11ee145a0fdac13459b15 Mon Sep 17 00:00:00 2001
From 49cd2c1e8eb5a32edb918dc17a14a28f569c89c7 Mon Sep 17 00:00:00 2001
From: Johannes Schindelin <johannes.schindelin@gmx.de>
Date: Mon, 16 Apr 2018 14:59:39 +0200
Subject: [PATCH 23/N] Add a helper to obtain a function's address in

View File

@ -1,4 +1,4 @@
From c2baa124a26b5349bfc7577e400aadbd3d8ea0bb Mon Sep 17 00:00:00 2001
From 1c889bf2888be05318ef6f11111a7aba0da3b02a Mon Sep 17 00:00:00 2001
From: Johannes Schindelin <johannes.schindelin@gmx.de>
Date: Fri, 20 Mar 2015 09:56:28 +0000
Subject: [PATCH 24/N] Emulate GenerateConsoleCtrlEvent() upon Ctrl+C

View File

@ -1,4 +1,4 @@
From c7d368c6f97bed954eeb3e2d7a1cedfd3285f5df Mon Sep 17 00:00:00 2001
From a2ad6e000a4edfdb678c7abd3f299f813402fc14 Mon Sep 17 00:00:00 2001
From: Johannes Schindelin <johannes.schindelin@gmx.de>
Date: Fri, 20 Mar 2015 10:01:50 +0000
Subject: [PATCH 25/N] kill: kill Win32 processes more gently

View File

@ -1,4 +1,4 @@
From d5fafdee6b64c1409d65ebb0b0ee8e4d120feee8 Mon Sep 17 00:00:00 2001
From 62eaab2b905783276f5a11ad6a9f44a2207fea0b Mon Sep 17 00:00:00 2001
From: Jeremy Drake <github@jdrake.com>
Date: Thu, 22 Jul 2021 11:59:16 -0700
Subject: [PATCH 26/N] Cygwin: make option for native inner link handling.

View File

@ -1,4 +1,4 @@
From c161d364a3fcecb32417fbd4d3b3d04459420423 Mon Sep 17 00:00:00 2001
From ce2565fa4a6599b2d2f73a21bc9e221df5f4995a Mon Sep 17 00:00:00 2001
From: Johannes Schindelin <johannes.schindelin@gmx.de>
Date: Mon, 8 Nov 2021 14:20:07 +0100
Subject: [PATCH 27/N] docs: skip building texinfo and PDF files

View File

@ -1,4 +1,4 @@
From 5b68740a7b8b362a96a7e320774d18f31f0e52fc Mon Sep 17 00:00:00 2001
From cef30bde31f9624d488d61e3e8d72b70371d0cfe Mon Sep 17 00:00:00 2001
From: Johannes Schindelin <johannes.schindelin@gmx.de>
Date: Mon, 8 Nov 2021 16:22:57 +0100
Subject: [PATCH 28/N] install-libs: depend on the "toollibs"

View File

@ -1,4 +1,4 @@
From d65038127100b6bb201fdea80e989bde66e657ed Mon Sep 17 00:00:00 2001
From c7f3f40a1ce52ce88a22de31f4cd4deec5c98835 Mon Sep 17 00:00:00 2001
From: Johannes Schindelin <johannes.schindelin@gmx.de>
Date: Mon, 23 Nov 2015 20:03:11 +0100
Subject: [PATCH 29/N] POSIX-ify the SHELL variable

View File

@ -1,4 +1,4 @@
From 92f22cf074ce93ec700a78e1f426bbe0b41844bf Mon Sep 17 00:00:00 2001
From 2bb72a55b19fcd80ce6a704da670e2d59fcf0ffe Mon Sep 17 00:00:00 2001
From: Johannes Schindelin <johannes.schindelin@gmx.de>
Date: Tue, 21 Mar 2017 13:18:38 +0100
Subject: [PATCH 30/N] Handle ORIGINAL_PATH just like PATH

View File

@ -1,4 +1,4 @@
From 71a9122b4582c732b420cd1a55fc38f68cf31c36 Mon Sep 17 00:00:00 2001
From 541ff9145ad07640a1fbee5a6bc532e11fff6a95 Mon Sep 17 00:00:00 2001
From: Christoph Reiter <reiter.christoph@gmail.com>
Date: Sun, 3 Jul 2022 22:39:32 +0200
Subject: [PATCH 31/N] uname: allow setting the system name to CYGWIN

View File

@ -1,4 +1,4 @@
From 10a1ce2b18a3d70bc64c8e95f7d49e3f404aba5d Mon Sep 17 00:00:00 2001
From 61b7b6079518970bbec2f15df5cf5b8f72a74070 Mon Sep 17 00:00:00 2001
From: Johannes Schindelin <johannes.schindelin@gmx.de>
Date: Wed, 18 Feb 2015 12:32:17 +0000
Subject: [PATCH 32/N] Pass environment variables with empty values

View File

@ -1,4 +1,4 @@
From 0a4800c49269af7104c5c42ce0660010985de5cd Mon Sep 17 00:00:00 2001
From e26a108d6da043dbb01e93c282020b8e4390bdea Mon Sep 17 00:00:00 2001
From: Johannes Schindelin <johannes.schindelin@gmx.de>
Date: Tue, 6 Sep 2022 10:40:58 +0200
Subject: [PATCH 33/N] Optionally disallow empty environment values again

View File

@ -1,4 +1,4 @@
From c3f0426e77a0a25a2a7efd315081a8a316f3e5cf Mon Sep 17 00:00:00 2001
From 50c1efa6baa912b033ab92410b45190e4650f329 Mon Sep 17 00:00:00 2001
From: Johannes Schindelin <johannes.schindelin@gmx.de>
Date: Tue, 6 Sep 2022 12:18:18 +0200
Subject: [PATCH 34/N] build_env(): respect the `MSYS` environment variable

View File

@ -1,4 +1,4 @@
From 1520489bd43cfa08a4a583fa42c932137afceeeb Mon Sep 17 00:00:00 2001
From d549396baf93c7ffd757e631c3b5498ed1daff72 Mon Sep 17 00:00:00 2001
From: Johannes Schindelin <johannes.schindelin@gmx.de>
Date: Tue, 8 Nov 2022 16:24:20 +0100
Subject: [PATCH 35/N] When converting to a Unix path, avoid double trailing

View File

@ -1,4 +1,4 @@
From 0ec2f450dcf3323efcd05d5405ccb13703acf4b5 Mon Sep 17 00:00:00 2001
From cd6eb6ed8544caf13cc7fe3fbaae0eb2e32a30c2 Mon Sep 17 00:00:00 2001
From: Christoph Reiter <reiter.christoph@gmail.com>
Date: Sun, 20 Nov 2022 13:57:36 +0100
Subject: [PATCH 36/N] msys2_path_conv: pass PC_NOFULL to path_conv
@ -24,10 +24,10 @@ With this change all our MSYS2 path_conv tests pass again.
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/winsup/cygwin/msys2_path_conv.cc b/winsup/cygwin/msys2_path_conv.cc
index 367692b..85a8817 100644
index f0fe18e..2bdf0ae 100644
--- a/winsup/cygwin/msys2_path_conv.cc
+++ b/winsup/cygwin/msys2_path_conv.cc
@@ -625,7 +625,7 @@ void posix_to_win32_path(const char* from, const char* to, char** dst, const cha
@@ -619,7 +619,7 @@ void posix_to_win32_path(const char* from, const char* to, char** dst, const cha
strncpy(one_path, from, to-from);
one_path[to-from] = '\0';

View File

@ -1,4 +1,4 @@
From a556be71db77b88ddf4121d431ee860faa1be789 Mon Sep 17 00:00:00 2001
From 9b5f88b13c879ccd783b3629157b9823a0cb97ac Mon Sep 17 00:00:00 2001
From: Christoph Reiter <reiter.christoph@gmail.com>
Date: Sat, 17 Dec 2022 20:14:49 +0100
Subject: [PATCH 37/N] Revert "Cygwin: Enable dynamicbase on the Cygwin DLL by

View File

@ -1,44 +0,0 @@
From 2078f6b88f4281593bec330b64918467f7fbd81a Mon Sep 17 00:00:00 2001
From: Johannes Schindelin <johannes.schindelin@gmx.de>
Date: Wed, 18 Feb 2015 10:45:01 +0000
Subject: [PATCH 38/N] Stop assuming that there are no spaces in POSIX-style
paths
Git's test suite most prominently sports a POSIX path with a space in
it: the tests are executed in directories whose names have the form
'trash directory.t0123-blub'. Therefore, we *must* handle those names
correctly.
This fix makes Git's t1504-ceiling-dirs.sh pass.
Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
---
winsup/cygwin/msys2_path_conv.cc | 8 +-------
1 file changed, 1 insertion(+), 7 deletions(-)
diff --git a/winsup/cygwin/msys2_path_conv.cc b/winsup/cygwin/msys2_path_conv.cc
index 85a8817..2bdf0ae 100644
--- a/winsup/cygwin/msys2_path_conv.cc
+++ b/winsup/cygwin/msys2_path_conv.cc
@@ -201,7 +201,7 @@ void ppl_convert(const char** from, const char* to, char** dst, const char* dste
void find_end_of_posix_list(const char** to, int* in_string) {
- for (; **to != '\0' && (in_string ? (**to != *in_string) : **to != ' '); ++*to) {
+ for (; **to != '\0' && (!in_string || **to != *in_string); ++*to) {
}
if (**to == *in_string) {
@@ -302,12 +302,6 @@ const char* convert(char *dst, size_t dstlen, const char *src) {
}
continue;
}
-
- if (isspace(*srcit)) {
- //sub_convert(&srcbeg, &srcit, &dstit, dstend, &in_string);
- //srcbeg = srcit + 1;
- break;
- }
}
sub_convert(&srcbeg, &srcit, &dstit, dstend, &in_string);

View File

@ -0,0 +1,51 @@
From 2e6bc656aa66ffb64215a02956eaf3fc6aaa7434 Mon Sep 17 00:00:00 2001
From: Johannes Schindelin <johannes.schindelin@gmx.de>
Date: Wed, 1 Feb 2023 15:08:16 +0100
Subject: [PATCH 38/N] dumper: avoid linker problem when `libbfd` depends on
`libsframe`
A recent binutils version introduced `libsframe` and made it a
dependency of `libbfd`. This caused a linker problem in the MSYS2
project, and once Cygwin upgrades to that binutils version it would
cause the same problems there.
Let's preemptively detect the presence of `libsframe` and if detected,
link to it in addition to `libbfd`.
Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
---
winsup/configure.ac | 5 +++++
winsup/utils/Makefile.am | 4 ++++
2 files changed, 9 insertions(+)
diff --git a/winsup/configure.ac b/winsup/configure.ac
index f387b81..092cf4f 100644
--- a/winsup/configure.ac
+++ b/winsup/configure.ac
@@ -127,6 +127,11 @@ AC_CHECK_LIB([sframe], [sframe_decode], [BFD_LIBS="${BFD_LIBS} -lsframe"])
AC_CHECK_LIB([zstd], [ZSTD_isError], [BFD_LIBS="${BFD_LIBS} -lzstd"])
AC_SUBST([BFD_LIBS])
+AC_CHECK_LIB([sframe], [sframe_decode],
+ AC_MSG_NOTICE([Detected libsframe; Assuming that libbfd depends on it]), [true])
+
+AM_CONDITIONAL(HAVE_LIBSFRAME, [test "x$ac_cv_lib_sframe_sframe_decode" = "xyes"])
+
AC_CONFIG_FILES([
Makefile
cygwin/Makefile
diff --git a/winsup/utils/Makefile.am b/winsup/utils/Makefile.am
index fa6499d..f10335e 100644
--- a/winsup/utils/Makefile.am
+++ b/winsup/utils/Makefile.am
@@ -88,6 +88,10 @@ profiler_CXXFLAGS = -I$(srcdir) -idirafter ${top_srcdir}/cygwin/local_includes -
profiler_LDADD = $(LDADD) -lntdll
cygps_LDADD = $(LDADD) -lpsapi -lntdll
+if HAVE_LIBSFRAME
+dumper_LDADD += -lsframe
+endif
+
if CROSS_BOOTSTRAP
SUBDIRS = mingw
endif

View File

@ -1,179 +0,0 @@
From 1242c595986583228669dba3eb373262d5cb0cc1 Mon Sep 17 00:00:00 2001
From: Mark Geisert <mark@maxrnd.com>
Date: Mon, 3 Jul 2023 17:51:41 -0700
Subject: [PATCH 39/N] Cygwin: Make <sys/cpuset.h> safe for c89 compilations
Four modifications to include/sys/cpuset.h:
* Change C++-style comments to C-style also supported by C++
* Change "inline" to "__inline" on code lines
* Add "#include <sys/cdefs.h>" to make sure __inline is defined
* Don't declare loop variables on for-loop init clauses
Tested by first reproducing the reported issue with home-grown test
programs by compiling with gcc option "-std=c89", then compiling again
using the modified <sys/cpuset.h>. Other "-std=" options tested too.
Addresses: https://cygwin.com/pipermail/cygwin-patches/2023q3/012308.html
Fixes: 315e5fbd99ec ("Cygwin: Fix type mismatch on sys/cpuset.h")
Signed-off-by: Mark Geisert <mark@maxrnd.com>
---
winsup/cygwin/include/sys/cpuset.h | 49 ++++++++++++++++--------------
winsup/cygwin/release/3.4.7 | 3 ++
2 files changed, 30 insertions(+), 22 deletions(-)
diff --git a/winsup/cygwin/include/sys/cpuset.h b/winsup/cygwin/include/sys/cpuset.h
index d83359f..0c95134 100644
--- a/winsup/cygwin/include/sys/cpuset.h
+++ b/winsup/cygwin/include/sys/cpuset.h
@@ -9,14 +9,16 @@ details. */
#ifndef _SYS_CPUSET_H_
#define _SYS_CPUSET_H_
+#include <sys/cdefs.h>
+
#ifdef __cplusplus
extern "C" {
#endif
typedef __SIZE_TYPE__ __cpu_mask;
-#define __CPU_SETSIZE 1024 // maximum number of logical processors tracked
-#define __NCPUBITS (8 * sizeof (__cpu_mask)) // max size of processor group
-#define __CPU_GROUPMAX (__CPU_SETSIZE / __NCPUBITS) // maximum group number
+#define __CPU_SETSIZE 1024 /* maximum number of logical processors tracked */
+#define __NCPUBITS (8 * sizeof (__cpu_mask)) /* max size of processor group */
+#define __CPU_GROUPMAX (__CPU_SETSIZE / __NCPUBITS) /* maximum group number */
#define __CPUELT(cpu) ((cpu) / __NCPUBITS)
#define __CPUMASK(cpu) ((__cpu_mask) 1 << ((cpu) % __NCPUBITS))
@@ -32,21 +34,21 @@ int __sched_getaffinity_sys (pid_t, size_t, cpu_set_t *);
/* These macros alloc or free dynamically-sized cpu sets of size 'num' cpus.
Allocations are padded such that full-word operations can be done easily. */
#define CPU_ALLOC_SIZE(num) __cpuset_alloc_size (num)
-static inline size_t
+static __inline size_t
__cpuset_alloc_size (int num)
{
return (size_t) (((num + __NCPUBITS - 1) / __NCPUBITS) * sizeof (__cpu_mask));
}
#define CPU_ALLOC(num) __cpuset_alloc (num)
-static inline cpu_set_t *
+static __inline cpu_set_t *
__cpuset_alloc (int num)
{
return (cpu_set_t *) __builtin_malloc (CPU_ALLOC_SIZE(num));
}
#define CPU_FREE(set) __cpuset_free (set)
-static inline void
+static __inline void
__cpuset_free (cpu_set_t *set)
{
__builtin_free (set);
@@ -54,14 +56,14 @@ __cpuset_free (cpu_set_t *set)
/* These _S macros operate on dynamically-sized cpu sets of size 'siz' bytes */
#define CPU_ZERO_S(siz, set) __cpuset_zero_s (siz, set)
-static inline void
+static __inline void
__cpuset_zero_s (size_t siz, cpu_set_t *set)
{
(void) __builtin_memset (set, 0, siz);
}
#define CPU_SET_S(cpu, siz, set) __cpuset_set_s (cpu, siz, set)
-static inline void
+static __inline void
__cpuset_set_s (int cpu, size_t siz, cpu_set_t *set)
{
if (cpu >= 0 && cpu < 8 * siz)
@@ -69,7 +71,7 @@ __cpuset_set_s (int cpu, size_t siz, cpu_set_t *set)
}
#define CPU_CLR_S(cpu, siz, set) __cpuset_clr_s (cpu, siz, set)
-static inline void
+static __inline void
__cpuset_clr_s (int cpu, size_t siz, cpu_set_t *set)
{
if (cpu >= 0 && cpu < 8 * siz)
@@ -77,7 +79,7 @@ __cpuset_clr_s (int cpu, size_t siz, cpu_set_t *set)
}
#define CPU_ISSET_S(cpu, siz, set) __cpuset_isset_s (cpu, siz, set)
-static inline int
+static __inline int
__cpuset_isset_s (int cpu, size_t siz, cpu_set_t *set)
{
int res = 0;
@@ -87,45 +89,48 @@ __cpuset_isset_s (int cpu, size_t siz, cpu_set_t *set)
}
#define CPU_COUNT_S(siz, set) __cpuset_count_s (siz, set)
-static inline int
+static __inline int
__cpuset_count_s (size_t siz, cpu_set_t *set)
{
- int res = 0;
- for (int i = 0; i < siz / sizeof (__cpu_mask); i++)
+ int i, res = 0;
+ for (i = 0; i < siz / sizeof (__cpu_mask); i++)
res += __builtin_popcountl ((set)->__bits[i]);
return res;
}
#define CPU_AND_S(siz, dst, src1, src2) __cpuset_and_s (siz, dst, src1, src2)
-static inline void
+static __inline void
__cpuset_and_s (size_t siz, cpu_set_t *dst, cpu_set_t *src1, cpu_set_t *src2)
{
- for (int i = 0; i < siz / sizeof (__cpu_mask); i++)
+ int i;
+ for (i = 0; i < siz / sizeof (__cpu_mask); i++)
(dst)->__bits[i] = (src1)->__bits[i] & (src2)->__bits[i];
}
#define CPU_OR_S(siz, dst, src1, src2) __cpuset_or_s (siz, dst, src1, src2)
-static inline void
+static __inline void
__cpuset_or_s (size_t siz, cpu_set_t *dst, cpu_set_t *src1, cpu_set_t *src2)
{
- for (int i = 0; i < siz / sizeof (__cpu_mask); i++)
+ int i;
+ for (i = 0; i < siz / sizeof (__cpu_mask); i++)
(dst)->__bits[i] = (src1)->__bits[i] | (src2)->__bits[i];
}
#define CPU_XOR_S(siz, dst, src1, src2) __cpuset_xor_s (siz, dst, src1, src2)
-static inline void
+static __inline void
__cpuset_xor_s (size_t siz, cpu_set_t *dst, cpu_set_t *src1, cpu_set_t *src2)
{
- for (int i = 0; i < siz / sizeof (__cpu_mask); i++)
+ int i;
+ for (i = 0; i < siz / sizeof (__cpu_mask); i++)
(dst)->__bits[i] = (src1)->__bits[i] ^ (src2)->__bits[i];
}
#define CPU_EQUAL_S(siz, src1, src2) __cpuset_equal_s (siz, src1, src2)
-static inline int
+static __inline int
__cpuset_equal_s (size_t siz, cpu_set_t *src1, cpu_set_t *src2)
{
- int res = 1;
- for (int i = 0; res && i < siz / sizeof (__cpu_mask); i++)
+ int i, res = 1;
+ for (i = 0; res && i < siz / sizeof (__cpu_mask); i++)
res &= (src1)->__bits[i] == (src2)->__bits[i];
return res;
}
diff --git a/winsup/cygwin/release/3.4.7 b/winsup/cygwin/release/3.4.7
index 0e69221..923408e 100644
--- a/winsup/cygwin/release/3.4.7
+++ b/winsup/cygwin/release/3.4.7
@@ -25,3 +25,6 @@ Bug Fixes
- Fix return code and errno set by renameat2, if oldfile and newfile
refer to the same file, and the RENAME_NOREPLACE flag is set.
Addresses: https://cygwin.com/pipermail/cygwin/2023-April/253514.html
+
+- Make <sys/cpuset.h> safe for c89 compilations.
+ Addresses: https://cygwin.com/pipermail/cygwin-patches/2023q3/012308.html

View File

@ -0,0 +1,38 @@
From f992cbcdd8070a8e078025d5f310160c4a479e85 Mon Sep 17 00:00:00 2001
From: Jon Turney <jon.turney@dronecode.org.uk>
Date: Tue, 13 Dec 2022 23:17:48 +0000
Subject: [PATCH 39/N] Cygwin: configure: Add option to disable building
'dumper'
Rather than guessing, based on just the presence of libbfd, add an
explicit configuration option, to build dumper or not, defaulting to
building it.
This might have some use when bootstrapping Cygwin for a new
architecture, or when building your own Cygwin-targetted cross-compiler,
rather than installing one from the copr, along with the dependencies of
libbfd.
---
winsup/configure.ac | 8 +++++---
1 file changed, 5 insertions(+), 3 deletions(-)
diff --git a/winsup/configure.ac b/winsup/configure.ac
index 092cf4f..59b77fe 100644
--- a/winsup/configure.ac
+++ b/winsup/configure.ac
@@ -115,10 +115,12 @@ AM_CONDITIONAL(CROSS_BOOTSTRAP, [test "x$with_cross_bootstrap" != "xyes"])
AC_EXEEXT
-AC_CHECK_LIB([bfd], [bfd_init], [true],
- AC_MSG_WARN([Not building dumper.exe since some required libraries or headers are missing]))
+AC_ARG_ENABLE([dumper],
+ [AS_HELP_STRING([--disable-dumper], [do not build the 'dumper' utility])],
+ [build_dumper=$enableval],
+ [build_dumper=yes])
-AM_CONDITIONAL(BUILD_DUMPER, [test "x$ac_cv_lib_bfd_bfd_init" = "xyes"])
+AM_CONDITIONAL(BUILD_DUMPER, [test "x$build_dumper" = "xyes"])
# libbfd.a doesn't have a pkgconfig file, so we guess what it's dependencies
# are, based on what's present in the build environment

View File

@ -1,65 +0,0 @@
From e928d06d35aa3691f934b9d63567b54c7a83f5bf Mon Sep 17 00:00:00 2001
From: Mark Geisert <mark@maxrnd.com>
Date: Sun, 9 Jul 2023 00:59:22 -0700
Subject: [PATCH 40/N] Cygwin: Make gcc-specific code in <sys/cpuset.h>
compiler-agnostic
The current version of <sys/cpuset.h> cannot be compiled by Clang due to
the use of builtin versions of malloc, free, and memset. Their presence
here was a dubious optimization anyway, so their usage has been
converted to standard library functions.
The use of __builtin_popcountl remains because Clang implements it just
like gcc does. If/when some other compiler (Rust? Go?) runs into this
issue we can deal with specialized handling then.
The "#include <sys/cdefs>" here to define __inline can be removed since
both of the new includes sub-include it.
Addresses: https://cygwin.com/pipermail/cygwin/2023-July/253927.html
Fixes: 9cc910dd33a5 (Cygwin: Make <sys/cpuset.h> safe for c89 compilations)
Signed-off-by: Mark Geisert <mark@maxrnd.com>
---
winsup/cygwin/include/sys/cpuset.h | 9 +++++----
1 file changed, 5 insertions(+), 4 deletions(-)
diff --git a/winsup/cygwin/include/sys/cpuset.h b/winsup/cygwin/include/sys/cpuset.h
index 0c95134..95c777c 100644
--- a/winsup/cygwin/include/sys/cpuset.h
+++ b/winsup/cygwin/include/sys/cpuset.h
@@ -9,7 +9,8 @@ details. */
#ifndef _SYS_CPUSET_H_
#define _SYS_CPUSET_H_
-#include <sys/cdefs.h>
+#include <stdlib.h>
+#include <string.h>
#ifdef __cplusplus
extern "C" {
@@ -44,14 +45,14 @@ __cpuset_alloc_size (int num)
static __inline cpu_set_t *
__cpuset_alloc (int num)
{
- return (cpu_set_t *) __builtin_malloc (CPU_ALLOC_SIZE(num));
+ return (cpu_set_t *) malloc (CPU_ALLOC_SIZE(num));
}
#define CPU_FREE(set) __cpuset_free (set)
static __inline void
__cpuset_free (cpu_set_t *set)
{
- __builtin_free (set);
+ free (set);
}
/* These _S macros operate on dynamically-sized cpu sets of size 'siz' bytes */
@@ -59,7 +60,7 @@ __cpuset_free (cpu_set_t *set)
static __inline void
__cpuset_zero_s (size_t siz, cpu_set_t *set)
{
- (void) __builtin_memset (set, 0, siz);
+ (void) memset (set, 0, siz);
}
#define CPU_SET_S(cpu, siz, set) __cpuset_set_s (cpu, siz, set)

View File

@ -1,109 +0,0 @@
From 763848a9c0cf76b90227efbe507ea614baa906f0 Mon Sep 17 00:00:00 2001
From: Corinna Vinschen <corinna@vinschen.de>
Date: Wed, 12 Jul 2023 14:08:03 +0200
Subject: [PATCH 41/N] Cygwin: Fix and streamline AT_EMPTY_PATH handling
The GLIBC extension AT_EMPTY_PATH allows the functions fchownat
and fstatat to operate on dirfd alone, if the given pathname is an
empty string. This also allows to operate on any file type, not
only directories.
Commit fa84aa4dd2fb4 broke this. It only allows dirfd to be a
directory in calls to these two functions.
Fix that by handling AT_EMPTY_PATH right in gen_full_path_at.
A valid dirfd and an empty pathname is now a valid combination
and, noticably, this returns a valid path in path_ret. That
in turn allows to remove the additional path generation code
from the callers.
Fixes: fa84aa4dd2fb ("Cygwin: fix errno values set by readlinkat")
Reported-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
---
winsup/cygwin/syscalls.cc | 47 +++++++++------------------------------
1 file changed, 11 insertions(+), 36 deletions(-)
diff --git a/winsup/cygwin/syscalls.cc b/winsup/cygwin/syscalls.cc
index cd1826c..1279fdb 100644
--- a/winsup/cygwin/syscalls.cc
+++ b/winsup/cygwin/syscalls.cc
@@ -4440,7 +4440,7 @@ gen_full_path_at (char *path_ret, int dirfd, const char *pathname,
cygheap_fdget cfd (dirfd);
if (cfd < 0)
return -1;
- if (!cfd->pc.isdir ())
+ if (!cfd->pc.isdir () && !(flags & AT_EMPTY_PATH))
{
set_errno (ENOTDIR);
return -1;
@@ -4456,6 +4456,8 @@ gen_full_path_at (char *path_ret, int dirfd, const char *pathname,
{
if (!*pathname)
{
+ if (flags & AT_EMPTY_PATH)
+ return 0;
set_errno (ENOENT);
return -1;
}
@@ -4577,29 +4579,14 @@ fchownat (int dirfd, const char *pathname, uid_t uid, gid_t gid, int flags)
__leave;
}
char *path = tp.c_get ();
- int res = gen_full_path_at (path, dirfd, pathname);
+ int res = gen_full_path_at (path, dirfd, pathname, flags);
if (res)
+ __leave;
+ if (!*pathname) /* Implies AT_EMPTY_PATH */
{
- if (!(errno == ENOENT && (flags & AT_EMPTY_PATH)))
- __leave;
- /* pathname is an empty string. Operate on dirfd. */
- if (dirfd == AT_FDCWD)
- {
- cwdstuff::acquire_read ();
- strcpy (path, cygheap->cwd.get_posix ());
- cwdstuff::release_read ();
- }
- else
- {
- cygheap_fdget cfd (dirfd);
- if (cfd < 0)
- __leave;
- strcpy (path, cfd->get_name ());
- /* If dirfd refers to a symlink (which was necessarily
- opened with O_PATH | O_NOFOLLOW), we must operate
- directly on that symlink.. */
- flags = AT_SYMLINK_NOFOLLOW;
- }
+ /* If dirfd refers to a symlink (which was necessarily opened with
+ O_PATH | O_NOFOLLOW), we must operate directly on that symlink. */
+ flags = AT_SYMLINK_NOFOLLOW;
}
return chown_worker (path, (flags & AT_SYMLINK_NOFOLLOW)
? PC_SYM_NOFOLLOW : PC_SYM_FOLLOW, uid, gid);
@@ -4622,21 +4609,9 @@ fstatat (int dirfd, const char *__restrict pathname, struct stat *__restrict st,
__leave;
}
char *path = tp.c_get ();
- int res = gen_full_path_at (path, dirfd, pathname);
+ int res = gen_full_path_at (path, dirfd, pathname, flags);
if (res)
- {
- if (!(errno == ENOENT && (flags & AT_EMPTY_PATH)))
- __leave;
- /* pathname is an empty string. Operate on dirfd. */
- if (dirfd == AT_FDCWD)
- {
- cwdstuff::acquire_read ();
- strcpy (path, cygheap->cwd.get_posix ());
- cwdstuff::release_read ();
- }
- else
- return fstat (dirfd, st);
- }
+ __leave;
path_conv pc (path, ((flags & AT_SYMLINK_NOFOLLOW)
? PC_SYM_NOFOLLOW : PC_SYM_FOLLOW)
| PC_POSIX | PC_KEEP_HANDLE, stat_suffixes);

View File

@ -1,43 +0,0 @@
From d66c2dd7632213f63f1c4d3abca1e3ea941c5771 Mon Sep 17 00:00:00 2001
From: Corinna Vinschen <corinna@vinschen.de>
Date: Wed, 12 Jul 2023 14:08:02 +0200
Subject: [PATCH 42/N] Cygwin: use new _AT_NULL_PATHNAME_ALLOWED flag
Convert gen_full_path_at to take flag values from the caller, rather
than just a bool indicating that empty paths are allowed. This is in
preparation of a better AT_EMPTY_PATH handling in a followup patch.
Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
---
winsup/cygwin/syscalls.cc | 9 ++++-----
1 file changed, 4 insertions(+), 5 deletions(-)
diff --git a/winsup/cygwin/syscalls.cc b/winsup/cygwin/syscalls.cc
index 1279fdb..22490ff 100644
--- a/winsup/cygwin/syscalls.cc
+++ b/winsup/cygwin/syscalls.cc
@@ -4414,11 +4414,10 @@ pclose (FILE *fp)
static int
gen_full_path_at (char *path_ret, int dirfd, const char *pathname,
- bool null_pathname_allowed = false)
+ int flags = 0)
{
- /* Set null_pathname_allowed to true to allow GLIBC compatible behaviour
- for NULL pathname. Only used by futimesat. */
- if (!pathname && !null_pathname_allowed)
+ /* futimesat allows a NULL pathname. */
+ if (!pathname && !(flags & _AT_NULL_PATHNAME_ALLOWED))
{
set_errno (EFAULT);
return -1;
@@ -4656,7 +4655,7 @@ futimesat (int dirfd, const char *pathname, const struct timeval times[2])
__try
{
char *path = tp.c_get ();
- if (gen_full_path_at (path, dirfd, pathname, true))
+ if (gen_full_path_at (path, dirfd, pathname, _AT_NULL_PATHNAME_ALLOWED))
__leave;
return utimes (path, times);
}

View File

@ -1,39 +0,0 @@
From 4448cc07c36859a9b0db180bcbb79898723249a4 Mon Sep 17 00:00:00 2001
From: Corinna Vinschen <corinna@vinschen.de>
Date: Wed, 12 Jul 2023 14:08:01 +0200
Subject: [PATCH 43/N] Define _AT_NULL_PATHNAME_ALLOWED
Cygwin needs an internal flag to allow specifying an empty pathname
in utimesat (GLIBC extension). We define it in _default_fcntl.h to
make sure we never introduce a value collision accidentally.
While at it, define the values as 16 bit hex values.
Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
---
newlib/libc/include/sys/_default_fcntl.h | 11 ++++++-----
1 file changed, 6 insertions(+), 5 deletions(-)
diff --git a/newlib/libc/include/sys/_default_fcntl.h b/newlib/libc/include/sys/_default_fcntl.h
index 48914c9..ce721fa 100644
--- a/newlib/libc/include/sys/_default_fcntl.h
+++ b/newlib/libc/include/sys/_default_fcntl.h
@@ -162,12 +162,13 @@ extern "C" {
#define AT_FDCWD -2
/* Flag values for faccessat2) et al. */
-#define AT_EACCESS 1
-#define AT_SYMLINK_NOFOLLOW 2
-#define AT_SYMLINK_FOLLOW 4
-#define AT_REMOVEDIR 8
+#define AT_EACCESS 0x0001
+#define AT_SYMLINK_NOFOLLOW 0x0002
+#define AT_SYMLINK_FOLLOW 0x0004
+#define AT_REMOVEDIR 0x0008
#if __GNU_VISIBLE
-#define AT_EMPTY_PATH 16
+#define AT_EMPTY_PATH 0x0010
+#define _AT_NULL_PATHNAME_ALLOWED 0x4000 /* Internal flag used by futimesat */
#endif
#endif

View File

@ -1,32 +0,0 @@
From f60a070abf3a898759478d0e13c4feaff5011b57 Mon Sep 17 00:00:00 2001
From: Corinna Vinschen <corinna@vinschen.de>
Date: Wed, 12 Jul 2023 14:08:00 +0200
Subject: [PATCH 44/N] Cygwin: gen_full_path_at: drop never reached code
The check if the local variable p is NULL is useless. The preceeding
code always sets p to a valid pointer, or it crashes if path_ret is
invalid (which would be a bug in Cygwin).
Fixes:c57b57e5c43a ("* cygwin.din: Sort.")
Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
---
winsup/cygwin/syscalls.cc | 5 -----
1 file changed, 5 deletions(-)
diff --git a/winsup/cygwin/syscalls.cc b/winsup/cygwin/syscalls.cc
index 22490ff..068aeeb 100644
--- a/winsup/cygwin/syscalls.cc
+++ b/winsup/cygwin/syscalls.cc
@@ -4446,11 +4446,6 @@ gen_full_path_at (char *path_ret, int dirfd, const char *pathname,
}
p = stpcpy (path_ret, cfd->get_name ());
}
- if (!p)
- {
- set_errno (ENOTDIR);
- return -1;
- }
if (pathname)
{
if (!*pathname)

View File

@ -3,8 +3,8 @@
pkgbase=msys2-runtime
pkgname=('msys2-runtime' 'msys2-runtime-devel')
pkgver=3.4.7
pkgrel=3
pkgver=3.4.8
pkgrel=1
pkgdesc="Cygwin POSIX emulation engine"
arch=('x86_64')
url="https://www.cygwin.com/"
@ -62,58 +62,48 @@ source=('msys2-runtime'::git://sourceware.org/git/newlib-cygwin.git#tag=cygwin-$
0035-When-converting-to-a-Unix-path-avoid-double-trailing.patch
0036-msys2_path_conv-pass-PC_NOFULL-to-path_conv.patch
0037-Revert-Cygwin-Enable-dynamicbase-on-the-Cygwin-DLL-b.patch
0038-Stop-assuming-that-there-are-no-spaces-in-POSIX-styl.patch
0039-Cygwin-Make-sys-cpuset.h-safe-for-c89-compilations.patch
0040-Cygwin-Make-gcc-specific-code-in-sys-cpuset.h-compil.patch
0041-Cygwin-Fix-and-streamline-AT_EMPTY_PATH-handling.patch
0042-Cygwin-use-new-_AT_NULL_PATHNAME_ALLOWED-flag.patch
0043-Define-_AT_NULL_PATHNAME_ALLOWED.patch
0044-Cygwin-gen_full_path_at-drop-never-reached-code.patch)
0038-dumper-avoid-linker-problem-when-libbfd-depends-on-l.patch
0039-Cygwin-configure-Add-option-to-disable-building-dump.patch)
sha256sums=('SKIP'
'c092f44f33e526c93282de5f1b12628665b38d607c2e7628d8437634ce9d133f'
'a19b83098b577f64b7df42197ada140b58601f0acb20feba304f4dcdce8563c7'
'8c71c0477544aec58d4c213c59e273f6faf94fd8691248276af2f77ffec1b481'
'fa5a2ee77adf6cc8b5ee81bc11167398692d13a75bd8bdf0b0cba9c008993511'
'926c774aefc9d8ea6f6636a4598fe9231be984f1d8a2f09b55c7b7d2946d2f55'
'542e64ffdc55b072bed8f7d1694887b0a181fe84192abf3a901ff1a4ad5b1752'
'290e61c5179da84b89c9b70f7d923ad86c953a5151eccd385af13b2d1156d972'
'37170be2f5b33df9bcafd4d0695329502e3431dde3c46f624aa5b77fb355daf9'
'47d7e54e0bc4d80fb9e1503ffb53491cb4ce14330d556144c4f55f5237e8da5a'
'ec0af91632f95dd29a4fe4d1afe305674c771ec961028471f9fca856d318e04f'
'2ae67271e5b665f206c6893208ef1a61d644d8cd383046df486650d7d7431ad1'
'd398703e502195a3bd83dd2f091617c33169f3580744577ed2355246dcdd780e'
'699d6177a730db9be8e7248e4ca4a549e23b5283fc8c3da6c9be90bc69dbe6c9'
'2a2abd73f7e74a2989a550a92768afe05bd84d847cbe818e60be59d8c13f411c'
'30d2883597f8ac303a91a4f1186bcf95acdf41c0e54c07a011e91e3ff0abe9b5'
'367d83303ebdc4a75e0488e6a50a90851a74a15dbeacd9aad07d2ec638ae5cc3'
'48ce209efb557058a12daedd81dbe1511c43e24e00a92a16175b7c7e975a4aa8'
'6bd65ec59d9c22df2d8cd5c1d82139296ac075ce8d6fe498543d8b3da776e707'
'3b19e1f8913dbbd1833e35335de26b04bf48ea1de41d5a050a660a888b79a43b'
'64b71b31274a2084b486158fa4cb9db985a211d546adb090ab7135618540d393'
'92736470f5d75da1054a253ee830e6567705f15ddf9d38f0565616fa4455fa77'
'892ed7b94670f23ae3e3268b4ea8d3f6d9589e11086efa11faa6a6cf1caade37'
'8db2dd13e0729c7b15c4b9a85e2cc2ef1a164a864ac3b8ef84e4d62805870308'
'89559ba6c6a23efe80488002b3447cc90e1ad8519c7949af4372c8fb0e61b269'
'a7ff1f03aa39addc44270ce2ed0f1a085f3c807dc12b520f68df572f7b8d77b9'
'0497442a0a30becddc14597a2a57e4b428ea765ae99e1c9bb949eea6c01d0fce'
'342766f97fde03afd0630c29f386559fdc827822dd87d1ecfecd2858e538df10'
'9ece8af6ee86b04018fc4557479928766bffd50c2fd96052dc0cfc71445be0fe'
'0d9478225cd6f38ad36f86b3c3d52d76c10c20f82cfd006cfd9938c7beb8c718'
'606f3905b454a490535b0f70b8d1623f55168cff6d28604b788f255c2d70e1f1'
'f44db73b621a115ea9cb5bf4eaf1afc45c910e70c0534670fc7c81475d396c87'
'69a251b56ff2d16127450ee16aff43d025d5ea80a57d910baedd15239ef4c92b'
'ffa048a45e698052e890c62ee3c4128070b7d1013dcee8e127404d9247fe7ff3'
'f0ef04bee4d6bb41d815e60ae14bf0801e886c01fd3e1fef01cdc755fdf88eef'
'c1bb2a92ee6f96be1467042a3d2203cd4bd196388a12331c952f5112e2771f2e'
'aeaa2b4a0a05da5f1a6acf2ed87c00e514a4a96a7850096e9e14ed31b57b7737'
'abc27017d8c750f971a96df5d00f494bbfffe46258b5635ffc2118b9524c897c'
'a2f11abdc21acc7c0c98f048ea5cb99d33c6a0f232f920f5765bac6a3d86295b'
'e3ffb5ca250876dc364a9c5599edfbef52f7fddc59d1d81371d3521ef1d57c1d'
'92e77e073e9ed5015d64bb29ad02a3b08e42e3eabbca4cd5c95a2e4c7c2cd923'
'a755a940f98dfb7f86cbaeb0564f327b31dbdbb806645c16bc30e947f7b5409b'
'ec381cde7ba5f72cf4e8f0f2831cb819798c20d49ee78c80ef875c5e66a7b848'
'31816dba7fdb7d809b30429d959574648ef708b5e023e439162091803b6b481d'
'403097fac106999d0e8c1dabb16057315d6a8fa1d3beb389c5d42b18924d8520')
'18da8bc0a566c4df4154d6413c586ac1f6e21927fa137c58b14d691f040f907a'
'7a8270c2670745e97987f19ff6c9a4a4d7231b5be99efd3a8d2a5f34102c9daa'
'762ce0dd60f9287b3375a1aa0b62ebf7d7f67dc8f957328838cbdf7a30a16798'
'e80110cf0aeaf653d43a38102b561dded9bbfab6675d3cee6aad23673af93a19'
'cc1cc4e5e36b5881888df6bbfab5cdaa5bb256942d85b4d7f1fcfd1673504b6f'
'6c4af72af5b0d6301cb40e9159cad3460299d42bac6c31b2a599a80ab99e09a1'
'b4ff3c8194411fe1e4670b9cf3cc90d974dd23622c68fd78f72f96ea90274561'
'a0033973fe9a715e445af195e47301ebb81f2a353d14436eacd48b77de0ccdb5'
'75aaeca502dceab26d61df8a5c8d140fbb47d29a36f116b3c8b1f81acc35d1ed'
'6e4efda1d586e3642450ef62c328620b67ebff971e64847de368fc58d1b05c43'
'11ab000f7c2249b0ac17ea74a0d5306c48e6e8bd98a0f9cf6f9f3d01893e1552'
'fcfb9a07c15c4f0f4940fee0e65da10fad4f0dfbbb9b4e5dce11068c1c24e6b9'
'066fab31ac3f55544162fa9045b955e4464d379fa128c0ac34b5b90ccc6de8ea'
'e6982a527f3a89a332e8e688d1a6564563b621d2c02da0108f4168942b8fb2cf'
'1c4d6221b12d1a9f1dff20e175648495a8aeb69ee4f612280e6dfd612355842e'
'667cb545e903c71ae7aa85bf5bdd937219196ef9644509e997574ca865fbec8d'
'd83bef6ba05a445ac4a74524dca8b3dda4129a8bde459eba6818772bfec9117b'
'770aecfe22bc8809d72819bab68462ec7f8f9a5ee6b0fe8d97000a0a6d11e380'
'96088feec8dc2d71728164b7748b726e528d2b70ede81ded1bde7bf7570acdbd'
'c606fec704cdd5927c0410ae4a006e0c97bb98a5649608b08d360dfd128249d9'
'e5205a2e74647c75d157d67e2751009c7ecd430bdb146df904d52dd3c049e625'
'58c3b440f469f88ca22aab4f38719b940165a432a1798eceb359811300395661'
'6ba1c7100c122d0f2640f9d01f9d570e9388a755db6ce6f722b704df93169a04'
'1f196162cde33852b48e92b62ba743099e7b78c7d67896122ce3d6a114237423'
'a7ed00fb34ddb8bd244436d5c7c9c466ae24c4e7f55951b9e1de6e46d534b092'
'ece9ab38ddb0d19aba5fde2c8d4d0eef864e04b85eb953a6a3347dd45044b1d2'
'c1ef89a1c2ce22c2ecdf7403fc0ec329a613f078548215c84cf00c496eab8d5f'
'25590f578958020ad352bb49f4c3dcac9cbd9ae68dabb6c148f18e4c73d2f3f1'
'a17009351228208530a1cd0e6b181b22e27f7323a8fc68b63c8732ffc69b2412'
'ecf41b27a312797c56f50b45bc1653135c9b5bedaffd358dae926e33caa65c45'
'5e526b963c8fb3af50000801836c8ae41bf9aa6bd8eff1fed4e5cff10f531240'
'94311c102c23d86e3bfd459d506563930400d7285a758aeea70192c54dde87f0'
'c050d8c7a705001ef0459aad40711f89ff4949c9f10bd754e7ca185abc238ca1'
'71bd94a79ce7a9106025b8959c76f9d8f46b25354cb36fb7ebece889c0b37e1e'
'549cd3b984ebf796a798d21dbfffb9c50ab87c0bfacdd15fc1c754703febd1d8'
'2e5e355552df645914f28593ab085a0dc495ba2a50f40bb45340248f1a469c18'
'146aaa43416c4ef4135eda6a7a9b124c79312e6dee0eeccc651f7ec119da1d68'
'02019b3793b5f5f8c41c6836c95db3efab8c4b2f70234ece1bcbf0e59351337f'
'e0b93bbdbdbbb5179ecd20ca27e7eb9ab7989f51ab100c3bc6b20ecc6bdf395c')
# Helper macros to help make tasks easier #
apply_patch_with_msg() {
@ -188,13 +178,8 @@ prepare() {
0035-When-converting-to-a-Unix-path-avoid-double-trailing.patch \
0036-msys2_path_conv-pass-PC_NOFULL-to-path_conv.patch \
0037-Revert-Cygwin-Enable-dynamicbase-on-the-Cygwin-DLL-b.patch \
0038-Stop-assuming-that-there-are-no-spaces-in-POSIX-styl.patch \
0039-Cygwin-Make-sys-cpuset.h-safe-for-c89-compilations.patch \
0040-Cygwin-Make-gcc-specific-code-in-sys-cpuset.h-compil.patch \
0041-Cygwin-Fix-and-streamline-AT_EMPTY_PATH-handling.patch \
0042-Cygwin-use-new-_AT_NULL_PATHNAME_ALLOWED-flag.patch \
0043-Define-_AT_NULL_PATHNAME_ALLOWED.patch \
0044-Cygwin-gen_full_path_at-drop-never-reached-code.patch
0038-dumper-avoid-linker-problem-when-libbfd-depends-on-l.patch \
0039-Cygwin-configure-Add-option-to-disable-building-dump.patch
}
build() {

View File

@ -19,7 +19,7 @@ die "Could not remove previous patches"
base_tag=refs/tags/cygwin-"$(sed -ne 's/^pkgver=//p' <PKGBUILD)"
msys2_branch=refs/heads/msys2-${base_tag#refs/tags/cygwin-}
url=https://github.com/msys2/Cygwin
url=https://github.com/msys2/msys2-runtime
test -d msys2-runtime ||
git clone --bare $url msys2-runtime ||