Re: Issue: #include <stdio.h> shall not cause intmax_t to be defined
Sebastian Huber <[email protected]>
| Newsgroups | gmane.comp.lib.newlib |
|---|---|
| Message-ID | <[email protected]> |
On 04/05/2022 10:54, Corinna Vinschen wrote: > On May 4 10:41, Sebastian Huber wrote: >> On 04/05/2022 10:37, Corinna Vinschen wrote: >>> On May 4 09:59, Sebastian Huber wrote: >>>> On 03/05/2022 19:00, Corinna Vinschen wrote: >>>>> On Apr 27 00:41, Pavel M wrote: >>>>>> Hi all, >>>>>> >>>>>> Issue: #include <stdio.h> shall not cause intmax_t to be defined. However, >>>>>> now it causes. This is because now <stdio.h> includes <sys/types.h>, which >>>>>> includes <sys/_stdint.h>. >>>>>> Note: per C11 the types intmax_t and uintmax_t defined in the header >>>>>> <stdint.h>, and <stdint.h> is not included in <stdio.h>. >>>>>> Consider fixing. >>>>> I pushed a patch to fix this. >>>> In FreeBSD, <sys/types.h> provides the stdint.h types. Could we bring back >>>> this with >>> Is that with FreeeBSD only, or is that with BSDs in general? >> It seems to be a general BSD feature: >> >> https://github.com/openbsd/src/blob/master/sys/sys/types.h#L75 >> >> http://cvsweb.netbsd.org/bsdweb.cgi/src/sys/sys/types.h?rev=1.105&content-type=text/x-cvsweb-markup > If the BSDs expose stdint.h types via stdio.h anyway, what's the sense > of not exposing it in the non-_BSD_VISIBLE scenario? _BSD_VISIBLE is > default anyway, so the non-exposure of the stdint types is restricted to > files which define _XOPEN_SOURCE or some such. > > Is there actually a "MUST NOT" defined anywhere in the standards or > was this change unnecessary? I think the reported problem with stdio.h is because the Newlib stdio.h includes <sys/types.h>. In FreeBSD for example, <sys/_types.h> is included with local type definitions, see: https://sourceware.org/pipermail/newlib/2022/019592.html -- embedded brains GmbH Herr Sebastian HUBER Dornierstr. 4 82178 Puchheim Germany email: [email protected] phone: +49-89-18 94 741 - 16 fax: +49-89-18 94 741 - 08 Registergericht: Amtsgericht München Registernummer: HRB 157899 Vertretungsberechtigte Geschäftsführer: Peter Rasmussen, Thomas Dörfler Unsere Datenschutzerklärung finden Sie hier: https://embedded-brains.de/datenschutzerklaerung/