Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 3 Jul 2021 22:34:35 -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 [You need to update /usr/local/poudriere/poudriere-system]
Message-ID:  <9D44E5D7-5E89-4E18-BF84-5C7739364DBE@yahoo.com>
In-Reply-To: <1B74E5A6-A648-4C91-95BB-6C8AB110FA3A@yahoo.com>
References:  <5A26965D-2DFD-4A46-A171-A382A61E3CFB@yahoo.com> <20210626035234.GA18893@www.zefox.net> <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> <9CC00581-E8B4-45F0-A614-60A70E37B1B2@yahoo.com> <ED4FA7D6-5F8B-427E-89A8-45BF2C913EBE@yahoo.com> <9780017D-5B26-4791-9397-3E721B578D55@yahoo.com> <1B74E5A6-A648-4C91-95BB-6C8AB110FA3A@yahoo.com>

next in thread | previous in thread | raw e-mail | index | archive | help
On 2021-Jul-3, at 21:32, Mark Millard <marklmi at yahoo.com> wrote:

> [Just correcting a bad placement of  some of the new text.]
>=20
> On 2021-Jul-3, at 21:25, Mark Millard <marklmi at yahoo.com> wrote:
>=20
>> On 2021-Jul-3, at 21:15, Mark Millard <marklmi at yahoo.com> wrote:
>>=20
>>> Summary: You need to update /usr/local/poudriere/poudriere-system
>>>=20
>>> Updating your HOST environment does not automatically update that
>>> area.
>>>=20
>>> One possibility for an update procedure is:
>>>=20
>>> # cd /usr/src
>>> # make installworld DESTDIR=3D/usr/local/poudriere/poudriere-system =
DB_FROM_SRC=3D1
>>> # make distrib-dirs DESTDIR=3D/usr/local/poudriere/poudriere-system =
DB_FROM_SRC=3D1
>>> # make distribution DESTDIR=3D/usr/local/poudriere/poudriere-system =
DB_FROM_SRC=3D1
>>> # make -DBATCH_DELETE_OLD_FILES delete-old =
DESTDIR=3D/usr/local/poudriere/poudriere-system DB_FROM_SRC=3D1
>>>=20
>>> Sometime after after a poudriere bulk run completes:
>>>=20
>>> # make -DBATCH_DELETE_OLD_FILES delete-old-libs =
DESTDIR=3D/usr/local/poudriere/poudriere-system DB_FROM_SRC=3D1
>>>=20
>>>=20
>>> How I got there . . .
>>>=20
>>> Someone pointed out something that I'd not even thought to check
>>> about your builds (that explains why your lang/rust did not fail
>>> to build as well and a major difference in your poudriere vs.
>>> make build tests and vs. my attempts to reproduce). Your log
>>> still reports:
>>>=20
>>> Host OSVERSION: 1400024
>>> Jail OSVERSION: 1400019
>>>=20
>=20
> [Text moved here:]
>=20
> I forgot to quote the OSVERSION in:
>=20
> ---Begin Environment---
> SHELL=3D/bin/csh
> OSVERSION=3D1400019
> UNAME_v=3DFreeBSD 14.0-CURRENT
> UNAME_r=3D14.0-CURRENT
> . . .
>=20
>>> 1400019 is from early June:
>>>=20
>>> committer	Neel Chauhan <nc@FreeBSD.org>	2021-06-07 22:53:24 =
+0000
>>> commit	37d64dcdfa519157aff9711f1f226ad7bd778f46 (patch)
>>>=20
>>> That Jail version of the system predates using llvm12
>>> as the system compiler. 1400023 was the switch to llvm12:
>>>=20
>>> committer	Dimitry Andric <dim@FreeBSD.org>	2021-06-13 =
20:01:15 +0000
>>> commit	d409305fa3838fb39b38c26fc085fb729b8766d5 (patch)
>>>=20
>>> This means that the direct make build of devel/llvm10
>>> was based on using system clang 12, not what you have
>>> poudriere using.
>>>=20
>>> You should have (using things as they happen to
>>> be available to install now):
>>>=20
>>> Host OSVERSION: 1400024
>>> Jail OSVERSION: 1400024
>=20
> [Removed bad placement of example text where it could be
> greatly misleading.]
>=20
>>> In other words: equal unless you have good reason to be
>>> building older materials.
>>>=20
>>>=20
>>> So we see that your poudriere bulk builds are based on clang 11,
>>> not clang 12, according to the log file:
>>>=20
>>> _CCVERSION_921dbbb2=3DFreeBSD clang version 11.0.1 =
(git@github.com:llvm/llvm-project.git llvmorg-11.0.1-0-g43ff75f2c3fe) =
Target: aarch64-unknown-freebsd14.0 Thread model: posix InstalledDir: =
/usr/bin
>>> _ALTCCVERSION_921dbbb2=3Dnone
>>> _CXXINTERNAL_acaad9ca=3DFreeBSD clang version 11.0.1 =
(git@github.com:llvm/llvm-project.git llvmorg-11.0.1-0-g43ff75f2c3fe) =
Target: aarch64-unknown-freebsd14.0 Thread model: posix InstalledDir: =
/usr/bin "/usr/bin/ld" "--eh-frame-hdr" "-dynamic-linker" =
"/libexec/ld-elf.so.1" "--enable-new-dtags" "-o" "a.out" =
"/usr/lib/crt1.o" "/usr/lib/crti.o" "/usr/lib/crtbegin.o" "-L/usr/lib" =
"/dev/null" "-lc++" "-lm" "-lgcc" "--as-needed" "-lgcc_s" =
"--no-as-needed" "-lc" "-lgcc" "--as-needed" "-lgcc_s" "--no-as-needed" =
"/usr/lib/crtend.o" "/usr/lib/crtn.o"
>>> . . .
>>> _OBJC_CCVERSION_921dbbb2=3DFreeBSD clang version 11.0.1 =
(git@github.com:llvm/llvm-project.git llvmorg-11.0.1-0-g43ff75f2c3fe) =
Target: aarch64-unknown-freebsd14.0 Thread model: posix InstalledDir: =
/usr/bin
>>> . . .
>>=20
>> I forgot to quote another OSVERSION:
>>=20
>> . . .
>> ARCH=3Daarch64
>> OPSYS=3DFreeBSD
>> _OSRELEASE=3D14.0-CURRENT
>> OSREL=3D14.0
>> OSVERSION=3D1400019
>> . . .
>>=20
>>> -- The C compiler identification is Clang 11.0.1
>>> -- The CXX compiler identification is Clang 11.0.1
>>> -- The ASM compiler identification is Clang
>>> . . .
>>=20
>=20
>=20

I'll note that your use of:

# poudriere jail -c -j main -m null -M =
/usr/local/poudriere/poudriere-system -S /usr/src -v 14.0-CURRENT

where /usr/src is the same as used to build your live
boot system, means that updating /usr/src to a vintage
with:

OSVERSION: 1400024

also means that /usr/src is no longer consistent with with
system in /usr/local/poudriere/poudriere-system unless
/usr/local/poudriere/poudriere-system has also been updated.

You are using a older system and older toolchain to build
based on a new /usr/src that does not match what is in
/usr/local/poudriere/poudriere-system but the build
activity is happening in that older system environment.

It is an incoherent combination. It is not surprising that
it does not behave well.

I'd update /etc/src to a vintage that has the workaround
for the lang/rust build problem, rebuild and install the
HOST OS, boot it, install the same OS version into:

/usr/local/poudriere/poudriere-system

and then rebuild all the ports to be sure that none are
still based on an incoherent combination of materials.

My guess is that you want poudriere-system tracking the live
system and its /usr/src/ . That would mean that just after
booting a new system update that was based on an updated
/usr/src/ you would then continue updating via something like:

# cd /usr/src
# make installworld DESTDIR=3D/usr/local/poudriere/poudriere-system =
DB_FROM_SRC=3D1
# make distrib-dirs DESTDIR=3D/usr/local/poudriere/poudriere-system =
DB_FROM_SRC=3D1
# make distribution DESTDIR=3D/usr/local/poudriere/poudriere-system =
DB_FROM_SRC=3D1
# make -DBATCH_DELETE_OLD_FILES delete-old =
DESTDIR=3D/usr/local/poudriere/poudriere-system DB_FROM_SRC=3D1

Sometime after after a poudriere bulk run completes:

# make -DBATCH_DELETE_OLD_FILES delete-old-libs =
DESTDIR=3D/usr/local/poudriere/poudriere-system DB_FROM_SRC=3D1

(That sequence is  biased to poudriere use instead of to a
chroot environment that has been tailored and needs the
tailoring preserved.)


Note: If one wants to have the likes of:

/usr/local/poudriere/poudriere-system

be based on older system versions sometimes, then a different -S PATH
needs to be used than for the boot system, say:

# poudriere jail -c -j main -m null -M =
/usr/local/poudriere/poudriere-system -S /usr/oldersrc -v 14.0-CURRENT

Then updates of poudriere-system would be more like:
(presuming that you have already established /usr/oldersrc)

# cd /usr/oldersrc/
# ??? do whatever to get /usr/oldersrc/ to have the commit desired ???
# make buildworld
# make installworld DESTDIR=3D/usr/local/poudriere/poudriere-system =
DB_FROM_SRC=3D1
# make distrib-dirs DESTDIR=3D/usr/local/poudriere/poudriere-system =
DB_FROM_SRC=3D1
# make distribution DESTDIR=3D/usr/local/poudriere/poudriere-system =
DB_FROM_SRC=3D1
# make -DBATCH_DELETE_OLD_FILES delete-old =
DESTDIR=3D/usr/local/poudriere/poudriere-system DB_FROM_SRC=3D1

Sometime after after a poudriere bulk run completes:

# make -DBATCH_DELETE_OLD_FILES delete-old-libs =
DESTDIR=3D/usr/local/poudriere/poudriere-system DB_FROM_SRC=3D1


Mistake apology:

Back 0n 2021-June-23 I had written:

QUOTE
So your jail's OSVERSION is older than the environment
that it is running in. (Unlikely to contribute to the
0xA5A5A5A5u as far as I can tell.)
END QUOTE

The "Unlikely . . ." was just wrong. Sorry.

The reality is that such is incoherent, given the use of
the same /usr/src/ code in poudriere as was used to update
the booting system. The update from clang 11 to clang 12
between make the combination even more likely to be a
problem. /usr/local/poudriere/poudriere-system needs to
track the changes as well.

=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?9D44E5D7-5E89-4E18-BF84-5C7739364DBE>