what's up with _COMPILING_NEWLIB

Corinna Vinschen vinschen@redhat.com
Mon Nov 8 15:05:18 GMT 2021

On Nov  8 06:46, Mike Frysinger wrote:
> On 08 Nov 2021 11:05, Corinna Vinschen wrote:
> > On Nov  6 20:21, Mike Frysinger wrote:
> > > i stumbled across _COMPILING_NEWLIB and it seems to be what i want: a symbol
> > > that indicates the code currently being compiled is newlib itself so that the
> > > header can change behavior for that environment specifically.  is that what
> > > it's meant for ?
> > > 
> > > if so, why does it seem to be inconsistently defined ?  newlib/configure.host
> > > will add it for a few random targets, as does the mips-specific
> > > newlib/libc/machine/mips/Makefile.am, as do a few specific winsup/cygwin/
> > > files.  it feels like the patch below is what we should have.
> > > 
> > > if that's not what this is for, is there a define that has this meaning ?
> > > in the glibc & gnulib world, the plain _LIBC define indicates this.
> > 
> > _COMPILING_NEWLIB might be older than that.  In Cygwin we certainly need
> > it during build.  Your patch looks good to me, did you test it for some
> > targets?
> yes, i tested it for bfin-elf and with a change that needed it in ctype.h.
> the ctype.h change didn't work until i updated the build this way.

uhm... why does a change in a header file depend on the build system?
That sounds weird.

I tested building on Cygwin, which looks good.

So, here's a question: The patch is ok, just a change to the commit
message would be nice.  However, would you like to take the opportunity
to change _COMPILING_NEWLIB to _LIBC throughout?  That's something we
should have done long ago, I guess.


More information about the Newlib mailing list