On 2016-10-27 20:18, Doug Simon wrote:
On 27 Oct 2016, at 20:12, Vladimir Kozlov <vladimir.koz...@oracle.com> wrote:
On 10/27/16 10:55 AM, Christian Thalinger wrote:
On Oct 27, 2016, at 2:40 AM, Erik Joelsson <erik.joels...@oracle.com> wrote:
On 2016-10-27 02:45, Vladimir Kozlov wrote:
AOT JEP:
https://bugs.openjdk.java.net/browse/JDK-8166089
Subtask:
https://bugs.openjdk.java.net/browse/JDK-8166416
Webrev:
http://cr.openjdk.java.net/~kvn/aot/top.webrev/
hotspot.m4: 296: Comment is misleading. Should just be removed.
CompileJavaModules.gmk: Use of -g flag for java compilation is controlled
globally. Please remove.
There is a reason for that. Some debugging related Graal code makes use of
classfile information to provide better information. Since this is Java and
not C++ it *is* possible to have pleasant debugging experience even in product
builds. I want this to be there.
Chris, do we need -g for JVMCI module too for that?
I’m assuming Chris is referring to the use of debug info for snippet parameter
names:
https://github.com/graalvm/graal-core/blob/7c94891d06f08a635367df6078696b9388332f3b/graal/com.oracle.graal.replacements/src/com/oracle/graal/replacements/SnippetTemplate.java#L191
For that use case, -g is not necessary for JVMCI. That said, I think it’s
always useful for Java code to be compiled with -g ;-)
I'm sure most people do. To my knowledge, -g is disabled by default for
footprint reasons in the JRE. This has been up for discussion before and
I think the conclusion was that ideally we want -g in the JDK image but
not in the JRE image. That has not been possible before (without
compiling everything twice), but maybe jlink is able to strip the debug
info from java classes now? In that case we could consider globally
enabling -g for product builds.
For now if you have a special case for needing -g on specific modules,
at the very least provide a comment explaining why. Otherwise it will
just be cleaned away in the future.
/Erik
-Doug
Main.gmk: buildtools-hotspot should be declared inside the CREATING_BUILDJDK
conditional like all other buildtools targets.
http://cr.openjdk.java.net/~kvn/aot/jdk.webrev/
The extra exports from java.base needs to go in a new
jdk/src/java.base/share/classes/module-info.java.extra since the module
jdk.vm.compiler is optional.
http://cr.openjdk.java.net/~kvn/aot/hs.make.webrev/
Lib-jdk.aot.gmk: Please inline LDFLAGS and LIBS and add $(LIBS_JDKLIB) to LIBS
since that will provide -lc on Solaris automatically. No need to set
DEBUG_SYMBOLS or STRIP_SYMBOLS as the defaults should be correct and controlled
globally.
/Erik
Please, review build changes for AOT. Only Linux/x64 platform is supported.
'jaotc' and AOT part of Hotspot will be build only on Linux/x64.
Changes include new 'jaotc' launcher, makefile changes to build jdk.vm.compiler
(Graal) and jdk.aot modules used by 'jaotc'.
Both modules sources are located in Hotspot: hotspot/src/jdk.aot and
hotspot/src/jdk.vm.compiler.
'jaotc' requires installed libelf package on a system to build native part of
'jaotc'. It is used to generated AOT shared libraries (.so) as result of AOT
compilation.
Hotspot makefile changes will be pushed together with Hotspot AOT changes.
Thanks,
Vladimir