Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 20 Apr 2015 09:14:35 +0930
From:      "O'Connor, Daniel" <darius@dons.net.au>
To:        Tim Kientzle <tim@kientzle.com>
Cc:        Waitman Gobble <gobble.wa@gmail.com>, freebsd-arm <freebsd-arm@freebsd.org>, Ian Lepore <ian@freebsd.org>
Subject:   Re: crochet build fails at ubldr Wandboard-Dual
Message-ID:  <A6E50B78-8694-4984-8984-12479303361E@dons.net.au>
In-Reply-To: <32B72D5A-742C-4B58-AD65-EA33B306D30C@kientzle.com>
References:  <CAFuo_fy5tPjQDbtuSwcBEt4UMuu2tv8zRLLwBrpZPUGcyEMKEA@mail.gmail.com> <CAFuo_fx6Ztb2Rn8dPmZ3HBJniChvkZX54qmF_oaA87LJeHCFFQ@mail.gmail.com> <1429456908.1182.82.camel@freebsd.org> <CAFuo_fzHtCF6F%2B%2BUGqSdhzvbkTjxRtoT8sXFKV%2BCr4UpsGmymQ@mail.gmail.com> <1429458041.1182.86.camel@freebsd.org> <1CA4192E-F6B5-4BD8-8BF8-8F725E1EC7BA@kientzle.com> <CAFuo_fx-uqfThQhutvZugAK16HjY2sxtegRcGydkLu0Si_h6uQ@mail.gmail.com> <32B72D5A-742C-4B58-AD65-EA33B306D30C@kientzle.com>

next in thread | previous in thread | raw e-mail | index | archive | help

> On 20 Apr 2015, at 08:41, Tim Kientzle <tim@kientzle.com> wrote:
>>>=20
>>> Crochet does use the standard build machinery; the only significant =
difference is that it builds ubldr separately after a successful =
buildworld.  ...
>>=20
>> So maybe its truly a documentation issue since everyone is convinced =
crochet is correct. I didnt see that mentioned in the docs.
>>=20
> You=E2=80=99ve certainly encountered a problem but I don=E2=80=99t yet =
have enough information to say anything more.  Certainly, Ian is right =
that you should not have to set LIBSTAND to make this work.
>=20
> Unfortunately, it will be at least a few days before I have a chance =
to try reproducing what you=E2=80=99re seeing.  If you can reproduce it =
consistently, please let me know; I could work up some patches based on =
Ian=E2=80=99s suggestions and you could try them to see if they change =
anything.
>=20
> Another things to try:  blow away Crochet=E2=80=99s 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+=3D    -I${.CURDIR}/../../../../lib/libstand/
 # clang doesn't understand %D as a specifier to printf
 NO_WERROR.clang=3D

+LIBSTAND=3D      ${.OBJDIR}/../../../../lib/libstand/libstand.a
+
 DPADD=3D         ${LIBFICL} ${LIBUBOOT} ${LIBFDT} ${LIBUBOOT_FDT} =
${LIBSTAND}
 LDADD=3D         ${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=3D autoload.c \
 .PATH: ${.CURDIR}/../../i386/libi386
 .include "${.CURDIR}/arch/${MACHINE}/Makefile.inc"

+LIBSTAND=3D      ${.OBJDIR}/../../../../lib/libstand/libstand.a
+
 CFLAGS+=3D       -I${.CURDIR}
 CFLAGS+=3D       -I${.CURDIR}/arch/${MACHINE}
 CFLAGS+=3D       -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 -=20
sudo env MAKEOBJDIRPREFIX=3D/src/arm/crochet/work/obj/arm.armv6 =
MACHINE_ARCH=3Darmv6 MACHINE=3Darm CPUTYPE=3D =
GROFF_BIN_PATH=3D/src/arm/crochet/work/obj/arm.armv6/src/FreeBSD-HEAD/tmp/=
legacy/usr/bin =
GROFF_FONT_PATH=3D/src/arm/crochet/work/obj/arm.armv6/src/FreeBSD-HEAD/tmp=
/legacy/usr/share/groff_font =
GROFF_TMAC_PATH=3D/src/arm/crochet/work/obj/arm.armv6/src/FreeBSD-HEAD/tmp=
/legacy/usr/share/tmac =
_SHLIBDIRPREFIX=3D/src/arm/crochet/work/obj/arm.armv6/src/FreeBSD-HEAD/tmp=
 _LDSCRIPTROOT=3D VERSION=3D"FreeBSD 11.0-CURRENT armv6 1100069" =
INSTALL=3D"sh /src/FreeBSD-HEAD/tools/install.sh" =
PATH=3D/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:/s=
rc/arm/crochet/work/obj/arm.armv6/src/FreeBSD-HEAD/tmp/usr/sbin:/src/arm/c=
rochet/work/obj/arm.armv6/src/FreeBSD-HEAD/tmp/usr/bin:/sbin:/bin:/usr/sbi=
n:/usr/bin CC=3D"cc " CXX=3D"c++ " DEPFLAGS=3D"" CPP=3D"cpp " AS=3D"as" =
AR=3D"ar" LD=3D"ld" NM=3Dnm OBJDUMP=3Dobjdump OBJCOPY=3D"objcopy" =
RANLIB=3Dranlib STRINGS=3D SIZE=3D"size" make UBLDR_LOADADDR=3D0x88000000 =
-m /src/FreeBSD-HEAD/share/mk all=20

Adding =
LIBSTAND=3D/src/arm/crochet/work/obj/arm.armv6/src/FreeBSD-HEAD/lib/libsta=
nd/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




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?A6E50B78-8694-4984-8984-12479303361E>