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


Reply via email to