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