
Hello Simon,
On 07-02-15 16:10, Simon Glass wrote:
On 7 February 2015 at 03:04, Jeroen Hofstee jeroen@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
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.
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.
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