crochet build fails at ubldr Wandboard-Dual
O'Connor, Daniel
darius at dons.net.au
Sun Apr 19 23:50:01 UTC 2015
> On 20 Apr 2015, at 08:41, Tim Kientzle <tim at kientzle.com> wrote:
>>>
>>> Crochet does use the standard build machinery; the only significant difference is that it builds ubldr separately after a successful buildworld. ...
>>
>> So maybe its truly a documentation issue since everyone is convinced crochet is correct. I didnt see that mentioned in the docs.
>>
> You’ve certainly encountered a problem but I don’t yet have enough information to say anything more. Certainly, Ian is right that you should not have to set LIBSTAND to make this work.
>
> Unfortunately, it will be at least a few days before I have a chance to try reproducing what you’re seeing. If you can reproduce it consistently, please let me know; I could work up some patches based on Ian’s suggestions and you could try them to see if they change anything.
>
> Another things to try: blow away Crochet’s work directory before you next rebuild. In particular, that will ensure that your world build and ubldr build are consistent with each other.
I had this issue also and worked around it by modifying the loader Makefiles to set LIBSTAND.
diff --git a/sys/boot/arm/uboot/Makefile b/sys/boot/arm/uboot/Makefile
index e0ea828..cbd173e 100644
--- a/sys/boot/arm/uboot/Makefile
+++ b/sys/boot/arm/uboot/Makefile
@@ -113,6 +113,8 @@ CFLAGS+= -I${.CURDIR}/../../../../lib/libstand/
# clang doesn't understand %D as a specifier to printf
NO_WERROR.clang=
+LIBSTAND= ${.OBJDIR}/../../../../lib/libstand/libstand.a
+
DPADD= ${LIBFICL} ${LIBUBOOT} ${LIBFDT} ${LIBUBOOT_FDT} ${LIBSTAND}
LDADD= ${LIBFICL} ${LIBUBOOT} ${LIBFDT} ${LIBUBOOT_FDT} -lstand
diff --git a/sys/boot/efi/loader/Makefile b/sys/boot/efi/loader/Makefile
index 5585f78..55b8673 100644
--- a/sys/boot/efi/loader/Makefile
+++ b/sys/boot/efi/loader/Makefile
@@ -29,6 +29,8 @@ SRCS= autoload.c \
.PATH: ${.CURDIR}/../../i386/libi386
.include "${.CURDIR}/arch/${MACHINE}/Makefile.inc"
+LIBSTAND= ${.OBJDIR}/../../../../lib/libstand/libstand.a
+
CFLAGS+= -I${.CURDIR}
CFLAGS+= -I${.CURDIR}/arch/${MACHINE}
CFLAGS+= -I${.CURDIR}/../include
I did it that way because I noticed some other loader Makfiles set LIBSTAND so I assumed it was removed incorrectly from the arm and uefi ones.
I nuked the work directory with no effect.
Crochet used the following command to build -
sudo env MAKEOBJDIRPREFIX=/src/arm/crochet/work/obj/arm.armv6 MACHINE_ARCH=armv6 MACHINE=arm CPUTYPE= GROFF_BIN_PATH=/src/arm/crochet/work/obj/arm.armv6/src/FreeBSD-HEAD/tmp/legacy/usr/bin GROFF_FONT_PATH=/src/arm/crochet/work/obj/arm.armv6/src/FreeBSD-HEAD/tmp/legacy/usr/share/groff_font GROFF_TMAC_PATH=/src/arm/crochet/work/obj/arm.armv6/src/FreeBSD-HEAD/tmp/legacy/usr/share/tmac _SHLIBDIRPREFIX=/src/arm/crochet/work/obj/arm.armv6/src/FreeBSD-HEAD/tmp _LDSCRIPTROOT= VERSION="FreeBSD 11.0-CURRENT armv6 1100069" INSTALL="sh /src/FreeBSD-HEAD/tools/install.sh" PATH=/src/arm/crochet/work/obj/arm.armv6/src/FreeBSD-HEAD/tmp/legacy/usr/sbin:/src/arm/crochet/work/obj/arm.armv6/src/FreeBSD-HEAD/tmp/legacy/usr/bin:/src/arm/crochet/work/obj/arm.armv6/src/FreeBSD-HEAD/tmp/legacy/bin:/src/arm/crochet/work/obj/arm.armv6/src/FreeBSD-HEAD/tmp/usr/sbin:/src/arm/crochet/work/obj/arm.armv6/src/FreeBSD-HEAD/tmp/usr/bin:/sbin:/bin:/usr/sbin:/usr/bin CC="cc " CXX="c++ " DEPFLAGS="" CPP="cpp " AS="as" AR="ar" LD="ld" NM=nm OBJDUMP=objdump OBJCOPY="objcopy" RANLIB=ranlib STRINGS= SIZE="size" make UBLDR_LOADADDR=0x88000000 -m /src/FreeBSD-HEAD/share/mk all
Adding LIBSTAND=/src/arm/crochet/work/obj/arm.armv6/src/FreeBSD-HEAD/lib/libstand/libstand.a made it work, so I then modified the makefiles.
(I was the person who reported it on IRC :)
--
Daniel O'Connor
"The nice thing about standards is that there
are so many of them to choose from."
-- Andrew Tanenbaum
GPG Fingerprint - 5596 B766 97C0 0E94 4347 295E E593 DC20 7B3F CE8C
More information about the freebsd-arm
mailing list