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: 2025-05-20
  • 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
[jdk11u-fix-request] Approval Request from Antonio Vieiro Please consider approving this backport from JDK17 that levels up HarfBuzz version with upper JDKs and improves drawing performance. This also allows building again on older gcc v4.8.5.
12-05-2025

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