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