JDK-8265417 : Backport of JDK-8249672 breaks Solaris x86 build
  • Type: Bug
  • Component: hotspot
  • Sub-Component: runtime
  • Affected Version: 11
  • Priority: P4
  • Status: Resolved
  • Resolution: Fixed
  • OS: solaris
  • CPU: x86
  • Submitted: 2021-04-19
  • Updated: 2021-05-05
  • Resolved: 2021-04-21
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 11
11.0.12 b01Fixed
Related Reports
Relates :  
Relates :  
Description
(created on behalf of Steffen Moser. Weirdly, his original mail to compiler-dev cannot be found on the mailing list archive).

Hi all,

I am new into JDK contribution/bug reporting, so I really hope I've
chosen the right way to report a bug - at least I could neither find a
possibility to register for openjdk.java.net nor did my Oracle SSO
account work on this site.

Bug report: In JDK-8249672, the microcode version of an x86 CPU was
added to the "features_string" printed in an hs_err_pidXXXXX log file.
As far as I know, it was introduced to JDK-16 and back-ported to both,
JDK-15 and JDK-11 last year. While Solaris support was (unfortunately)
abandoned in JDK-15, JDK-11 still supports and should further support
Solaris on both SPARC and x86 if my information is correct.

I desperately need JDK-11 (and probably newer versions of Java) in order
to run several modern open-source tools. When trying to compile JDK-11
on Solaris 11.4 SRU 31 on x86 according to [1] and [2], I run into the
following compile error problem:

    "./src/hotspot/cpu/x86/vm_version_x86.cpp", line 753: Error:
cpu_microcode_revision is not a member of os.
    1 Error(s) detected.

The reason is quite obvious. The method

    os::cpu_microcode_revision()

is not defined for the Solaris platform as JDK-8249672 does not alter

    src/hotspot/os_cpu/solaris_x86/os_solaris_x86.hpp
    src/hotspot/os_cpu/solaris_x86/os_solaris_x86.cpp

The question is: How should we fix it? Is it allowed to call Solaris'

    /usr/sbin/ucodeadm -v

and parse this binary's results or do we have to get the contents from
"/dev/ucode" (which seems to be the symlink to the pseudo-device
"/devices/pseudo/ucode@0:ucode" and is accessed by ucodeadm) manually?

Any help to make JDK 11 compiling on Solaris 11.4/x86 again would be
highly appreciated. Thank you very much in advance!

Kind regards,
Steffen

[1] https://blogs.oracle.com/solaris/building-openjdk-12-using-jdk-8
[2]
http://notallmicrosoft.blogspot.com/2020/04/building-openjdk-13-and-openjdk-14-on.html

Comments
URL: https://hg.openjdk.java.net/jdk-updates/jdk11u/rev/d40fd2234553 User: goetz Date: 2021-05-05 12:03:09 +0000
05-05-2021

O right, I forgot, sorry.
21-04-2021

11u pushes like this still require jdk11u-fix-request (as maintainer assent), please file one retroactively?
21-04-2021

URL: https://hg.openjdk.java.net/jdk-updates/jdk11u-dev/rev/d40fd2234553 User: stuefe Date: 2021-04-21 09:02:59 +0000
21-04-2021

This is a solaris-x64 specific fix.
21-04-2021