JDK-8258484 : AIX build fails in Harfbuzz with XLC 16.01.0000.0006
  • Type: Bug
  • Component: client-libs
  • Sub-Component: 2d
  • Affected Version: 16,17
  • Priority: P2
  • Status: Resolved
  • Resolution: Fixed
  • OS: aix
  • CPU: ppc
  • Submitted: 2020-12-16
  • Updated: 2022-03-24
  • Resolved: 2021-01-07
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 16 JDK 17
16Fixed 17 b05Fixed
Related Reports
Relates :  
Description
Currently  the AIX build fails (when this xlc 16 version is used):

bash-4.4$ xlc -qversion
IBM XL C/C++ for AIX, V16.1.0  (5725-C72, 5765-J12)
Version: 16.01.0000.0006

It fails in the harfbuzz build with :
    1500-004: (U) INTERNAL COMPILER ERROR while compiling OT::MarkBasePosFormat1::collect_variation_indices(hb_collect_variation_indices_context_t *) const. 
	Compilation ended.  Contact your Service Representative and provide the following information: GRARNN: gr29643 is used before it is defined. 
	For more information visit: http://www.ibm.com/support/docview.wss?uid=swg21110810

Sooner or later there might be a compiler fix.

Comments
Seems like this workaround is no longer needed after JDK-8258484.
24-03-2022

Changeset: 677802d2 Author: Christoph Langer <clanger@openjdk.org> Date: 2021-01-07 22:51:49 +0000 URL: https://git.openjdk.java.net/jdk/commit/677802d2
07-01-2021

Another way to get rid of the INTERNAL_COMPILER_ERROR without using low optimization level on LIBHARFBUZZ is to set the special compile flag "-qdebug=necan" for the lib. According to IBM xlc support : "-qdebug=necan effectively turns off an optimisation called "Early Re-canonizing". We don't expect much of a performance impact by turning it off." .
07-01-2021

Changeset: 3f9f86f0 Author: Matthias Baesken <mbaesken@openjdk.org> Date: 2021-01-07 12:39:44 +0000 URL: https://git.openjdk.java.net/jdk/commit/3f9f86f0
07-01-2021

The current workaround to get rid of the error is to lower the optimization level : diff --git a/make/modules/java.desktop/lib/Awt2dLibraries.gmk b/make/modules/java.desktop/lib/Awt2dLibraries.gmk index 7fbd1049f89..0a083c2eed8 100644 --- a/make/modules/java.desktop/lib/Awt2dLibraries.gmk +++ b/make/modules/java.desktop/lib/Awt2dLibraries.gmk @@ -475,6 +475,9 @@ else # LIBHARFBUZZ_OPTIMIZATION := HIGH + ifeq ($(call isTargetOs, aix), true) + LIBHARFBUZZ_OPTIMIZATION := LOW + endif LIBHARFBUZZ_CFLAGS += $(X_CFLAGS) -DLE_STANDALONE -DHEADLESS
16-12-2020