Error building openjdk 8 with buildroot
David Holmes
david.holmes at oracle.com
Tue Jul 14 03:43:48 UTC 2015
On 14/07/2015 12:19 AM, GAUVIN Florian wrote:
> Hi,
> I'm trying to build openjdk8 with buildroot but I have this error :
> "
> checking for java in Boot JDK... ok
> checking for javac in Boot JDK... ok
> checking for javah in Boot JDK... ok
> checking for javap in Boot JDK... ok
> checking for jar in Boot JDK... ok
> checking for rmic in Boot JDK... ok
> checking for native2ascii in Boot JDK... ok
> checking flags for boot jdk java command ...
> checking flags for boot jdk java command for big workloads... -Xms64M -Xmx1600M -XX:ThreadStackSize=1536 -XX:PermSize=32m -XX:MaxPermSize=160m
> checking flags for boot jdk java command for small workloads... -XX:+UseSerialGC -Xms32M -Xmx512M
> checking for jtreg... no
> checking for cl... no
> checking for cc... /usr/bin/cc
> configure: Resolving BUILD_CC (as /usr/bin/cc) failed, using /usr/bin/cc directly.
> checking for cl... no
> checking for CC... no
> checking for g++... /usr/bin/g++
> configure: Resolving BUILD_CXX (as /usr/bin/g++) failed, using /usr/bin/g++ directly.
> checking for ld... /usr/bin/ld
> configure: Resolving BUILD_LD (as /usr/bin/ld) failed, using /usr/bin/ld directly.
> checking for /home/student/Documents/buildroot-openjdk8-min/output/host/usr/bin/x86_64-buildroot-linux-gnu-gcc... no
> checking for /home/student/Documents/buildroot-openjdk8-min/output/host/usr/bin/x86_64-buildroot-linux-gnu-gcc... no
> configure: error: Could not find a C compiler. You might be able to fix this by running 'sudo yum groupinstall "Development Tools"'.
> configure exiting with result code 1
There is a known bug that configure only looks for gcc/g++ named
binaries not ones that may be prefixed with a the devkit names eg:
x86_64-buildroot-linux-gnu-gcc
A workaround is to create symlinks for gcc/g++
David
> make: *** [/home/student/Documents/buildroot-openjdk8-min/output/build/openjdk-jdk8u60-b22/.stamp_configured] Error 1
> "
> I don't understand why because the path to x86_64-buildroot-linux-gnu-gcc is the good one so the checking should be successful. Do you have an idea why?
>
> Here are all the steps that I have followed to build openjdk with buildroot :
>
> 1. If docker is already installed on your pc go to the next steps, other go to this website : https://docs.docker.com/userguide/, click on the install tab, choose your distribution and follow the steps.
>
> 2. In the terminal, go to the directory where you want to have buildroot and and run this command : git clone https://github.com/cranby/rpi-buildroot/ --branch openjdk
>
> 3. In rpi-buildroot/package/jamvm/jamvm.mk erase the following line : --without pic \
>
> 4. In rpi-buildroot/package/openjdk delete the patches (otherwise there is errors patching)
>
> 5. In rpi-buildroot/package/openjdk/openjdk.mk :
>
> a. In order to avoid linking problems with libffi, add the following lines after OPENJDK_PROJECT :
> export LIBBFFI_CFLAGS=-I/$(HOST_DIR)/usr/x86_64-linux-gnu/include
> export LIBBFFI_CFLAGS=-L/$(HOST_DIR)/usr/x86_64-linux-gnu/sysroot/usr/lib/ -lffi
>
> b. To avoid missing headers of X11, in OPENJDK_CONF_OPT, add the following line :
> --disable-headful
>
> c. In OPENJDK_MAKE_OPT, change "all images pofiles" by "profiles", because we want only the compact profiles of openjdk
> and just after in CONF change "linux-arm-normal-zero-release" by "linux-x86_64-normal-zero-release"
>
> d. In OPENJDK_DEPENDENCIES, add the following dependencies
> libffi cups freetype xlib_libXrender xlib_libXt xlib_libXext xlib_libXtst libusb
>
> e. There is three compact run time environment for openjdk,
> On the following website you can see what are these run time environments and choose which one you need : http://openjdk.java.net/jeps/161
> At the end of the file, in OPENJDK_INSTALL_TARGET_CMDS, add the two following lines replacing the X by the 2 compact profiles that you don't need :
> rm -f -r $(TARGET_DIR)/usr/lib/jvm/j2re-comapctX-image
> rm -f -r $(TARGET_DIR)/usr/lib/jvm/j2re-comapctX-image
>
> f. Change the version of openjdk :
> #Version is the same as OpenJDK HG tag
> OPENJDK_VERSION = jdk8u60-b22
> #Release is the same as
> OPENJDK_RELEASE = jdk8u60
> OPENJDK_PROJECT = jdk8u
>
> #OPENJDK_VERSION = jdk9-b36
> #OPENJDK_RELEASE = m2
> #OPENJDK_PROJECT = jigsaw
>
> 6. In the terminal, in the directory rpi-buildroot, run the following command : make menuconfig
>
> 7. Select the following options : (This are the options that I have chosen for the INAETICS project but you can choose others target architecture, c library or target packages but you have to enable openjdk )
>
> Target options
> Target Architecture : x86_64
> Target Architecture Variant : atom
> Toolchain
> C library : glibc
> Enable C++ support
> Target Packages
> Interpreter languages and scripting
> openjdk : y
> Libraries
> Audio/Sound
> alsa-lib : y
>
> 8. Escape and save the changes
>
> 9. Launch the build, run the command : make
>
> Regards,
> Florian GAUVIN
>
>
> ------------------------------------------------------------------------------------------------------------
> Disclaimer:
>
> If you are not the intended recipient of this email, please notify the sender and
> delete it.
> Any unauthorized copying, disclosure or distribution of this email or its
> attachment(s) is forbidden.
> Thales Nederland BV will not accept liability for any damage caused by this email or
> its attachment(s).
> Thales Nederland BV is seated in Hengelo and is registered at the Chamber of
> Commerce under number 06061578.
> ------------------------------------------------------------------------------------------------------------
>
More information about the build-dev
mailing list