Hi,

could somebody please review the following change and create an appropriate
Bug ID for it:

http://cr.openjdk.java.net/~simonis/webrevs/linux_ppc_build_top/

The change will enable to build the PowerPC/AIX port on Linux/PPC64 with
the new build system using an interpreter only VM using the C++
interpreter. Therefore it introduces a new JVM variant called "core" which
enables an interpreter only build and a new configure option called
"--with-jvm-interpreter" which can be used to choose either the default
"template" interpreter or the "C++" interpreter.

Notice that this 'core' build currently only works on Linux/PPC64 and it is
used for the PowerPC/AIX porting project to bootstrap its build. (See 8016476:
PPC64 (part 1): reenable CORE
build<http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=8016476>for
the corresponding HotSpot change).

Once we have all the required patches in the HotSpot repository (and the
small JDK changes from
http://cr.openjdk.java.net/~simonis/webrevs/linux_ppc_build_jdk), building
on newer Linux distros like Fedora 17 will be as easy as:

sh /priv/openjdk/OpenJDK/ppc-aix-port/jdk8/configure
--with-boot-jdk=/priv/openjdk/OpenJDK/openjdk1.7.0-ppc-aix-port-b03
--with-jvm-variants=core --with-jvm-interpreter=cpp
--with-debug-level=slowdebug

make images LOG=debug

On older releases like SLES 10 you'll have to use something like:

sh /priv/openjdk/OpenJDK/ppc-aix-port/jdk8/configure --with-boot-jdk=
/priv/openjdk/OpenJDK/openjdk1.7.0-ppc-aix-port-b03--with-jvm-variants=core
--with-jvm-interpreter=cpp--with-debug-level=release
--with-extra-cflags=-m64
--with-extra-cxxflags=-m64 --with-extra-ldflags='-m64 -L/lib64'
--x-libraries=/usr/X11R6/lib64 --x-includes=/usr/X11R6/include CFLAGS=-m64
CXXFLAGS=-m64

make images LOG=debug

The extra options and flags are mainly necessary because the GCC on the
latter platform produces 32-bit binaries by default. Notice that the
environment variables "CFLAGS=-m64 CXXFLAGS=-m64" are necessary for the
configure script itself to detect the correct 64-bit platform while the
configure options like "--with-extra-cflags" are needed in order to select
the right flags for the build.

Following some more detailed descriptions of the change:
common/autoconf/boot-jdk.m4

Linux/PPC64 needs a slightly bigger heap for the huge JDK batch. Treat it
like MacOS which uses '-Xmx1600M'.
common/autoconf/configure.ac
common/autoconf/hotspot-spec.gmk.in
common/autoconf/jdk-options.m4

Add --with-interpreter option to configure which can be used th choose one
of the 'template' or the 'C++' interpreter. Default is the 'template'
interpreter.
common/autoconf/jdk-options.m4
common/autoconf/spec.gmk.in
make/hotspot-rules.gmk

Add JVM variant 'core' to configure which can be used th choose the HotSpot
'core' (i.e. 'interpreter only') build. Notice that this 'core' build
currently only works on Linux/PPC64 and it is used for the PowerPC/AIX
porting project to bootstrap its build. (See 8016476: PPC64 (part 1):
reenable CORE 
build<http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=8016476>for
the corresponding HotSpot change).

We currently also don't build the serviceability agent on PPC64.
common/autoconf/libraries.m4

Older Linuxes (e.g. SLES 10) may still have the X11R6 directory but also a
symlink from /usr/include/X11 to ../X11R6/include/X11 so we need to check
for the X11R6 directory AFTER we checked for /usr/include/X11
Thank you and best regards,
Volker

Reply via email to