Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
118 commits
Select commit Hold shift + click to select a range
15f49ba
Cygwin: bump dll minor version to 3.6.10
github-cygwin Apr 21, 2026
08b5ac7
Cygwin: rename release/3.6.8 to release/3.6.9
github-cygwin Apr 21, 2026
d541ca7
Cygwin: console: Fix deadlock in console teardown that arises from pcon
tyan0 May 21, 2026
231c2b9
Cygwin: console: Fix handling of surrogate pairs
tyan0 May 26, 2026
9a76852
Add recent two fixes into release note
tyan0 May 29, 2026
9dab20d
Cygwin: Ensure unused fd available for open()
mgeisert May 28, 2026
620ad48
Cygwin: Add recent OPEN_MAX fix into release note
jon-turney Jun 10, 2026
3da6529
Cygwin: Fix chown commands in cygserver-config
mgeisert Jun 8, 2026
dcd3455
Cygwin: clipboard: Add workaround for ERROR_CLIPBOARD_NOT_OPEN
tyan0 Jun 9, 2026
cad596e
Cygwin: pty: Do not set input_available_event when applying line_edit()
tyan0 Jun 8, 2026
4060cf3
Cygwin: pty: Introduce a helper function get_handle_from_process()
tyan0 Jun 8, 2026
1c5c82a
Cygwin: pty: Prevent unintended conversion for cursor position report
tyan0 Jun 8, 2026
03ab852
Add fix for CPR response to release note
tyan0 Jun 23, 2026
a828b4e
Cygwin: pty: Fix race issue between starting and exiting non-cygwin apps
tyan0 Jun 10, 2026
f2faf90
Cygwin: pty: Treat CR/NL in accept_input() the same as in transfer_in…
tyan0 Jun 12, 2026
4fb9073
Cygwin: console: Ensure the master thread runs only when it is suppos…
tyan0 Jun 10, 2026
56dfa4d
Cygwin: console: Fix NOFLSH behaviour a bit
tyan0 Jun 10, 2026
c92d801
Cygwin: console: Fix typeahead input for bash
tyan0 Jun 10, 2026
36f40c9
Cygwin: console: re-enable the master thread before selecting cygwin …
dscho Jun 26, 2026
c313089
Cygwin: console: Correct previous NOFLSH fix
tyan0 Jun 30, 2026
fa1e820
Cygwin: pty: Do not transfer input to nat-pipe while masked
tyan0 Jun 30, 2026
fb1d831
Cygwin: pty: Fix nat_pipe_owner_pid when gdb runs non-cygwin app
tyan0 Jul 8, 2026
b11613e
Update release note 3.6.10
tyan0 Jul 9, 2026
ceb930c
Start the merging-rebase to cygwin-3.6.10
dscho Jul 14, 2026
b9c4247
Cygwin: pty: detect pcon-backed pty for non-Cygwin-spawned children
dscho Apr 30, 2026
7a68b7c
Cygwin: pty: Discard pcon input buffer when discard_input is called
tyan0 Jun 13, 2026
1187e92
Cygwin: pty: Fixup pty state after a cygwin app exits
tyan0 Jun 13, 2026
12c0b81
Cygwin: pty: grow GetConsoleProcessList buffer in find_pcon_pty()
dscho May 29, 2026
57fd3f6
Cygwin: pty: bound the cursor-sync round-trip so an exiting process c…
dscho Jun 25, 2026
4250046
Cygwin: pty: do not leak nat handles when adopting the pcon's in open…
dscho Jun 25, 2026
fc4fc3b
Cygwin: pty: validate the cursor-position reply before moving the pco…
dscho Jun 25, 2026
c7fae92
Fix msys library name in import libraries
ktbarrett Mar 14, 2021
83eb499
Rename dll from cygwin to msys
Alexpux Apr 14, 2019
612c696
Convert Unix paths in args/env to Windows form for native Win32 apps
Alexpux Apr 14, 2019
874d256
Add functionality for changing OS name via MSYSTEM environment variab…
Alexpux Apr 14, 2019
67e0663
- Move root to /usr. - Change sorting mount points. - By default moun…
Alexpux Apr 14, 2019
dc304d9
Instead of creating Cygwin symlinks, use deep copy by default
Alexpux Apr 14, 2019
62649f0
Automatically rewrite TERM=msys to TERM=cygwin
Alexpux Apr 14, 2019
3b75044
Do not convert environment for strace
Alexpux Apr 14, 2019
88822d8
strace.cc: Don't set MSYS=noglob
mingwandroid Aug 23, 2015
41812f5
Add debugging for strace make_command_line
mingwandroid Aug 21, 2015
8c4ab21
strace --quiet: be *really* quiet
dscho May 17, 2017
f2a033d
path_conv: special-case root directory to have trailing slash
Alexpux Apr 14, 2019
f5ab94d
When converting to a Unix path, avoid double trailing slashes
dscho Nov 8, 2022
6c551e9
dcrt0.cc: Untangle allow_glob from winshell
mingwandroid Aug 21, 2015
145bb5c
dcrt0.cc (globify): Don't quote literal strings differently when dos_…
mingwandroid Aug 23, 2015
8949d0d
Add debugging for build_argv
mingwandroid Aug 21, 2015
c78d8a5
environ.cc: New facility/environment variable MSYS2_ENV_CONV_EXCL
mingwandroid Apr 10, 2016
6673896
Introduce the `enable_pcon` value for `MSYS`
dscho May 19, 2020
8df76a0
popen: call /usr/bin/sh instead of /bin/sh
lazka Jun 5, 2020
bb5abd5
Disable the 'cygwin' GitHub workflow
dscho Mar 17, 2021
6e6dac8
CI: add a GHA for doing a basic build test
lazka Aug 9, 2020
3280370
Set up a GitHub Action to keep in sync with Cygwin
dscho Nov 22, 2019
cf378f2
Expose full command-lines to other Win32 processes by default
dscho Aug 12, 2020
75ea5cb
Add a helper to obtain a function's address in kernel32.dll
dscho Apr 16, 2018
c93ce39
Emulate GenerateConsoleCtrlEvent() upon Ctrl+C
dscho Mar 20, 2015
5df8ad8
kill: kill Win32 processes more gently
dscho Mar 20, 2015
369346a
Cygwin: make option for native inner link handling.
jeremyd2019 Jul 22, 2021
aa1cb2c
docs: skip building texinfo and PDF files
dscho Nov 8, 2021
0f9b6de
install-libs: depend on the "toollibs"
dscho Nov 8, 2021
3244d7c
POSIX-ify the SHELL variable
dscho Nov 23, 2015
d71bdf6
Handle ORIGINAL_PATH just like PATH
dscho Mar 21, 2017
fc06dfd
uname: allow setting the system name to CYGWIN
lazka Jul 3, 2022
2bda763
Pass environment variables with empty values
dscho Feb 18, 2015
6588ea9
Optionally disallow empty environment values again
dscho Sep 6, 2022
989297d
build_env(): respect the `MSYS` environment variable
dscho Sep 6, 2022
f53fdff
Revert "Cygwin: Enable dynamicbase on the Cygwin DLL by default"
lazka Dec 17, 2022
a921c18
Avoid sharing cygheaps across Cygwin versions
dscho Jan 30, 2023
98f9ae0
uname: report msys2-runtime commit hash, too
dscho Feb 21, 2023
3bf64eb
Cygwin: Adjust CWD magic to accommodate for the latest Windows previews
dscho May 22, 2023
2558ff9
Cygwin: Fix segfault when XSAVE area sizes are unaligned
Mar 12, 2026
9a6cbe5
cygcheck: remove an unused variable causing a build error with GCC 16
lazka May 18, 2026
2105f6c
fixup! CI: add a GHA for doing a basic build test
dscho Nov 24, 2025
a362d1c
fixup! Convert Unix paths in args/env to Windows form for native Win3…
Mar 9, 2015
b0d4659
Cygwin: pty: keep interactive console input for native programs via C…
dscho Jul 16, 2026
29862e4
Cygwin: CI: update Actions versions
dscho Nov 24, 2025
d112299
Merge branch 'keep-interactive-console-input'
dscho Jul 27, 2026
9810104
Mention the extremely useful small_printf() function
dscho Feb 20, 2015
d57fdeb
Merge branch 'update-github-actions-in-cygwin-ci'
dscho Oct 30, 2025
8a3cefc
Merge branch 'msys2-3.6.10'
dscho Apr 21, 2026
52cca5b
Allow native symlinks to non-existing targets in 'nativestrict' mode
kblees May 20, 2015
1612635
Merge branch 'mention-small-printf'
dscho Oct 10, 2025
7eb8be5
Merge branch 'msys2-fixups'
dscho Jul 14, 2026
e72f778
WIP Handle 8-bit characters under LOCALE=C
dscho Feb 20, 2015
2ce8edd
Merge pull request #10 from kblees/kb/symlinks
dscho Feb 12, 2018
c2c83d1
Merge branch 'from-cygwin-master'
dscho Jun 26, 2026
de839b5
Make paths' WCS->MBS conversion explicit
dscho Dec 18, 2015
ef5d03e
Merge branch 'handle-8-bit-under-locale-c'
dscho Oct 10, 2025
fabc6da
Merge branch 'pcon-fixups'
dscho Jun 26, 2026
12b2da4
msys2-runtime: restore fast path for current user primary group
rglidden Aug 24, 2023
126ca76
Merge branch 'wcstombs'
dscho Feb 12, 2018
370e5af
Change the default base address for x86_64
chirpnot Mar 10, 2022
f45cc10
Add AGENTS.md with comprehensive project context for AI agents
dscho Feb 20, 2026
adf0787
Start implementing UI-based tests by adding an AutoHotKey library
dscho Apr 21, 2026
290e369
ci: add an AutoHotKey-based integration test
dscho May 7, 2025
07291bf
ci(ui-tests): upload the test logs
dscho Jul 5, 2025
5b51e5a
ci(ui-tests): take a screenshot when canceled
dscho Jul 4, 2025
e77c651
ui-tests: verify that a `sleep` in Windows Terminal can be interrupted
dscho Jul 3, 2025
27e9e46
ui-tests: verify that interrupting clones via SSH works
dscho Jul 3, 2025
17ee78d
ci(ui-tests): exclude the large repository from the build artifact
dscho Jul 5, 2025
43a57fe
ui-tests: add `ping` interrupt test
dscho Jul 3, 2025
299f9a4
ui-tests: do verify the SSH hang fix
dscho Jul 5, 2025
d0fb141
ui-tests: minimize Log window
dscho Oct 10, 2025
43670d1
ui-tests: add mintty launch and capture helpers to the library
dscho Feb 20, 2026
23a91b2
Merge pull request #57 from rglidden/main
dscho Aug 28, 2023
3651706
ui-tests: add a reproducer for the keystroke reordering bug
dscho Feb 20, 2026
0bcc871
Merge pull request #37 from chirpnot/main
dscho May 13, 2022
24f9d8b
ui-tests: reproduce "cmd.exe input dies after Cygwin grandchild exit"
dscho May 30, 2026
74ef1b3
Merge branch 'add-an-AGENTS.md-file'
dscho Feb 26, 2026
28f27bf
ui-tests: reproduce "tcflush() doesn't actually flush pcon input"
dscho May 30, 2026
5b98d41
dependabot: help keeping GitHub Actions versions up to date
dscho Feb 6, 2024
82101db
ui-tests: reproduce "cmd.exe doesn't see Ctrl-C in its input stream"
dscho May 30, 2026
80bb4c0
ci: run Git's entire test suite
dscho Feb 12, 2024
177812c
Do not try to sync with Cygwin
dscho Aug 20, 2020
a86e027
ui-tests: catch redirected console input through native Git aliases
dscho Jul 16, 2026
abf3f5c
Merge pull request #83 from dscho/run-gits-test-suite
dscho Jan 24, 2025
5a1fc05
Merge branch 'ui-tests'
dscho May 7, 2025
710e527
dumper: allow compiling with binutils 2.47
dscho Jul 28, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .github/workflows/build.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -58,6 +58,7 @@ jobs:
owner,
repo,
workflow_id: 938271, // ci-artifacts.yml
branch: 'main',
status: 'success',
per_page: 1
})
Expand Down
12 changes: 6 additions & 6 deletions .github/workflows/ui-tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ jobs:
sparse-checkout: |
ui-tests

- uses: actions/cache/restore@v5
- uses: actions/cache/restore@v6
id: restore-wt
with:
key: wt-${{ env.WT_VERSION }}
Expand All @@ -46,12 +46,12 @@ jobs:
working-directory: ui-tests
run: |
powershell -File setup-portable-wt.ps1 -WtVersion $env:WT_VERSION -DestDir $env:RUNNER_TEMP
- uses: actions/cache/save@v5
- uses: actions/cache/save@v6
if: steps.restore-wt.outputs.cache-hit != 'true'
with:
key: wt-${{ env.WT_VERSION }}
path: ${{ runner.temp }}/wt.zip
- uses: actions/cache/restore@v5
- uses: actions/cache/restore@v6
id: restore-ahk
with:
key: ahk-${{ env.AUTOHOTKEY_VERSION }}
Expand All @@ -62,7 +62,7 @@ jobs:
run: |
curl -L -o "$RUNNER_TEMP/ahk.zip" \
https://github.com/AutoHotkey/AutoHotkey/releases/download/v$AUTOHOTKEY_VERSION/AutoHotkey_$AUTOHOTKEY_VERSION.zip
- uses: actions/cache/save@v5
- uses: actions/cache/save@v6
if: steps.restore-ahk.outputs.cache-hit != 'true'
with:
key: ahk-${{ env.AUTOHOTKEY_VERSION }}
Expand All @@ -74,7 +74,7 @@ jobs:
"$WINDIR/system32/tar.exe" -C "$RUNNER_TEMP/ahk" -xf "$RUNNER_TEMP/ahk.zip" &&
cygpath -aw "$RUNNER_TEMP/ahk" >>$GITHUB_PATH
- uses: actions/setup-node@v6 # the hook uses node for the background process
- uses: actions/cache/restore@v5
- uses: actions/cache/restore@v6
id: restore-win32-openssh
with:
key: win32-openssh-${{ env.WIN32_OPENSSH_VERSION }}
Expand All @@ -85,7 +85,7 @@ jobs:
run: |
curl -fLo "$RUNNER_TEMP/win32-openssh.zip" \
https://github.com/PowerShell/Win32-OpenSSH/releases/download/v$WIN32_OPENSSH_VERSION/OpenSSH-Win64.zip
- uses: actions/cache/save@v5
- uses: actions/cache/save@v6
if: steps.restore-win32-openssh.outputs.cache-hit != 'true'
with:
key: win32-openssh-${{ env.WIN32_OPENSSH_VERSION }}
Expand Down
4 changes: 2 additions & 2 deletions winsup/cygserver/cygserver-config
Original file line number Diff line number Diff line change
Expand Up @@ -162,7 +162,7 @@ then
exit 1
fi
chmod 664 "${SYSCONFDIR}/cygserver.conf"
chown 18.544 "${SYSCONFDIR}/cygserver.conf"
chown 18:544 "${SYSCONFDIR}/cygserver.conf"
fi

# On NT ask if cygserver should be installed as service
Expand Down Expand Up @@ -194,7 +194,7 @@ then
echo "To start it, call \`net start ${service_name}' or \`cygrunsrv -S ${service_name}'."
fi
touch "${LOCALSTATEDIR}/log/cygserver.log"
chown 18.544 "${LOCALSTATEDIR}/log/cygserver.log"
chown 18:544 "${LOCALSTATEDIR}/log/cygserver.log"
fi
fi

Expand Down
21 changes: 19 additions & 2 deletions winsup/cygwin/fhandler/clipboard.cc
Original file line number Diff line number Diff line change
Expand Up @@ -25,11 +25,28 @@ details. */
static inline bool
open_clipboard ()
{
const int max_retry = 10;
const int max_retry = 20;
for (int i = 0; i < max_retry; i++)
{
/* No appropriate HWND exists here. */
if (OpenClipboard (NULL))
return true;
{
/* SetClipboardData() and GetClipboardData() occasionally
fail with ERROR_CLIPBOARD_NOT_OPEN, even though
OpenClipboard() succeeded if NULL HWND is used.
Retry until GetClipboardData() does not return
ERROR_CLIPBOARD_NOT_OPEN. */
if (GetClipboardData (CF_UNICODETEXT))
return true;
DWORD err = GetLastError ();
/* Here, ERROR_NOT_FOUND means the clipboard does not contains
valid CF_UNICODETEXT. OpenClipboard() must have succeeded. */
if (err == ERROR_NOT_FOUND)
return true;
CloseClipboard ();
if (err != ERROR_CLIPBOARD_NOT_OPEN)
return false;
}
Sleep (1);
}
return false;
Expand Down
20 changes: 16 additions & 4 deletions winsup/cygwin/fhandler/console.cc
Original file line number Diff line number Diff line change
Expand Up @@ -1401,9 +1401,21 @@ fhandler_console::process_input_message (size_t len)
}
else
{
WCHAR second = unicode_char >= 0xd800 && unicode_char <= 0xdbff
&& i + 1 < total_read ?
input_rec[i + 1].Event.KeyEvent.uChar.UnicodeChar : 0;
WCHAR second = 0;
DWORD second_pos = i;
if (unicode_char >= 0xd800 && unicode_char <= 0xdbff)
for (DWORD j = i + 1; j < total_read; j++)
{
/* Do not check bKeyDown. bKeyDown is 0 for surrogate
pair in legacy console */
if (input_rec[j].EventType == KEY_EVENT &&
input_rec[j].Event.KeyEvent.uChar.UnicodeChar)
{
second = input_rec[j].Event.KeyEvent.uChar.UnicodeChar;
second_pos = j;
break;
}
}

if (second < 0xdc00 || second > 0xdfff)
{
Expand All @@ -1414,7 +1426,7 @@ fhandler_console::process_input_message (size_t len)
/* handle surrogate pairs */
WCHAR pair[2] = { unicode_char, second };
nread = sys_wcstombs (tmp + 1, 59, pair, 2);
i++;
i = second_pos;
}

/* Determine if the keystroke is modified by META. The tricky
Expand Down
2 changes: 1 addition & 1 deletion winsup/cygwin/include/cygwin/version.h
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ details. */
changes to the DLL and is mainly informative in nature. */

#define CYGWIN_VERSION_DLL_MAJOR 3006
#define CYGWIN_VERSION_DLL_MINOR 9
#define CYGWIN_VERSION_DLL_MINOR 10

/* CYGWIN_VERSION_DLL_COMBINED gives us a single number representing the
combined DLL major and minor numbers. */
Expand Down
32 changes: 32 additions & 0 deletions winsup/cygwin/release/3.6.10
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
Fixes:
------

- Fix deadlock in console teardown that arises from pseudo console.
Addresses: https://github.com/msys2/msys2-runtime/issues/338

- Fix handling of surrogate pair in legacy console.

- Fix behaviour with OPEN_MAX files open
Addresses: https://cygwin.com/pipermail/cygwin/2026-May/259664.html

- Add workaround for clipboard access error.
Addresses: https://cygwin.com/pipermail/cygwin/2026-February/259438.html

- Fix broken cursor position report resonse when a non-cygwin app starts.
Addresses: https://cygwin.com/pipermail/cygwin/2026-June/259776.html

- Fix race issue between starting and exiting non-cygwin apps in pty.

- Fix CR/NL conversion in accept_input() for pty.

- Ensure the cons_master_thread runs only when it is really supposed to.

- Fix NOFLSH behaviour in console a bit.

- Fix typeahead input in console for bash.

- Fix a pty race issue at startup of cygwin and non-cygwin processes
where the different pipe mode (nat or cyg) is required.

- Fix non-cygwin inferior crash in gdb when it is launched repeatedly
in a pty.
File renamed without changes.
15 changes: 7 additions & 8 deletions winsup/cygwin/syscalls.cc
Original file line number Diff line number Diff line change
Expand Up @@ -1547,6 +1547,13 @@ open (const char *unix_path, int flags, ...)
fh = fh_file;
}

/* Reserve an fdtable entry here, before calling open_with_arch() below.
Otherwise there's a tiny chance of hitting OPEN_MAX further on which
could create a new file without any way for Cygwin to refer to it. */
cygheap_fdnew fd;
if (fd < 0)
__leave; /* errno already set */

if (fh->dev () == FH_PROCESSFD && fh->pc.follow_fd_symlink ())
{
/* Reopen file by descriptor */
Expand All @@ -1573,14 +1580,6 @@ open (const char *unix_path, int flags, ...)
try_to_bin (fh->pc, fh->get_handle (), DELETE,
FILE_OPEN_FOR_BACKUP_INTENT);

cygheap_fdnew fd;

if (fd < 0)
{
fh->close();
__leave; /* errno already set */
}

fd = fh;
if (fd <= 2)
set_std_handle (fd);
Expand Down
8 changes: 4 additions & 4 deletions winsup/utils/dumper.cc
Original file line number Diff line number Diff line change
Expand Up @@ -827,14 +827,14 @@ dumper::prepare_core_dump ()
p->section = new_section;
int section_count = 1;

bfd_boolean filehdr = 0;
bfd_boolean phdrs = 0;
bool filehdr = false;
bool phdrs = false;

bfd_vma at = 0;
bfd_boolean valid_at = 0;
bool valid_at = false;

flagword flags = 0;
bfd_boolean valid_flags = 1;
bool valid_flags = true;

if (p->type == pr_ent_memory)
{
Expand Down
Loading