RFR(M) 8166416: [AOT] Integrate JDK build changes and launcher 'jaotc' for AOT compiler
vladimir.kozlov at oracle.com
Fri Oct 28 07:56:38 UTC 2016
Webrevs updated in place (please, reload webpage to get new version).
generated-configure.sh changes are included.
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.
AOT modules dependencies moved to new module-info.java.extra.
And other changes suggested by Erik.
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:
>> hotspot.m4: 296: Comment is misleading. Should just be 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.
>> 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.
>> 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.
>>> 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.
More information about the build-dev