public inbox for cygwin@cygwin.com
 help / color / mirror / Atom feed
* [ANNOUNCEMENT] cygwin 3.1.0-0.4 (TEST)
@ 2019-09-05 13:17 Ken Brown
  2019-09-13 18:39 ` Michael Haubenwallner
  0 siblings, 1 reply; 4+ messages in thread
From: Ken Brown @ 2019-09-05 13:17 UTC (permalink / raw)
  To: cygwin

The following packages have been uploaded to the Cygwin distribution
as test releases:

* cygwin-3.1.0-0.4
* cygwin-devel-3.1.0-0.4
* cygwin-doc-3.1.0-0.4

This release comes with a couple of new features and quite a few
bug fixes.

The most interesting changes:

- A revamp of the old FIFO code.  It should now be possible to open
  FIFOs multiple times for writing, something the old code failed on.
  Courtesy Ken Brown.

- Support the new pseudo console in PTY. Pseudo console is a new feature
  in Windows 10 1809, which provides console APIs on virtual terminal.
  With this patch, native console applications can work in Cygwin PTYs.
  Courtesy Takashi Yano.

Please test.

=======================================================================

What's new:
-----------

- Add 24 bit color support using xterm compatibility mode in Windows 10
  1703 or later.  Add fake 24 bit color support for legacy console,
  which uses the nearest color from 16 system colors.

- Support pseudo console in PTY. Pseudo console is a new feature
  in Windows 10 1809, which provides console APIs on virtual
  terminal. With this patch, native console applications can work
  in PTYs such as mintty, ssh, gnu screen or tmux.

- New APIs: sched_getaffinity, sched_setaffinity, pthread_getaffinity_np,
  pthread_setaffinity_np, plus CPU_SET macros.

- New APIs: dbm_clearerr, dbm_close, dbm_delete, dbm_dirfno, dbm_error,
  dbm_fetch, dbm_firstkey, dbm_nextkey, dbm_open, dbm_store.


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

- FIFOs can now be opened multiple times for writing.
  Addresses: https://cygwin.com/ml/cygwin/2015-03/msg00047.html
             https://cygwin.com/ml/cygwin/2015-12/msg00311.html

- If a SA_SIGINFO signal handler changes the ucontext_t pointed to by
  the third parameter, follow it after returning from the handler.

- Eliminate a header file name collision with <X11/XLocale.h> on case
  insensitive filesystems by reverting <xlocale.h> back to <sys/_locale.h>.


Bug Fixes
---------

- Fix select() on console in canonical mode.  Return after one line is
  completed, instead of when only one key is typed.

- Make console I/O functions thread-safe.

- Define missing MSG_EOR.  It's unsupported by the underlying Winsock
  layer so using it in send(2), sendto(2), or sendmsg(2) will return -1
  with errno set to EOPNOTSUPP and recvmsg(2) will never return it.

- Fix a timerfd deadlock.
  Addresses: https://cygwin.com/ml/cygwin/2019-06/msg00096.html

- Fix sigpending() incorrectly returning signals for unrelated threads.
  Addresses: https://cygwin.com/ml/cygwin/2019-07/msg00051.html

- Fix a hang when opening a FIFO with O_PATH.
  Addresses: https://cygwin.com/ml/cygwin-developers/2019-06/msg00001.html

- Don't append ".lnk" when renaming a socket file.
  Addresses: https://cygwin.com/ml/cygwin/2019-07/msg00139.html

- Make tcsetpgrp() return -1 if its argument is negative.
  Addresses: https://cygwin.com/ml/cygwin/2019-07/msg00166.html

- Avoid mistakenly moving a process under debugger control into the
  process group of the debugger.
  Addresses a problem visible in GDB 8.1.1, related to
  https://cygwin.com/ml/cygwin/2019-07/msg00166.html

- Return ENOEXEC from execve for arbitrary files only if the files are
  executable.
  Addresses: https://cygwin.com/ml/cygwin/2019-08/msg00054.html

- Fix off-by-one in environment evaluation leading to an abort.
  Addresses: https://cygwin.com/ml/cygwin-patches/2019-q3/msg00069.html

- Make output of /proc/[PID]/stat consistent with getpriority().
  Addresses: https://cygwin.com/ml/cygwin/2019-08/msg00082.html

- 64 bit only: Avoid collisions between memory maps created with shmat
  and Windows datastructures during fork.
  Addresses: https://cygwin.com/ml/cygwin/2019-08/msg00107.html

=======================================================================


Have fun,

Ken Brown, on behalf of Corinna

--
Problem reports:       http://cygwin.com/problems.html
FAQ:                   http://cygwin.com/faq/
Documentation:         http://cygwin.com/docs.html
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [ANNOUNCEMENT] cygwin 3.1.0-0.4 (TEST)
  2019-09-05 13:17 [ANNOUNCEMENT] cygwin 3.1.0-0.4 (TEST) Ken Brown
@ 2019-09-13 18:39 ` Michael Haubenwallner
  2019-09-13 22:14   ` Mark Geisert
  0 siblings, 1 reply; 4+ messages in thread
From: Michael Haubenwallner @ 2019-09-13 18:39 UTC (permalink / raw)
  To: cygwin

On 9/5/19 3:16 PM, Ken Brown wrote:
> The following packages have been uploaded to the Cygwin distribution
> as test releases:
> 
> * cygwin-3.1.0-0.4
> * cygwin-devel-3.1.0-0.4
> * cygwin-doc-3.1.0-0.4

> - New APIs: sched_getaffinity, sched_setaffinity, pthread_getaffinity_np,
>   pthread_setaffinity_np, plus CPU_SET macros.

There's some problem with <sched.h>, seen with boost-1.71.0/bootstrap.sh,
even after tweaking their sysinfo.cpp like this to include <sched.h>:

-#if defined(OS_LINUX)
+#if defined(OS_LINUX) || defined(OS_CYGWIN)

This boils down to a test case like this that succeeds to *compile* on Linux,
although requires _GNU_SOURCE to be defined earlier to perform anything useful:

$ cat > test.cc <<'EOF'
#ifdef LIKE_BOOST
# include <pthread.h>
# define _GNU_SOURCE
#endif
#include <sched.h>
int main()
{
#if defined(CPU_COUNT_S)
  ::cpu_set_t cpu_set;
  if (::sched_getaffinity(0, sizeof(cpu_set_t), &cpu_set) == 0)
    {
      return CPU_COUNT_S(sizeof(cpu_set_t), &cpu_set);
    }
#endif
  return 0;
}
EOF

Both these commands fail to compile on Cygwin with identical error:
$ g++ test.c -DLIKE_BOOST
$ g++ test.c
test.c: In function ‘main’:
test.c:10:7: warning: implicit declaration of function ‘sched_getaffinity’; did you mean ‘sched_getparam’? [-Wimplicit-function-declaration]
   if (sched_getaffinity(0, sizeof(cpu_set_t), &cpu_set) == 0)
       ^~~~~~~~~~~~~~~~~
       sched_getparam

Actually it is boost's fault to include <pthread.h> before defining _GNU_SOURCE,
but it feels like Cygwin should *not* define CPU_COUNT_S without _GNU_SOURCE.

Thoughts?
/haubi/

PS: This does work as expected:
$ g++ test.c -D_GNU_SOURCE

--
Problem reports:       http://cygwin.com/problems.html
FAQ:                   http://cygwin.com/faq/
Documentation:         http://cygwin.com/docs.html
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [ANNOUNCEMENT] cygwin 3.1.0-0.4 (TEST)
  2019-09-13 18:39 ` Michael Haubenwallner
@ 2019-09-13 22:14   ` Mark Geisert
  2019-09-16 11:54     ` Michael Haubenwallner
  0 siblings, 1 reply; 4+ messages in thread
From: Mark Geisert @ 2019-09-13 22:14 UTC (permalink / raw)
  To: cygwin

Michael Haubenwallner wrote:
> On 9/5/19 3:16 PM, Ken Brown wrote:
>> The following packages have been uploaded to the Cygwin distribution
>> as test releases:
>>
>> * cygwin-3.1.0-0.4
>> * cygwin-devel-3.1.0-0.4
>> * cygwin-doc-3.1.0-0.4
> 
>> - New APIs: sched_getaffinity, sched_setaffinity, pthread_getaffinity_np,
>>    pthread_setaffinity_np, plus CPU_SET macros.
> 
> There's some problem with <sched.h>, seen with boost-1.71.0/bootstrap.sh,
> even after tweaking their sysinfo.cpp like this to include <sched.h>:
> 
> -#if defined(OS_LINUX)
> +#if defined(OS_LINUX) || defined(OS_CYGWIN)
> 
> This boils down to a test case like this that succeeds to *compile* on Linux,
> although requires _GNU_SOURCE to be defined earlier to perform anything useful:
> 
> $ cat > test.cc <<'EOF'
> #ifdef LIKE_BOOST
> # include <pthread.h>
> # define _GNU_SOURCE
> #endif
> #include <sched.h>
> int main()
> {
> #if defined(CPU_COUNT_S)
>    ::cpu_set_t cpu_set;
>    if (::sched_getaffinity(0, sizeof(cpu_set_t), &cpu_set) == 0)
>      {
>        return CPU_COUNT_S(sizeof(cpu_set_t), &cpu_set);
>      }
> #endif
>    return 0;
> }
> EOF
> 
> Both these commands fail to compile on Cygwin with identical error:
> $ g++ test.c -DLIKE_BOOST
> $ g++ test.c
> test.c: In function ‘main’:
> test.c:10:7: warning: implicit declaration of function ‘sched_getaffinity’; did you mean ‘sched_getparam’? [-Wimplicit-function-declaration]
>     if (sched_getaffinity(0, sizeof(cpu_set_t), &cpu_set) == 0)
>         ^~~~~~~~~~~~~~~~~
>         sched_getparam
> 
> Actually it is boost's fault to include <pthread.h> before defining _GNU_SOURCE,
> but it feels like Cygwin should *not* define CPU_COUNT_S without _GNU_SOURCE.
> 
> Thoughts?
> /haubi/
> 
> PS: This does work as expected:
> $ g++ test.c -D_GNU_SOURCE

Thanks for the problem report.  Blame me for this one.  I believe your last 
suggestion is the correct fix but I want to double-check something additional. 
Shortly I'll submit a patch to correct this one way or another.

..mark

--
Problem reports:       http://cygwin.com/problems.html
FAQ:                   http://cygwin.com/faq/
Documentation:         http://cygwin.com/docs.html
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [ANNOUNCEMENT] cygwin 3.1.0-0.4 (TEST)
  2019-09-13 22:14   ` Mark Geisert
@ 2019-09-16 11:54     ` Michael Haubenwallner
  0 siblings, 0 replies; 4+ messages in thread
From: Michael Haubenwallner @ 2019-09-16 11:54 UTC (permalink / raw)
  To: cygwin

Hi Mark,

On 9/14/19 12:08 AM, Mark Geisert wrote:
> Michael Haubenwallner wrote:
>> On 9/5/19 3:16 PM, Ken Brown wrote:
>>> The following packages have been uploaded to the Cygwin distribution
>>> as test releases:
>>>
>>> * cygwin-3.1.0-0.4
>>> * cygwin-devel-3.1.0-0.4
>>> * cygwin-doc-3.1.0-0.4
>>
>>> - New APIs: sched_getaffinity, sched_setaffinity, pthread_getaffinity_np,
>>>    pthread_setaffinity_np, plus CPU_SET macros.
>>
>> There's some problem with <sched.h>, seen with boost-1.71.0/bootstrap.sh,
>> even after tweaking their sysinfo.cpp like this to include <sched.h>:
>>

>> Actually it is boost's fault to include <pthread.h> before defining _GNU_SOURCE,
>> but it feels like Cygwin should *not* define CPU_COUNT_S without _GNU_SOURCE.

> Thanks for the problem report.  Blame me for this one.  I believe your last
> suggestion is the correct fix but I want to double-check something additional.
> Shortly I'll submit a patch to correct this one way or another.

Fix does work as expected, thanks!
/haubi/

--
Problem reports:       http://cygwin.com/problems.html
FAQ:                   http://cygwin.com/faq/
Documentation:         http://cygwin.com/docs.html
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2019-09-16  7:30 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-09-05 13:17 [ANNOUNCEMENT] cygwin 3.1.0-0.4 (TEST) Ken Brown
2019-09-13 18:39 ` Michael Haubenwallner
2019-09-13 22:14   ` Mark Geisert
2019-09-16 11:54     ` Michael Haubenwallner

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).