[prev in list] [next in list] [prev in thread] [next in thread] 

List:       openjdk-build-dev
Subject:    Re: Error building openjdk 8 with buildroot
From:       David Holmes <david.holmes () oracle ! com>
Date:       2015-07-14 3:43:48
Message-ID: 55A48574.5070200 () oracle ! com
[Download RAW message or body]

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.
> ------------------------------------------------------------------------------------------------------------
>  


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic