[9] RFR(M) 8166416: [AOT] Integrate JDK build changes and launcher 'jaotc' for AOT compiler

Vladimir Kozlov vladimir.kozlov at oracle.com
Thu Oct 27 18:05:19 UTC 2016


Done as you suggested. I will update webrevs later.

One problem left. How to switch off ENABLE_AOT if we can't build libjelfshim.so (libelf not found or wrong version)?

ENABLE_AOT and JVM_FEATURES_server are defined before LIBJELFSHIM_ENABLED is defined.

Can I reset ENABLE_AOT (based on LIBJELFSHIM_ENABLED) in make/common/Modules.gmk (where AOT modules filtered out)?

http://cr.openjdk.java.net/~kvn/aot/top.webrev/make/common/Modules.gmk.udiff.html

Thanks,
Vladimir

On 10/27/16 8:45 AM, Volker Simonis wrote:
> On Thu, Oct 27, 2016 at 2:22 PM, Volker Simonis
> <volker.simonis at gmail.com> wrote:
>> Hi,
>>
>> currently libelf support is checked on every 64-bit Linux and Solaris
>> platform (see lib-elf.m4):
>>
>>    if ((test "x$OPENJDK_TARGET_OS" = "xlinux" \
>>         || test "x$OPENJDK_TARGET_OS" = "xsolaris") && \
>>        (test "x$OPENJDK_TARGET_CPU_BITS" = "x64")); then
>>      LIBJELFSHIM_ENABLED="true"
>>    else
>>      LIBJELFSHIM_ENABLED="false"
>>    fi
>>
>> As far as I understand, this is only required for AOT and should
>> therefore only be checked for if AOT is enabled. We could do something
>> similar like for FFI (see libraries.m4):
>>
>>    # Check if ffi is needed
>>    if HOTSPOT_CHECK_JVM_VARIANT(zero) ||
>> HOTSPOT_CHECK_JVM_VARIANT(zeroshark); then
>>      NEEDS_LIB_FFI=true
>>    else
>>      NEEDS_LIB_FFI=false
>>    fi
>>
>> And then test for "NEEDS_LIB_JELFSHIM" in lib-elf.m4 instead of
>> testing for a specific platform.
>>
>> Otherwise we get ugly warning like:
>>
>> WARNING: Could not find libelf!  Not building libjelfshim.so
>>
>
> And I think in the case where we compile for AOT, we should print the
> usual, platform-dependent hints like for example:
>
> libelf.so not found: try  to run 'sudo apt-get install libelf-dev'
>
>> during configuration if we are running on platforms without AOT
>> support or if AOT support is switched of.
>>
>> Regards,
>> Volker
>>
>>
>>
>> On Thu, Oct 27, 2016 at 2:45 AM, Vladimir Kozlov
>> <vladimir.kozlov at oracle.com> 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/
>>> http://cr.openjdk.java.net/~kvn/aot/jdk.webrev/
>>> http://cr.openjdk.java.net/~kvn/aot/hs.make.webrev/
>>>
>>> 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


More information about the hotspot-dev mailing list