[PATCH 0/3]: Add math support for non LDBL_EQ_DBL architecture

Corinna Vinschen vinschen@redhat.com
Wed Apr 5 09:23:41 GMT 2023


Hi Jennifer,

On Apr  3 15:58, Jennifer Averett wrote:
> The attached set of patches add long double support for i386, aarch64 and 
> x86_64.  The riscv and powerpc are supported by FreeBSD but will need more 
> work to be supported by newlib.  FreeBSD has separate 64 and 32 bit powerpc 
> support which would have to be integrated for newlib. FreeBSD riscv support 
> is 64 and there are issues with fenv.h that would have to be addressed.

Thanks for your patchset, it looks pretty well to me, though I like
to have input on this from my co-maintainer Jeff, too.

I noticed that you exclude Cygwin from the new code, which makes sense
as long as we provide our own long double math taken from Mingw-w64.

However, there's something not quite right.  When trying to build I get
symbol conflicts for the fdim{f,l} and scalbln{f,l} symbols in the link
stage (paths shortend for readability):

ld: libm.a(libm_a-s_fdim.o): in function `fdimf':
newlib/libm/ld/s_fdim.c:47: multiple definition of `fdimf'; libm.a(libm_a-sf_fdim.o):newlib/libm/common/sf_fdim.c:16: first defined here

ld: libm.a(libm_a-s_fdim.o): in function `fdiml':
newlib/libm/ld/s_fdim.c:48: multiple definition of `fdiml'; libdll.a(fdiml.o):winsup/cygwin/math/fdiml.c:11: first defined here

ld: libm.a(libm_a-s_scalbln.o): in function `scalblnf':
newlib/libm/ld/s_scalbln.c:46: multiple definition of `scalblnf'; libm.a(libm_a-sf_scalbln.o):newlib/libm/common/sf_scalbln.c:34: first defined here

ld: libm.a(libm_a-s_scalbln.o): in function `scalblnl':
newlib/libm/ld/s_scalbln.c:53: multiple definition of `scalblnl'; libdll.a(scalbnl.o):winsup/cygwin/scalbnl.S:19: first defined here

The conflicts really ony occur for these four functions.  Any chance
to fix these?


Thanks,
Corinna



More information about the Newlib mailing list