Mismatch between newlib and glibc regarding fileno
Corinna Vinschen
vinschen@redhat.com
Mon Feb 12 16:40:10 GMT 2024
On Feb 12 17:33, Corinna Vinschen wrote:
> On Feb 12 16:36, Torbjorn SVENSSON wrote:
> > Okay, so newlib is more restrictive than glibc on this topic.
> > I will prepare a patch for test cases in GCC with defining _POSIX_SOURCE so
> > that the test cases succeed for newlib.
>
> It looks like it. But I do wonder if that's really intended by glibc.
> I ran a quick test, first under newlibL
>
> $ g++ -std=c++98 -E -dM /usr/include/features.h | grep VISIBLE
> #define __LARGEFILE_VISIBLE 0
> #define __ISO_C_VISIBLE 1999
> #define __XSI_VISIBLE 0
> #define __GNU_VISIBLE 0
> #define __BSD_VISIBLE 0
> #define __POSIX_VISIBLE 0
> #define __SVID_VISIBLE 0
> #define __ATFILE_VISIBLE 0
> #define __MISC_VISIBLE 0
>
> then under glibc:
>
> $ g++ -std=c++98 -E -dM x.cc | grep '#define __USE'
> #define __USE_UNIX98 1
> #define __USE_FORTIFY_LEVEL 0
> #define __USE_ISOC11 1
> #define __USE_ISOC95 1
> #define __USE_ISOC99 1
> #define __USE_XOPEN 1
> #define __USE_XOPEN2K 1
> #define __USE_POSIX199506 1
> #define __USE_GNU 1
> #define __USE_XOPEN2KXSI 1
> #define __USE_XOPEN2K8 1
> #define __USE_POSIX 1
> #define __USER_LABEL_PREFIX__
> #define __USE_MISC 1
> #define __USE_POSIX2 1
> #define __USE_LARGEFILE64 1
> #define __USE_POSIX199309 1
> #define __USE_XOPEN2K8XSI 1
> #define __USE_LARGEFILE 1
> #define __USE_XOPEN_EXTENDED 1
> #define __USE_DYNAMIC_STACK_SIZE 1
> #define __USE_ATFILE 1
>
> How is it possible that with -std=c++98, everything and the kitchen sink
> is enabled? Is that really correct?!?
...especially since __STRICT_ANSI__ is defined to 1 in this scenario.
Corinna
More information about the Newlib
mailing list