newlib ieeefp.h again

Sebastian Huber sebastian.huber@embedded-brains.de
Thu Mar 23 06:59:00 GMT 2017


On 23/03/17 00:17, Andrew Johnson wrote:
> Hi Joel & Craig,
>
> Hopefully you remember this email conversation from November:
>
> https://sourceware.org/ml/newlib/2016/msg01117.html
>
> I just built the RTEMS master branch for the uC5282 BSP, and found the
> same problem with the ieeefp.h header when building EPICS Base using the
> result. I think I can explain what's happening.
>
> Newlib's setting for _LDBL_EQ_DBL (in newlib.h) needs to change based on
> the particular CPU being compiled for. Here's some evidence:

Yes, this definition of _LDBL_EQ_DBL is wrong, since it depends on the 
multilib. For example we have in the GCC build tree:

grep _LDBL_EQ_DBL `find -name newlib.h`
./m68k-rtems4.12/m68040/softfp/newlib/newlib.h:/* #undef _LDBL_EQ_DBL */
./m68k-rtems4.12/m68040/newlib/newlib.h:/* #undef _LDBL_EQ_DBL */
./m68k-rtems4.12/m5208/newlib/newlib.h:#define _LDBL_EQ_DBL 1
./m68k-rtems4.12/m5329/newlib/newlib.h:#define _LDBL_EQ_DBL 1
./m68k-rtems4.12/m5206/newlib/newlib.h:#define _LDBL_EQ_DBL 1
./m68k-rtems4.12/m5407/newlib/newlib.h:#define _LDBL_EQ_DBL 1
./m68k-rtems4.12/softfp/newlib/newlib.h:/* #undef _LDBL_EQ_DBL */
./m68k-rtems4.12/m68000/newlib/targ-include/newlib.h:/* #undef 
_LDBL_EQ_DBL */
./m68k-rtems4.12/m68000/newlib/newlib.h:/* #undef _LDBL_EQ_DBL */
./m68k-rtems4.12/newlib/targ-include/newlib.h:/* #undef _LDBL_EQ_DBL */
./m68k-rtems4.12/newlib/newlib.h:/* #undef _LDBL_EQ_DBL */
./m68k-rtems4.12/m5475/softfp/newlib/newlib.h:#define _LDBL_EQ_DBL 1
./m68k-rtems4.12/m5475/newlib/newlib.h:#define _LDBL_EQ_DBL 1
./m68k-rtems4.12/m68060/softfp/newlib/newlib.h:/* #undef _LDBL_EQ_DBL */
./m68k-rtems4.12/m68060/newlib/newlib.h:/* #undef _LDBL_EQ_DBL */
./m68k-rtems4.12/mcpu32/newlib/newlib.h:/* #undef _LDBL_EQ_DBL */
./m68k-rtems4.12/m5307/newlib/newlib.h:#define _LDBL_EQ_DBL 1

In the installation tree:

grep _LDBL_EQ_DBL `find -name newlib.h`
./m68k-rtems4.12/include/newlib.h:/* #undef _LDBL_EQ_DBL */

So, only one random newlib.h is copied to the installation tree, 
therefore all newlib.h of the build tree must be identical.

I would move the _LDBL_EQ_DBL definition to <ieeefp.h> based on compiler 
provided defines.

-- 
Sebastian Huber, embedded brains GmbH

Address : Dornierstr. 4, D-82178 Puchheim, Germany
Phone   : +49 89 189 47 41-16
Fax     : +49 89 189 47 41-09
E-Mail  : sebastian.huber@embedded-brains.de
PGP     : Public key available on request.

Diese Nachricht ist keine geschäftliche Mitteilung im Sinne des EHUG.



More information about the Newlib mailing list