This is the mail archive of the
libc-alpha@sourceware.org
mailing list for the glibc project.
Re: What does it mean to include pthread.h with -std=c11?
- From: Joseph Myers <joseph at codesourcery dot com>
- To: Florian Weimer <fw at deneb dot enyo dot de>
- Cc: Carlos O'Donell <carlos at redhat dot com>, Adhemerval Zanella <adhemerval dot zanella at linaro dot org>, Andreas Schwab <schwab at suse dot de>, libc-alpha <libc-alpha at sourceware dot org>
- Date: Fri, 20 Dec 2019 20:40:42 +0000
- Subject: Re: What does it mean to include pthread.h with -std=c11?
- Ironport-sdr: MXlu/kGmf0l6UdqV2JoUk+29HR1JQh0qNtW5LdlOIJPtG0X3W+anYX8tssu70HxqWqnTxpLb6P s+I7hMn4TogRzYeqGcgx+GwllLUPoxYMjN53g+vV1QL0336tQXVXNyV3K/nM9l52GZUvRfQwlX 2+WKRPMbs9tJXGwDxF1zodBDtHa3QCuJXftXQt7FgW5eUkaqGrL2m6Sx6KNkFUCNR43qgyR/O2 CqB90zi1eWQwn0hwk+puAfX5+pSM93B5kSDvQJdltMw6RicL8AoECu/Wex6ciG2/oKQ0CvIXdA Feo=
- Ironport-sdr: gL2RV+FRWAm/noFg6HpXhZsztM2iYVC2GFUFjub/gVM58H+O/fL8DNMzOJCD6AssINesrQVEW5 KwTiv93hL2vT3IvZ6CgAVvdunuSCdiqY+ex3ACYnWduKJwa+IiigFdhzIdLtC1CKwiJvhs7tS+ tV1Jv+P0Cs6Uvedwk/7V+Ay/Xrhw5076VLOlaJvayhntlqbg6LXyY5POGTbblLrW9Tpq9qgPFN gcaMsMulgB+Nrw6GY82hmOGjldJydqOl4ZdmAG/We/U2qdSbODtEQ0rFfJIpyggEGGOWEMozkb bfA=
- References: <bdbc364a-0dde-fc11-dde5-0df89bdb0abd@redhat.com> <87bls2oj56.fsf@mid.deneb.enyo.de>
On Fri, 20 Dec 2019, Florian Weimer wrote:
> * Carlos O'Donell:
>
> > I'm on the fence here because it _used_ to work, and so it seems like at
> > some point we might have gone from (1) -> (2) without a deeper discussion
> > about exactly what kind of behaviour and maintenance responsibility we want
> > for these headers.
> >
> > Thoughts?
>
> We have a test for this, see scripts/check-installed-headers.sh. It
> just fails to catch cases such as this because it cannot test that all
> the defined macros can be expanded.
>
> I think there are no two sides here. #include <pthread.h> must work
> in ISO C mode. Everything else is just very wrong.
Yes. There may be open questions about which exactly APIs should or
should not be declared by <pthread.h> in ISO C mode, but it must be a
self-consistent API set (so no macro depending on other definitions that
are missing, for example).
--
Joseph S. Myers
joseph@codesourcery.com