Issue: #include <stdio.h> shall not cause intmax_t to be defined

Corinna Vinschen vinschen@redhat.com
Wed May 4 08:37:35 GMT 2022


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?

> #if __BSD_VISIBLE
> #include <machine/endian.h>
> #include <sys/select.h>
> #include <sys/_stdint.h>
> #  define	physadr		physadr_t
> #  define	quad		quad_t
> 
> ?
> 
> In addition, the C11 header files should not include <sys/types.h>.

Which files are these exactly?  Feel free to submit patches.


Corinna



More information about the Newlib mailing list