|
From: | Paul Eggert |
Subject: | Re: MinGW build on master broken by Gnulib update |
Date: | Thu, 5 Sep 2024 09:28:15 -0700 |
User-agent: | Mozilla Thunderbird |
On 2024-09-04 22:43, Eli Zaretskii wrote:
Gnulib moved the prototypes of sig2str and str2sig from sig2str.h to Gnulib's signal.h, evidently assuming that a build which uses the Gnulib sig2str will also use the Gnulib signal.h header, but that assumption is false for the MinGW build of Emacs, which omits lib/signal.h (because it clashes with some w32 code in Emacs). I fixed that temporarily by modifying lib/sig2str.h to include the missing stuff for MinGW, but this is really a Gnulib issue, and should be fixed in Gnulib, IMO.
The change to Gnulib was to align with POSIX.1-2024, which declares sig2str and str2sig in <signal.h>; see:
https://pubs.opengroup.org/onlinepubs/9799919799/functions/sig2str.htmlWe don't want sig2str callers to depart from the POSIX API, any more than we'd want to require (say) fdopen callers to include a Gnulib-specific fdopen.h rather than including <stdio.h>.
Instead, how about adjusting Emacs's MinGW shims to supply the missing declarations? Something like the attached patch, say. (I don't use MinGW so can't easily test this.)
0001-Move-MinGW-sig2str-workaround-into-ms-w32.h.patch
Description: Text Data
[Prev in Thread] | Current Thread | [Next in Thread] |