aboutsummaryrefslogtreecommitdiff
path: root/winsup/cygwin/release/3.6.0
blob: d48ee114db8241b80c9d54e7a01e9cd6cf7a2a3d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
What's new:
-----------

- New API call: getlocalename_l.

- New API calls: fdclosedir, posix_getdents.

- New API call: setproctitle.

- New API call: timespec_get.

- New API calls: tcgetwinsize, tcsetwinsize.

- New API call: posix_close.

- New POSIX-defined entry points posix_spawn_file_actions_addchdir and
  posix_spawn_file_actions_addfchdir.  These are the same as the already
  exported posix_spawn_file_actions_addchdir_np and
  posix_spawn_file_actions_addfchdir_np.

- Add FS_IOC_[GS]ETFLAGS FS_PINNED_FL and FS_UNPINNED_FL flags to handle
  Windows attributes FILE_ATTRIBUTE_PINNED and FILE_ATTRIBUTE_UNPINNED.
  Add matching 'p' and 'u' mode bits in chattr(1) and lsattr(1).

- New libaio.a provided for projects checking for POSIX aio support
  by looking for this library at configure time.

- cygpath -r option allows to generate all Windows paths with root-local
  path prefix \\?\.


What changed:
-------------

- ps -f now prints the commandline rather than the full path to the
  executable.

- Drop support for NT4 and Samba < 3.0.22.

- Now that SMBv1 is ultimately deprecated and not installed by default
  on latest Windows versions, use Network Discovery (i. e. WSD, "Web
  Service Discovery") for enumerating network servers in //, just like
  Windows Explorer.

- If "server" is given as FQDN, and if "server" is an NFS server,
  ls //server now also enumerates NFS shares.  If "server" is given
  as a flat name, only SMB shares are enumerated.

- Expose WebDav shares, //tsclient (Microsoft Terminal Services)
  shares as well as //wsl$ (Plan 9 Network Provider) shares, i. e.,
  WSL installation root dirs.

- Redesign pipe handling to minimize toggling blocking mode.
  The query_hdl stuff is no longer needed in new implementation.

- Now using AVX/AVX2/AVX-512 instructions in signal handler does not
  break their context.

- nice(2), setpriority(2) and sched_setparam(2) now fail with EACCES
  or EPERM if Windows would silently set a lower priority
  (HIGH_PRIORITY_CLASS instead of REALTIME_PRIORITY_CLASS) due to
  missing administrator privileges.

- nice(2) now returns the new nice value instead of 0 on success
  and sets errno to EPERM instead of EACCES on failure.  This confirms
  to POSIX and Linux (glibc >= 2.2.4) behavior.

- sched_setscheduler(2) now emulates changes between SCHED_OTHER,
  SCHED_BATCH, SCHED_IDLE, SCHED_FIFO and SCHED_RR.  If SCHED_OTHER or
  SCHED_BATCH is selected, the Windows priority is set according to the
  nice value where SCHED_BATCH sets a one step lower priority.  If
  SCHED_IDLE is selected, the nice value is preserved and the Windows
  priority is set to IDLE_PRIORITY_CLASS.  If SCHED_FIFO or SCHED_RR is
  selected, the nice value is preserved and the Windows priority is set
  according to the realtime priority.
  If the SCHED_RESET_ON_FORK flag is set, SCHED_FIFO and SCHED_RR are
  reset to SCHED_OTHER and negative nice values are reset to zero in
  each child process created with fork(2).
  Note: Windows does not offer alternative scheduling policies so
  this could only emulate API behavior.

- If SCHED_FIFO or SCHED_RR is selected, the /proc/<PID>/stat field
  '(18) priority' is now set to the negated sched_policy minus one.
  If SCHED_IDLE is selected, this field is set to 39.  The '(19) nice'
  field is now set to the originally requested nice value.

- Raise maximum pid from 65536 to 4194304 to account for scenarios
  with lots of CPUs and lots of tasks.
  Addresses: https://cygwin.com/pipermail/cygwin/2024-December/256927.html

- Allow mmap with MAP_FIXED to succeed on an address range contained
  in the chunk of an existing anonymous mapping, provided the
  MAP_SHARED/MAP_PRIVATE flags agree and MAP_NORESERVE is not set for
  either mapping.
  Addresses: https://cygwin.com/pipermail/cygwin/2024-December/256901.html

- Fix a long-standing hang issue when running on ARM64 under emulation.
  This was due to a thread being terminated while the emulation was
  holding an internal lock.
  Addresses: https://cygwin.com/pipermail/cygwin-developers/2024-May/012694.html

- Add a host machine tag to uname(2)'s sysname field.  This echoes what
  used to be done with -WOW64 (when that was supported), but now with
  -ARM64 when running on an ARM64 host under emulation.  The Cygwin DLL's
  own architecture continues to be reported in the machine field.

- Escape special characters in /proc/<PID>/mount*.  This allows the
  contents to be parsed consistently, and matches what is done on Linux.
  Addresses: https://cygwin.com/pipermail/cygwin/2024-June/256082.html

- Expose all Windows volume mount points via getmntent(3).  This also
  exposes them via /proc/<PID>/mount*.  A change in behavior from
  previous Cygwin versions is that volumes whose root is mounted
  explicitly in Cygwin will now also show up as mounted under the
  cygdrive prefix, whereas before that entry would have been suppressed.
  Addresses: https://cygwin.com/pipermail/cygwin/2024-June/256081.html


Fixes:
------

- Fix an off-by-one bug in lseek(2)'s SEEK_DATA/SEEK_HOLE handling on
  filesystem-compressed files, potentially triggering a hang in cp(1).
  Addresses: https://sourceware.org/pipermail/cygwin/2025-January/257082.html
             https://cygwin.com/pipermail/cygwin/2025-February/257326.html

- Fix 'lost connection' error in scp.
  Addresses: https://cygwin.com/pipermail/cygwin/2025-January/257143.html

- Fix EACCES error of sched_setaffinity(2) if pid of other process is used.

- Fix starving of auxiliary signal return address stack in case signal
  handlers bail out (longjmp/setcontext).
  Addresses: https://cygwin.com/pipermail/cygwin/2025-March/257648.html