[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

stdnoreturn ideas [was: [PATCH] openat-die: use _Noreturn markup]

From: Eric Blake
Subject: stdnoreturn ideas [was: [PATCH] openat-die: use _Noreturn markup]
Date: Thu, 31 Jul 2014 10:23:17 -0600
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:24.0) Gecko/20100101 Thunderbird/24.7.0

On 07/30/2014 10:22 PM, Eric Blake wrote:
> On 07/30/2014 09:53 PM, Eric Blake wrote:
>> Meanwhile, './gnulib-tool --test stdnoreturn' is failing on cygwin, so

> Looks like the cygwin headers are broken for misusing 'noreturn' instead
> of __noreturn__ inside __attribute__; something that is easier to patch
> in cygwin than work around in gnulib.

I wonder if gnulib could work around this failure by having the
replacement <stdnoreturn.h> do a #include of all broken headers prior to
an #include_next of the real <stdnoreturn.h>; except that
<stdnoreturn.h> only needs to define macros, and the gnulib code for
probing how to do include_next depends on the system header having
non-comment non-macro contents (so that the preprocessor output is not
entirely elided).

Anyways, determining the set of broken headers seems like a lot of work;
it may be just simpler to do a configure probe whether any headers
appear to be broken, and have <stdnoreturn.h> behave like it does for
MSVC (that is, be a no-op with no definition of 'noreturn' because the
system headers are buggy).  I'll probably prepare a gnulib patch along
these lines, because it may be a while before the next cygwin release
that includes my patches for the broken headers.

Eric Blake   eblake redhat com    +1-919-301-3266
Libvirt virtualization library http://libvirt.org

Attachment: signature.asc
Description: OpenPGP digital signature

reply via email to

[Prev in Thread] Current Thread [Next in Thread]