Further investigation revealed that this "error" was actually just a
warning being upgraded to error by -errwarn. The warning is only
activated by +w, which is turned on for adlc but not for the rest of the
hotspot build. Based on this, I have revised my proposal to just
disabling this warning for adlc and the particular compiler version.
Webrev: http://cr.openjdk.java.net/~erikj/8134157/webrev.01/
/Erik
On 2015-08-26 05:21, David Holmes wrote:
On 26/08/2015 4:13 AM, Kim Barrett wrote:
On Aug 25, 2015, at 10:27 AM, Erik Joelsson
<erik.joels...@oracle.com> wrote:
Hello,
We are working towards upgrading the officially supported compilers
for JDK 9 and on Solaris, the proposed new compiler is Solaris
Studio 12 update 4. When attempting to build with that compiler, the
hotspot build fails very early with:
"/opt/jprt/jprtadm/erik/jdk9-dev/hotspot/src/share/vm/adlc/adlparse.cpp",
line 2331: Error: Could not find source for
RegisterForm::addRegClass<RegClass>(const char*).
This can be worked around by adding -template=extdef to the compiler
flags. I propose we add this just when compiling adlc and for this
particular version of Solaris Studio. See bug for further discussion
of the issue.
Bug: https://bugs.openjdk.java.net/browse/JDK-8134157
Webrev: http://cr.openjdk.java.net/~erikj/8134157/webrev/
/Erik
I don’t think we should make this change.
Agreed. The need for the change makes no sense as nothing has changed:
the code hasn't changed and the use of this flag has not changed.
Hence this seems to be a compiler issue.
David
----
I think a better alternative than mixing different -template options
would be to change adlc to use the “include model” for template
usage, as discussed in comments in the bug report.
Also as discussed in the bug report, I don’t think we fully
understand the problem, since there appears to be other code in
hotspot that looks very similar and seemingly ought to run into the
same problem. If only changing adlc as described doesn’t trip over
the same problem with that other code, then I don’t think we actually
understand the problem yet, and can’t evaluate proposed solutions.