JDK-8057934 : Upgrade to LittleCMS 2.6 breaks AIX build
  • Type: Bug
  • Component: client-libs
  • Sub-Component: 2d
  • Priority: P4
  • Status: Resolved
  • Resolution: Fixed
  • OS: aix
  • Submitted: 2014-09-09
  • Updated: 2017-01-11
  • Resolved: 2014-09-10
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 JDK 9 Other
8u40Fixed 9 b33Fixed openjdk7uFixed
Related Reports
Relates :  
The upgrade to LittleCMS 2.6 ("8056122: Upgrade JDK to LittleCMS 2.6") breaks the AIX build.

The problem is that the new LittleCMS now includes "pthread.h" in "lcms2_internal.h". Unfortunalty on AIX, "pthread.h" in turn includes "sys/proc.h" which uncoditionally defines a preprocessor constant "SNONE".

In "cmscgats.c" this preprocessor constant "SNONE" collides with the enum value "SONAME" from the SYMBOL enumaration.

THe only solution I see is to rename "SNONE" in "cmscgats.c" (i.e. to "SVOID"). Fortunately "SNONE" is only used locally in the file "cmscgats.c", so renaming it won't have any impact on other files.

Once this bug is fixed I'll report the problem upstream to LittleCMS and try to get the fix in there.
A fix has now been pushed to LittleCMS mainline. It renames SNONE to SUNDEFINED :- https://github.com/mm2/Little-CMS/commit/5bc4f52ff6b2090863d824827a871cd6274e36e4

Obviously, not too many people are building on AIX:)

I wondered if this has been fixed in the LCMS trunk, but as of today, it appears not.