Hello,
On 2016-10-28 09:56, Vladimir Kozlov wrote:
Webrevs updated in place (please, reload webpage to get new version).
generated-configure.sh changes are included.
http://cr.openjdk.java.net/~kvn/aot/top.webrev/
http://cr.openjdk.java.net/~kvn/aot/jdk.webrev/
http://cr.openjdk.java.net/~kvn/aot/hs.make.webrev/
libelfshim generation is guarded by ENABLE_AOT as Volker suggested.
I did not figure out how switch off ENABLE_AOT if libelf not found. So
I changed warning to configuration error:
error: libelf not found, cannot build AOT. Disable AOT build:
--enable-aot=no. You might be able to fix this by running 'sudo yum
install elfutils-libelf-devel'.
Which is not correct since AOT build is enabled by default on
linux-x64. Need help with this.
I think it should be fine moving HOTSPOT_SETUP_JVM_FEATURES to after
LIB_SETUP_LIBRARIES in configure.ac. (Note that many of these calls are
just ordered as they happened to be, though some really need to be
before or after others. I cannot find a reason for these two.) Then you
can enable/disable AOT after looking for libelf. It depends on what kind
of behavior you want.
If libelf isn't commonly installed, then having configure use it, and
enable AOT if it is, and semi silently just disabling AOT if it's not is
fine. We can define our Oracle builds to explicitly set --enable-aot to
get an early fail on a missing dependency. That's inline with current
configure behavior so I like that.
Another note. We usually use the style --disable-<feature> rather than
--enable-<feature>=no when referring to configure options.
/Erik
AOT modules dependencies moved to new module-info.java.extra.
And other changes suggested by Erik.
Thanks,
Vladimir
On 10/27/16 11:41 AM, Vladimir Kozlov wrote:
Thank you, Erik
On 10/27/16 5:40 AM, Erik Joelsson 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.
Removed.
CompileJavaModules.gmk: Use of -g flag for java compilation is
controlled globally. Please remove.
See Chris comment on this. We want to have JAOTC java debug
information for debugging in product builds.
Main.gmk: buildtools-hotspot should be declared inside the
CREATING_BUILDJDK conditional like all other buildtools targets.
Done.
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.
Done.
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.
Like this?:
LDFLAGS := $(LDFLAGS_JDKLIB), \
LIBS := $(ELF_LIBS) $(LIBS_JDKLIB), \
No need to set DEBUG_SYMBOLS or STRIP_SYMBOLS as the defaults should
be correct and controlled globally.
Done.
Thanks,
Vladimir
/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