Mismatch between newlib and glibc regarding fileno
Christophe Lyon
christophe.lyon@linaro.org
Fri Feb 9 16:40:54 GMT 2024
Hi!
On Fri, 9 Feb 2024 at 17:30, Torbjorn SVENSSON
<torbjorn.svensson@foss.st.com> wrote:
>
> Hi all,
>
> I've been trying to run tests for arm-none-eabi on GCC14 tree.
> What I've seen is that fileno() is not available. If you look though the
> header files, I see that this is guarded by __POSIX_VISIBLE and due to a
> recent change in the GCC testsuite (part of PR96395), they moved the
> test case to gcc/testsuite/c-c++-common/analyzer/fileno-1.c and then
> invoke it with g++ and -std=c++98. With this change, strict ANSI is
> defined, but not __POSIX_VISIBLE.
This was reported some time ago in:
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=113278
Christophe
>
> If I run the same test on the native g++ tool in Ubuntu, I instead get
> that __USE_POSIX is set (the guard for fileno() in glibc), so this
> differs from the behavior noticed with newlib.
>
>
> Is it correct that newlib does not define __POSIX_VISIBLE when g++ is
> invoked with -std=c++98 (or any other standard that does not use the GNU
> extensions)?
> It can also be seen using gcc with -std=c11 for example, so it's not
> strictly a C vs C++ issue.
>
>
> The expression used in glibc:
> https://github.com/bminor/glibc/blob/master/include/features.h#L335
>
> The expression used in newlib:
> https://sourceware.org/git/?p=newlib-cygwin.git;a=blob;f=newlib/libc/include/sys/features.h;h=6a925c87e9ec333fc51538201aa7b52d24b3ca5b;hb=refs/heads/main#l148
>
>
> Kind regards,
> Torbjörn
-------------- next part --------------
A non-text attachment was scrubbed...
Name: image.png
Type: image/png
Size: 81694 bytes
Desc: not available
URL: <https://sourceware.org/pipermail/newlib/attachments/20240209/f4048591/attachment-0001.png>
More information about the Newlib
mailing list