Migrating from -current to stable/12 on RPI2B (ARMv7)

Mark Millard marklmi at yahoo.com
Mon Dec 28 22:04:53 UTC 2020


On 2020-Dec-28, at 13:19, Mark Millard <marklmi at yahoo.com> wrote:

> On 2020-Dec-28, at 12:55, Mark Millard <marklmi at yahoo.com> wrote:
>> 
>> 
>> On 2020-Dec-28, at 12:07, Mark Millard <marklmi at yahoo.com> wrote:
>> 
>> 
>>> On 2020-Dec-28, at 10:56, bob prohaska <fbsd at www.zefox.net> wrote:
>>> 
>>>> On Sun, Dec 27, 2020 at 10:10:18PM -0800, Mark Millard wrote:
>>>>> 
>>>>> 
>>>>> On 2020-Dec-27, at 20:48, bob prohaska <fbsd at www.zefox.net> wrote:
>>>>> 
>>>>>> . . .
>>>>> 
>>>> I didn't know about LDFLAGS, but a re-try with 
>>>> -j1 and LDFLAGS.lld+= -Wl,--threads=1
>>>> (apparently the syntax changed) in /etc/make.conf 
>>>> promptly reproduced the error. 
>>> 
>>> Hmm. It been a while since I did a native build instead of a
>>> cross build. The cross build context has RAM and does not
>>> use the assignment so I'd not noticed.
>>> 
>>> Thanks for the report!
>> 
>> lld for LLVM 10 always had --no-threads as I now understand
>> and stable/12 still has/uses/needs LLVM 10.0.1 (with
>> updates).
>> 
>> That means that lld from LLVM 11 was in use (FreeBSD
>> 13's system ld). The build was probably trying to build
>> some LLVM 10.0.1 final+ materials for bootstrap style
>> build use in later build stages (older FreeBSD targeting).
>> It likely had not gotten to the stage of building freebsd
>> stable/12 material itself.
>> 
>> Attempting to build devel/llvm10 might well have the same
>> issue without having to involve an extra FreeBSD source
>> tree or build.
> 
> There is another gotcha-issue with the change from --no-threads
> to --threads=1 based on neither working for both 10.0.x and
> 11.0.y: which ever one is listed in /etc/make.conf (say) will be
> wrong for other one of:
> 
> A) building the bootstrap toolchain
> B) using the bootstrap toolchain
> 
> The LDFLAGS.lld definition would need to be conditional on the
> distinction in order to be correct inside each type of context.

I've started an experiment going another direction: an armv7
context with lots of RAM (and faster processing) with a
13 attempting to build a stable/12 . It is via a chroot into
an armv7 13 world on a 8 GiByte, 4-core Cortex-A57 based
OverDrive 1000 running aarch64 13. Each process should still
be limited to what 32-bit systems allow but overall the
system is not that limited. I used -j4 .

If such still got the error, then there would likely be
implications about the error and it would be unlikely
that it would work on the RPi2 v1.1 . (But I expect that
it will not get the error.)

Root owns file system involved and is doing the build.

It did report:

make[1]: "/usr/fbsd/stable-12-src/Makefile.inc1" line 344: SYSTEM_COMPILER: libclang will be built for bootstrapping a cross-compiler.
make[1]: "/usr/fbsd/stable-12-src/Makefile.inc1" line 349: SYSTEM_LINKER: libclang will be built for bootstrapping a cross-linker.

I already had a stable-12-src branch from git experiments
but the matching worktree was missing despite being still
registered. So the worktree recreation was:

# git worktree add -f ../stable-12-src stable-12-src
Preparing worktree (checking out 'stable-12-src')
Updating files: 100% (81363/81363), done.
HEAD is now at f4d0bc6aa6b9 MFC r354991-r354992 (by lwhsu)

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



More information about the freebsd-arm mailing list