[PATCH 2/3] libm: Remove __ieee754_gamma_r variants

Corinna Vinschen vinschen@redhat.com
Wed Sep 2 08:03:45 GMT 2020


On Sep  1 10:23, Keith Packard via Newlib wrote:
> Fabian Schriever <fabian.schriever@gtd-gmbh.de> writes:
> 
> > Hi Keith,
> >
> > We welcome your efforts to clean up - and correct the error return 
> > values of - the gamma/lgamma/tgamma families.
> 
> Thanks! I'm doing continuous integration testing as a part of embedded
> toolchain support for RISC-V as part of my SiFive dayjob; fixing bugs
> like this is part of that process.
> 
> > We would favor the removal of all non C/POSIX(+XSI)-standard functions 
> > from the interface.
> 
> Oh, that's probably the best idea of all. Applications should not be
> using 'gamma' at all given the different definitions over time and
> space.
> 
> Any thoughts about the newlib __ieee754 interfaces? Those are
> essentially the same as the C/POSIX interfaces but do not use errno or
> other global variables, reporting exceptions only through the fenv API.
> 
> > If something was changed in 2002, that is working incorrectly and no one 
> > found out until now, that is also not part of any standard, it suggests 
> > that no one is actually using it and should be able to be safely 
> > removed. Does Newlib have a policy to remove elements?
> 
> I don't think it's 'newlib' which would need any policy; newlib is used
> downstream in a wide variety of projects, including cygwin and picolibc,
> which may have separate policies. Cygwin has binary interface
> definitions, changing those could affect applications there.

Removing interfaces is not an option for Cygwin.  If you remove
functions from newlib exported as symbols in Cygwin, you must provide
replacement interfaces for Cygwin alone, otherwise Cygwin won't build
anymore.  And one step further, removing interfaces from the list of
exported symbols of the Cygwin DLL will break user space and that's
simply a no-no.


Corinna



More information about the Newlib mailing list