[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[bug #60444] gnulib fcntl breaks output-sync on mingw
From: |
Ryan Prichard |
Subject: |
[bug #60444] gnulib fcntl breaks output-sync on mingw |
Date: |
Thu, 22 Apr 2021 23:11:48 -0400 (EDT) |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.72 Safari/537.36 |
URL:
<https://savannah.gnu.org/bugs/?60444>
Summary: gnulib fcntl breaks output-sync on mingw
Project: make
Submitted by: rprichard
Submitted on: Fri 23 Apr 2021 03:11:46 AM UTC
Severity: 3 - Normal
Item Group: Bug
Status: None
Privacy: Public
Assigned to: None
Open/Closed: Open
Discussion Lock: Any
Component Version: 4.3
Operating System: None
Fixed Release: None
Triage Status: None
_______________________________________________________
Details:
When I build make on Linux, using the autoconf script, cross-compiling to
mingw-w64, the fcntl in src/w32/compat/posixfcn.c is disabled in favor of the
version in gnulib. This is a problem for output synchronization (-O), which
does something unusual on Windows:
[in src/output.c]
- sync_handle is initialized using create_mutex(), which returns a Windows
HANDLE rather than an fd.
- This HANDLE is then passed to fcntl with F_SETLKW.
The gnulib fcntl doesn't have F_SETLKW, but in any case, the mutex HANDLE
isn't a valid fd, so make prints errors:
fcntl(): Bad file descriptor
This issue affects the Android NDK build of make.exe on Windows:
https://github.com/android/ndk/issues/1492
Aside: The w32/compat/posixfcn.c version of fcntl assumes that F_SETLKW is
only used with a single Win32 mutex HANDLE. The `last_fl` static variable is
used to allow redundant F_WRLCK operations to succeed -- the first F_UNLCK
operation releases the mutex.
Related issues:
- https://savannah.gnu.org/bugs/?52922
- https://savannah.gnu.org/bugs/?57888
_______________________________________________________
Reply to this item at:
<https://savannah.gnu.org/bugs/?60444>
_______________________________________________
Message sent via Savannah
https://savannah.gnu.org/
- [bug #60444] gnulib fcntl breaks output-sync on mingw,
Ryan Prichard <=