JDK-8172053 : (ppc64) Downport of 8170153 breaks build on linux/ppc64 (big endian)
  • Type: Bug
  • Component: core-libs
  • Sub-Component: java.lang
  • Affected Version: 8u152
  • Priority: P3
  • Status: Resolved
  • Resolution: Fixed
  • OS: linux
  • CPU: ppc
  • Submitted: 2016-12-27
  • Updated: 2017-11-29
  • Resolved: 2017-01-05
The Version table provides details related to the release that this issue/RFE will be addressed.

Unresolved : Release in which this issue/RFE will be addressed.
Resolved: Release in which this issue/RFE has been resolved.
Fixed : Release in which this issue/RFE has been fixed. The release containing this fix may be available for download as an Early Access Release or a General Availability Release.

To download the current JDK release, click here.
JDK 8
8u152 b01Fixed
Related Reports
Relates :  
Description
The downport of "8170153: PPC64/s390x/aarch64: Poor StrictMath performance due to non-optimized compilation" to jdk8u breaks the build on linux/ppc64 (big endian) with the original compiler used to compile jdk8u on linux/ppc64.

JDK-8170153 increased the optimization level for the compilation of fdlibm on both linux/ppc64 and linux/ppc64le. This only worked by using the option '-ffp-contract=off' which guaranteed correct IEEE floating point behaviour.

Unfortunately, '-ffp-contract' is only available since gcc 4.6. For ppc64le that's no problem since ppc64le support only appeared in gcc 4.8.3. But on ppc64 (big endian) we traditionally compiled with gcc 4.3 which only knows '-mno-fused-madd'. However, that's still not enough to get the float computations right - we additionally have to supply '-fno-strict-aliasing'.

We should ensure that Linux distributions are able to build update releases of jdk8 with the original version of gcc (4.3 in this case).