Volker,

Patch for aot sources is tracked by:

8166415: Integrate AOT tool JAOTC
http://cr.openjdk.java.net/~kvn/aot/jaotc.webrev/

JAOTC code is in Hotspot, not in JDK, repo.

Vladimir

On 10/28/16 2:09 AM, Volker Simonis wrote:
On Fri, Oct 28, 2016 at 10:57 AM, Erik Joelsson
<erik.joels...@oracle.com> wrote:
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.

I'm fine with that. But then we shouldn't warn if we don't find
libelf. We should only warn, if '--enable-aot' was explicitly
requested by the user and if this request can't be fulfilled because
of the missing libelf dependency.

I also noticed that currently the configuration for AOT bails out
early, because it can not find the "aot src":

+  AC_MSG_CHECKING([if aot src is present])
+  if test -d "$HOTSPOT_TOPDIR/src/jdk.aot"; then
+    AC_MSG_RESULT([yes])

But I couldn't find the patch which provides
"$HOTSPOT_TOPDIR/src/jdk.aot". Should this read
"$HOTSPOT_TOPDIR/src/jdk.vm.compiler" which is the location where the
graal sources will be copied to (see RFR for "8166417: Graal-core into
JDK for AOT compiler")? Or is there yet another patch to come which
will provide "$HOTSPOT_TOPDIR/src/jdk.aot"?


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