Building Cross Compiler and u-boot

Tim Kientzle tim at kientzle.com
Tue Mar 17 02:48:26 UTC 2015


You’re trying to use the cross-compiler for the native bits.

When building U-Boot, you should use:

   HOSTCC=cc

HOSTCC is a native compiler used to build a couple of U-Boot tools, including  gen_eth_addr.  Those tools are then used to process other pieces of U-Boot on the build machine.   The default is ‘gcc’ which only works if you have a native GCC installed.  Last I checked, the native bits did not actually require GCC, so just use ‘cc’ here.

  CROSS_COMPILE=arm-none-eabi-

This sets the prefix used to generate names for the various cross-tools.  With this setting, the build process will use arm-none-eabi-gcc, arm-none-eabi-ar, etc.  This can also be a path name or any other text.  There are also individual arguments for each program, but you probably won’t need to use those.

Tim


> On Mar 15, 2015, at 11:02 PM, Russell Haley <russ.haley at gmail.com> wrote:
> 
> Thanks Johny Mattsson, that's what I needed!
> 
> 
> root at Jailbird:/usr/uboot# gmake SED=gsed HOSTCC=arm-none-eabi-gcc
> CROSS_COMPILE=arm-none-eabi-   ccwmx53js_config
> Configuring a wireless module
> Configuring for ccwmx53 board...
> root at Jailbird:/usr/uboot#
> 
> 
> However:
> root at Jailbird:/usr/uboot# gmake SED=gsed HOSTCC=arm-none-eabi-gcc
> CROSS_COMPILE=arm-none-eabi-
> for dir in tools examples/standalone examples/api ; do gmake -C $dir
> _depend ; done
> gmake[1]: Entering directory '/usr/uboot/tools'
> gmake[1]: Nothing to be done for '_depend'.
> gmake[1]: Leaving directory '/usr/uboot/tools'
> gmake[1]: Entering directory '/usr/uboot/examples/standalone'
> gmake[1]: Nothing to be done for '_depend'.
> gmake[1]: Leaving directory '/usr/uboot/examples/standalone'
> gmake[1]: Entering directory '/usr/uboot/examples/api'
> gmake[1]: Nothing to be done for '_depend'.
> gmake[1]: Leaving directory '/usr/uboot/examples/api'
> gmake -C tools all
> gmake[1]: Entering directory '/usr/uboot/tools'
> arm-none-eabi-gcc  -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer
> -idirafter /usr/uboot/include -idirafter /usr/uboot/include2
> -idirafter /usr/uboot/include -I /usr/uboot/libfdt -I /usr/uboot/tools
> -DTEXT_BASE=0x77800000 -DUSE_HOSTCC -D__KERNEL_STRICT_NAMES -O   -o
> gen_eth_addr.o gen_eth_addr.c -c
> gen_eth_addr.c:24:19: fatal error: stdio.h: No such file or directory
> #include <stdio.h>
>                   ^
> compilation terminated.
> /usr/uboot/config.mk:218: recipe for target 'gen_eth_addr.o' failed
> gmake[1]: *** [gen_eth_addr.o] Error 1
> gmake[1]: Leaving directory '/usr/uboot/tools'
> Makefile:402: recipe for target 'tools' failed
> gmake: *** [tools] Error 2
> root at Jailbird:/usr/uboot#
> 
> My source is from here: https://github.com/rpaulo/uboot-ccwmx53-digi
> 
> 
> On Sun, Mar 15, 2015 at 9:01 PM, Russell Haley <russ.haley at gmail.com> wrote:
>> Hi Ian,
>> 
>> Sorry, I'm sure this is a newbie mistake, but I'm still getting gcc not found.
>> 
>> root at Jailbird:/usr/local/arm-none-eabi$ pkg install arm-none-eabi-gcc
>> Updating FreeBSD repository catalogue...
>> FreeBSD repository is up-to-date.
>> All repositories are up-to-date.
>> Checking integrity... done (0 conflicting)
>> The most recent version of packages are already installed
>> root at Jailbird:/usr/local/arm-none-eabi$ gcc
>> gcc: Command not found.
>> 
>> I'm not sure where it was installed?
>> root at Jailbird:/usr/local/arm-none-eabi/bin# ls
>> ar      as      ld      ld.bfd  nm      objcopy objdump ranlib  size    strip
>> 
>> 
>> 
>> 
>> On Sun, Mar 15, 2015 at 9:30 AM, Ian Lepore <ian at freebsd.org> wrote:
>>> On Sat, 2015-03-14 at 21:14 -0700, Russell Haley wrote:
>>>> Hello I am trying to build the cross compile tools and make u-boot.
>>>> 
>>>> Tim Kientzle spoke about two ways of getting cross compilers for
>>>> outside of building FreeBDS:
>>>> 
>>>> 1) make TARGET=arm TARGET_ARCH=armv6 buildenv
>>>> 
>>>> after a successful buildworld
>>>> 
>>>> 2)make xdev XDEV=arm XDEV_ARCH=armv6
>>>> 
>>>> I have struggled (and failed) to make either work. I checked out Rui
>>>> Paulos uboot fork to /usr/uboot.
>>>> 
>>>> 
>>>> 1)Using buildenv ->
>>> 
>>> The xdev way of building crosstools to build uboot is pretty much dead.
>>> Probably the best way forward is to use one of the existing u-boot ports
>>> such as sysutils/u-boot-wandboard, copy it and transform it into a port
>>> to build the flavor you need.  To save the time of building the port
>>> cross-compiler from scratch you can do "pkg install arm-none-eabi-gcc".
>>> 
>>> Are you working with the ConnectCore 6?  If so, the u-boot ports for
>>> wandboard or cubox-hummingboard are probably 99% ready, you may need to
>>> tweak the config file patch in the port.
>>> 
>>> -- Ian
>>> 
> _______________________________________________
> freebsd-arm at freebsd.org mailing list
> http://lists.freebsd.org/mailman/listinfo/freebsd-arm
> To unsubscribe, send any mail to "freebsd-arm-unsubscribe at freebsd.org"



More information about the freebsd-arm mailing list