Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 3 Jul 2021 18:59:25 -0700
From:      Mark Millard via freebsd-ports <freebsd-ports@freebsd.org>
To:        bob prohaska <fbsd@www.zefox.net>
Cc:        FreeBSD ports <freebsd-ports@freebsd.org>, freebsd-arm <freebsd-arm@freebsd.org>, FreeBSD Toolchain <freebsd-toolchain@freebsd.org>
Subject:   Re: llvm10 build failure on Rpi3
Message-ID:  <2349FF7F-BA05-4854-AA34-B6298193B98C@yahoo.com>
In-Reply-To: <20210703215445.GA18768@www.zefox.net>
References:  <C64D1A3F-A42E-42E3-8491-4DE9F6A96CFB@yahoo.com> <43513842-6FC0-4A89-8F0C-9EB2B328A5ED@yahoo.com> <9CFE71E2-23C3-4072-A8AD-74EDB339A146@yahoo.com> <A4669E1F-6DA9-492C-B06C-12AABE60FCEB@yahoo.com> <F2A8E1C3-EAAD-448A-9A97-979CC9ED9BE7@yahoo.com> <60EEFD09-97DE-4B4F-BAFD-61B96EF60E27@yahoo.com> <F727FF9A-CDFB-4C9C-8333-0FEA6C54976A@yahoo.com> <77A35ACF-275F-44C8-AEEE-4EFE5B5CBEA4@yahoo.com> <20210703182546.GA17871@www.zefox.net> <380184FB-6BA1-4C2D-9C6B-E249C2CF1317@yahoo.com> <20210703215445.GA18768@www.zefox.net>

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


On 2021-Jul-3, at 14:54, bob prohaska <fbsd at www.zefox.net> wrote:

> On Sat, Jul 03, 2021 at 01:15:19PM -0700, Mark Millard wrote:
>>=20
>>=20
>>=20
>> So you still have not tried an artifacts or snapshot kernel+world?
>>=20
> Not yet.=20
>=20
>>> Eventually I resorted to running make in devel/llvm10, to my =
surprise it
>>> ran to completion.
>>=20
>> Interesting.
>>=20
>> Was this -j4? -j1? -j2? Any other interesting characteristics
>> for how it was run?
>>=20
> Nothing special was done. IIRC, it was make -DBATCH > make.log in
> the background. =46rom top's screen it looked like -j4.=20
>=20
>> It would be interesting to see if building in a chroot
>> in that make style also worked (or a non-poudriere jail).
>>=20
>=20
> Can you point me to instructions for doing the experiment?

I tend to presume operation from a root login so I've nothing
about managing user account vs. root account ownerships and
the like. I pick names and places for things to make the
example.

# cd /usr/src/
# mkdir -p ~/chroot-system/
# make installworld DESTDIR=3D~/chroot-system/ DB_FROM_SRC=3D1
# make distrib-dirs DESTDIR=3D~/chroot-system/ DB_FROM_SRC=3D1
# make distribution DESTDIR=3D~/chroot-system/ DB_FROM_SRC=3D1

One could expand artifacts.ci.freebsd.org *.txz materials
into ~/chroot-system/ instead. The above is just one way
of populating ~/chroot-system/ initially.

For now, I will not show later updating to a newer system
in ~/chroot-system/ . There are more choices to make for
what, if anything, should be preserved or adjsuted by such
an update.

The following definitions do not survive RPI* reboots . . .

# mount -tdevfs devfs ~/chroot-system/dev
# mkdir -p ~/chroot-system/usr/src/ ~/chroot-system/usr/ports/
# mount_nullfs /usr/src ~/chroot-system/usr/src
# mount_nullfs /usr/ports ~/chroot-system/usr/ports

The ~/chroot-system/dev is what allows /dev/null and
other such to work in  the chroot context.

Instead of nullfs mounts you could establish independent
instances. ~/chroot-system/usr/src/ should track whatever
world was put inside ~/chroot-system/ .

Use via . . .

(You may have tailoring of the environment that you want
to set up in the chroot. I do not show anything for that.
This could include things like setting up /etc/make.conf
and /etc/src.conf files in the chroot.)

# chroot ~/chroot-system/
# pwd
/
# . . .
# cd /usr/ports/devel/llvm10/
# make . . .
. . .
# exit

Until you exit from the chroot, you will not see the file
system that is outside ~/chroot-system/ (other than via the
special mounts that were set up earlier above). =46rom the
overall system view that / in the chroot's operation is
implicitly a reference to ~/chroot-system/ as if it was a
root file system. Inside the chroot, ~/ is a reference
to a different place than it was outside the chroot.

Note that even pkg will have to be bootstrapped as if this
was a separate, new root filesystem.

I'll note that modern main can have chroot worlds that are
stable/13 or releng/13 based instead of main based (a
releng/13 example from my context):

# uname -apKU
FreeBSD CA72_4c8G_ZFS 14.0-CURRENT FreeBSD 14.0-CURRENT #7 =
main-n247651-a00d703f2f43-dirty: Wed Jun 30 15:11:11 PDT 2021     =
root@CA72_16Gp_ZFS:/usr/obj/BUILDs/main-CA72-nodbg-clang/usr/main-src/arm6=
4.aarch64/sys/GENERIC-NODBG-CA72  arm64 aarch64 1400024 1300139

On the aarch64 RPi*'s the world could even be arm.armv7
based instead of arm64.aarch64 based (stable/13 example):

# uname -apKU
FreeBSD CA72_4c8G_ZFS 14.0-CURRENT FreeBSD 14.0-CURRENT #7 =
main-n247651-a00d703f2f43-dirty: Wed Jun 30 15:11:11 PDT 2021     =
root@CA72_16Gp_ZFS:/usr/obj/BUILDs/main-CA72-nodbg-clang/usr/main-src/arm6=
4.aarch64/sys/GENERIC-NODBG-CA72  arm armv7 1400024 1300510

I'll note that deleting ~/chroot-system from ouside the
chroot is a 2 step process because of some special file
protections:

# chflags -R noschg ~/chroot-system/
# rm -fr ~/chroot-system

=3D=3D=3D
Mark Millard
marklmi at yahoo.com
( dsl-only.net went
away in early 2018-Mar)




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?2349FF7F-BA05-4854-AA34-B6298193B98C>