fdlibm 5.2 uses HI and LO macros which depend on pointer aliasing :-
#ifdef __LITTLE_ENDIAN
#define __HI(x) *(1+(int*)&x)
#define __LO(x) *(int*)&x
#define __HIp(x) *(1+(int*)x)
#define __LOp(x) *(int*)x
#else
#define __HI(x) *(int*)&x
#define __LO(x) *(1+(int*)&x)
#define __HIp(x) *(int*)x
#define __LOp(x) *(1+(int*)x)
#endif
Compilers such as GCC 2.95 are senstive compared to old versions
of GCC and thus can't handle these macros as intended.
From a portability perspective it would be good to replace these
macros in a future Java 2 release.
###@###.### 2004-11-11 22:24:08 GMT
#ifdef __LITTLE_ENDIAN
#define __HI(x) *(1+(int*)&x)
#define __LO(x) *(int*)&x
#define __HIp(x) *(1+(int*)x)
#define __LOp(x) *(int*)x
#else
#define __HI(x) *(int*)&x
#define __LO(x) *(1+(int*)&x)
#define __HIp(x) *(int*)x
#define __LOp(x) *(1+(int*)x)
#endif
Compilers such as GCC 2.95 are senstive compared to old versions
of GCC and thus can't handle these macros as intended.
From a portability perspective it would be good to replace these
macros in a future Java 2 release.
###@###.### 2004-11-11 22:24:08 GMT
- relates to
-
JDK-8303798 REDO - Remove fdlibm C sources
- Resolved
-
JDK-8302801 Remove fdlibm C sources
- Closed
-
JDK-4141677 The spec for java.lang.Math should not be written in C.
- Closed
-
JDK-4378241 fdlibm.h requires define __LITTLE_ENDIAN instead of _LITTLE_ENDIAN
- Closed
-
JDK-6989117 fdlibm compiler warning messages
- Closed