Issue: #include <stdio.h> shall not cause intmax_t to be defined
Sebastian Huber
sebastian.huber@embedded-brains.de
Wed May 4 09:02:18 GMT 2022
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: sebastian.huber@embedded-brains.de
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/
More information about the Newlib
mailing list