[U-Boot] recent tools on FreeBSD

Simon Glass sjg at chromium.org
Sat Feb 7 22:02:30 CET 2015


Hi Jeroen,

On 7 February 2015 at 13:17, Jeroen Hofstee <jeroen at myspectrum.nl> wrote:
> Hello Simon,
>
> On 07-02-15 16:10, Simon Glass wrote:
>>
>> On 7 February 2015 at 03:04, Jeroen Hofstee <jeroen at myspectrum.nl> wrote:
>>>
>>>
>>>
>>> I am missing the point, u-boot and its tools build fine until
>>> v2015.04-rc1
>>> on FreeBSD and a mac. And this is easily fixed by not using linker magic
>>> for tools. (and yes sandbox likely fails to build, but I don't care that
>>> much)
>>
>> How do you build U-Boot for any of the boards supported? What I mean
>> is that if you can't handle linker scripts in FreeBSD how do you build
>> anything beyond the 'tools' build?
>
>
> FreeBSD host ld can handle linker scripts fine, it is INSERT BEFORE .data;
> which is not supported. Boards don't use the host linker script, but one for
> the target, which comes from ports and hence is not that old e.g.
>
> arm-gnueabi-freebsd-ld --version
> GNU ld (GNU Binutils) 2.25
> Copyright (C) 2014 Free Software Foundation, Inc.
> This program is free software; you may redistribute it under the terms of
> the GNU General Public License version 3 or (at your option) a later
> version.
> This program has absolutely no warranty.
>
> Besides that, boards don't use INSERT before .data, since they have a
> complete
> linker script.
>
>
>> The docs for 'ld' seem to indicate that if the -T option is not used
>> the file is treated as a link script addendum rather than replacing it
>> entirely. Is that what we want?
>
>
> FreeBSD ld has this option, it does not work on a MAC/Darwin though
> according to Andreas his post. The problem on FreeBSD is the INSERT before
> .data
> inside the "addendum" aka tools/imagetool.lds

Do you need INSERT BEFORE or would it just work to specify the .lds
fragment on the ld command line without -T?

>
>>>> Finally, please point me to how I can install FreeBSD in viritualbox
>>>> or similar. I'm interested in that...
>>>
>>>
>>> Just download an install image and start it in virtualbox, see 1.
>>> You might need to change the motherboard type.
>>>
>>> doc/README.clang explains how to use the host compiler to cross build
>>> u-boot (for some boards). You can install a gcc cross compiler as well.
>>>
>>> [1] https://www.freebsd.org/releases/10.1R/announce.html
>>>
>> I tried this out and I have a prompt but I'm not sure how to install
>> git or anything else 'pkg install git' tells me there are no packages
>> available to install matching 'git'. pkg_add seems to be missing. I am
>> none the wiser after some web searching.
>
>
> pkg replaced the pkg_add / pkg_info and friends. So it is fine that they
> are not there. The weird thing is I just booted 10.1 in virtualbox to
> reproduce
> this but works fine (just defaults everywhere), I roughly did [1]. Obviously
> you
> need root credentials to install packages, but I doubt you forgot that.

I may as well press on and figure this out.

I tried again and this time it is fine. Last time I tried to install
system documentation and source code, and it tried to install the
package manager but maybe it failed and then put things in a broken
state. Thanks for the help.

>
> If this still fails, you can always build it from source, but needs a bit of
> patience.
> Somthing like this should always work:
>
> portsnap fetch
> portsnap extract
>
> cd /usr/ports/devel/git
> make config-recursive
> make
> make install
>
> Let me know if you still have issues.
>
> Regards,
> Jeroen
>
>
> [1] (as root)
>
> pkg install nano git
> git clone git://git.denx.de/u-boot.git
> git checkout v2015.01 -b b2015.01
> cd u-boot
> pkg install arm-gnueabi-binutils gmake
>
> gmake CC="clang -target arm-freebsd-eabi -no-integrated-as -mllvm
> -arm-use-movt=0" rpi_defconfig
> gmake CROSS_COMPILE=arm-gnueabi-freebsd- CC="clang -target arm-freebsd-eabi
> -no-integrated-as -mllvm -arm-use-movt=0
> -B/usr/local/bin/arm-gnueabi-freebsd-" CONFIG_USE_PRIVATE_LIBGCC=y
>

Is this for using an ARM cross-compiler? What should I do for building
the tools? I keep seeing 'gcc not found'.

Regards,
Simon


More information about the U-Boot mailing list