mmap failure [was: cygrunsrv + sshd + rsync = 20 times too slow -- throttled?]

Ken Brown
Sat Sep 4 22:37:35 GMT 2021

I've reduced the procps failure to the following test case:

$ cat mmap_test.c
#include <unistd.h>
#include <stdio.h>
#include <sys/mman.h>

main ()
   void *addr;
   int page_size = getpagesize ();

   addr = mmap (0, page_size, PROT_READ | PROT_WRITE,
                MAP_PRIVATE | MAP_ANONYMOUS, -1, 0);
   if (addr == MAP_FAILED)
     perror ("mmap");

$ gcc mmap_test.c

$ ./a
mmap: Invalid argument

This happens if I use cygwin1.dll built from the current git master.  But it 
also happens if I build from cygwin-3_2_0-release with the recent patches 
applied that make Cygwin build without error:

0e12b4939 Cygwin: C++17: register keyword is deprecated
a7340e0c0 Cygwin: dumper: fix up GCC pragma for g++ 11.2
2a212c086 Cygwin: workaround a g++ 11.2 initialization bug
9e3f1737e Cygwin: loader script: add DWARF 5 sections
bdfd2b004 Cygwin: testsuite: avoid "conflicting types" gcc warning
6fc498e2e strstr: avoid warnings
26da270b2 ldexp/ldexpf: avoid assembler warning
edce2a557 Cygwin: fix declaration of RtlInitEmptyUnicodeString

So there appears to be something wrong with cygwin1.dll built with the current 
build tools (gcc 11.2.0, binutils 2.37, not sure what else is relevant).


More information about the Cygwin mailing list