crochet build fails at ubldr Wandboard-Dual
Tim Kientzle
tim at kientzle.com
Sun Apr 19 20:50:27 UTC 2015
>>>
>>> Somebody reported this on IRC yesterday as well, but I can't reproduce
>>> it here. I don't use crochet, so it must be doing something a bit
>>> different to end up with the lib from /usr instead of the local one in
>>> objdir. There should be no need to set LIBSTAND externally.
>>>
>>
>> Thanks for the reply. Unfortunately I missed the discussion on IRC.
>>
>> I suppose I'll have to backtrack through and find out where it
>> _should_ be set to solve the problem. (?) For now, the workaround gets
>> the build to finish.
>>
>
> It shouldn't be set anywhere, it should just work. That's kind of my
> point... my build process is just the standard "make buildworld
> TARGET_ARCH=armv6hf UBDLR_ADDR=<whatever>" and it just works. I don't
> know what crochet is doing differently (and you only included a fragment
> of the build log that didn't include the command used to start the
> build).
>
Crochet does use the standard build machinery; the only significant difference is that it builds ubldr separately after a successful buildworld. Building ubldr separately allows it to reuse the buildworld results when building for multiple boards with the same TARGET_ARCH but varying UBLDR_LOADADDR.
The detailed logic is in lib/freebsd.sh, I’ve pasted it below (with a few variables substituted in and some error checking removed to clarify):
cd ${FREEBSD_SRC}
ubldr_makefiles=${FREEBSD_SRC}/share/mk
buildenv=`make TARGET_ARCH=$TARGET_ARCH buildenvvars`
cd ${FREEBSD_SRC}/sys/boot
eval $buildenv make UBLDR_LOADADDR=0x11000000 -m $ubldr_makefiles obj
eval $buildenv make UBLDR_LOADADDR=0x11000000 -m $ubldr_makefiles clean
eval $buildenv make UBLDR_LOADADDR=0x11000000 -m $ubldr_makefiles depend
eval $buildenv make UBLDR_LOADADDR=0x11000000 -m $ubldr_makefiles all
cd arm/uboot
eval $buildenv make UBLDR_LOADADDR=0x11000000 DESTDIR=${UBLDR_DIR}/ BINDIR=boot NO_MAN=true -m $ubldr_makefiles install
The last bit here is just a way to get the FreeBSD makefiles to copy the built executable to a known location (otherwise, Crochet has to reproduce the FreeBSD build system logic for determining which objdir layout to use).
Cheers,
Tim
More information about the freebsd-arm
mailing list