This is the mail archive of the newlib@sourceware.org mailing list for the newlib project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: newlib ieeefp.h again


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.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]