JDK-8148987 : [Linux] Allow building on older systems without CPU_ALLOC support
  • Type: Bug
  • Component: hotspot
  • Sub-Component: runtime
  • Affected Version: 9
  • Priority: P3
  • Status: Resolved
  • Resolution: Fixed
  • OS: linux
  • Submitted: 2016-02-03
  • Updated: 2016-03-03
  • Resolved: 2016-02-11
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.
9 b108Fixed
Related Reports
Relates :  
In JDK-6515172 code was added that allows for dynamic CPU_SET support for systems with > 1024 processors. While compiler/runtime support for this has been around for a few years now there is still some use of of older build platforms out in the broader OpenJDK community. This change will allow the CPU_ALLOC related code to be skipped if not supported at build time.

This change will also allow for a almost* direct backport to JDK 8u, where the official build platforms also do not support this feature.

* The logging statements will have to be changed or deleted.
Tested with current gcc 4.9 based devkit, and older gcc 4.8.3 based devkit (though the OS/glibc support is the key factor).

These older systems are also missing the CPU_COUNT macro so we have to define that too. The manual version has to iterate through the possible cpu positions, but we can limit this to the number of configured processors. The built-in version should be a more optimized bit-querying implementation so we use that if available.