How to cross compile OpenJDK for Arm32?
chlict at gmail.com
Wed Dec 10 03:29:29 UTC 2014
Thanks a lot for sharing these! It seems a lot of efforts needed to cross-compiling OpenJDK (I do hope it could be easier :). A couple of more quick questions:
1) Is it same as OpenJDK 8? (I prefer 8 as it is the latest release, right?)
2) Is there any place that I can download prebuilt sysroot/rootfs? That would be great helpful.
3) Can you give me more hints on "bytecode generator tool" compilation? I'm not familiar with this..
Xerxes Rånby <xerxes at zafena.se>编写：
>Den 2014-12-09 10:27, Severin Gehwolf skrev:
>> On Mon, 2014-12-08 at 21:46 +1000, David Holmes wrote:
>>> On 8/12/2014 7:10 PM, ChenLong wrote:
>>>> Apologize if this is not the right place to ask.
>>>> I want to try OpenJDK8 on Armv7. Is there a guideline on how to cross compile OpenJDK8 for Armv7? And if not, could someone share some experiences? I went through the README-builds.html and did not find any clues for cross compiling.
>>> The only OpenJDK build for ARM would be a ZERO build. But I don't know
>>> how to do Zero builds - though I'm sure the Zero folk will chime in.
>> CC'ing zero-dev.
>when I cross-compile OpenJDK 9 for ARM32 I pass the following configure
># these options tell openjdk to do a cross compile build.
># these two options enable zero
># specific options to make the build find the X and freetype headers and
>librarys found on the ARM32 root filesystem.
># the sysroot shall point to the ARM32 root file system, the build will
>use librarys inside the sys root during linking native libraries.
># The tools dir contains binarys to run on the host x86 system, you may
>point this to your system root dir /
># in my case the tools i use have been compiled by buildroot thus I use
>the buildroot tools dir.
># OpenJDK 9 require OpenJDK 8, i point with boot jdk to an OpenJDK 8
>image that can be run on the host x86 system.
># some parts of the openjdk build still expect that the cross compile
>tools are found in the system PATH
># on my system i have to explicitly tell where the tools are located
>because my cross compile toolchain is not found on the path.
># i use gcc to do the linking instead of ld because the openjdk build
>passes -Xlinker -z
>when running make i pass the following options to make
># BUILD_CC and BUILD_LD shall point to host x86 executables.
>#and finally the target, this will build compact profiles, jre and jdk
>all images profiles CONF=linux-arm-normal-zero-release
>I have automated these configure and make options for openjdk 9 into
>buildroot build scripts
>> I've done Zero builds before but have never used OpenJDK's cross-compile
>> feature to build it on ARMv7. There is an Arm32 bit JIT in IcedTea,
>> but I don't know if that can be cross-compiled.
>If you cross compile icedtea then you need to make sure that the
>bytecode generator tool is compiled by the host x86 toolchain.
>openembedded meta-java contains buildscripts that can cross compile the
>Arm32 JIT found in IcedTea.
>>>> Chen Long
More information about the build-dev