Re: NanoBSD: CURRENT unable to compile 13-STABLE : ld: error: args.o: Opaque pointers are only supported in -opaque-pointers mode (Producer: 'LLVM15.0.7' Reader: 'LLVM 14.0.5')

From: void <void_at_f-m.fm>
Date: Fri, 31 Mar 2023 13:18:34 UTC
On Thu, Mar 30, 2023 at 07:30:15PM -0700, Mark Millard wrote:
>Warner Losh <imp_at_bsdimp.com> wrote on
>Date: Thu, 30 Mar 2023 22:15:38 UTC :
>
>> On Thu, Mar 30, 2023, 3:45 PM void <void@f-m.fm> wrote:
>>
>> > On Thu, Mar 30, 2023 at 12:56:53PM -0700, Mark Millard wrote:
>> >
>> > >To my knowledge, FreeBSD has not actively supported newer
>> > >FreeBSD building older FreeBSD across versions.
>> >
>> > Are you sure? I routinely build & run 12.4 and 12-stable bhyve and
>> > poudriere jail instances on -current.
>> >

>Do you use main's toolchain to do your builds of releng/12.4
>and stable/12 ? The first time? Their updating builds? As far
>as I can see use of main's toolchain means not using an older
>user space (via/in-a chroot, jail, etc.) to do the builds.

I don't know in detail about the toolchain. When 12.4 builds on
-current, the screen shows it bootstrapping, and I guess this is for
12.4.

The reason I commented on what you wrote was because your assertion
appeared to me[1] to be incorrect, in that logically following on from that
assertion would mean 'don't expect it to work because it's 'not 
actively supported' meaning that it's 'unsupported'. 

But I can't contextualise 'actively supported' into 'should work' or
'expected to work' given Warren's comment about 'best effort basis'.

I build poudriere jails for 12.4 on -current like so:

1. git -C /usr/src checkout releng/12.4
2. poudriere jail -c -j 124Ramd64 -J12 -m src=/usr/src -b -v releng/12.4

To update:

3. git -C /usr/src checkout releng/12.4
4. git -C /usr/src pull --ff-only
5. then I have to delete and build the jail as in [2] otherwise it'll
complain about wrong objectprefix

is this workflow incorrect?

>A sequence can be bootstrapped by starting from materials for
>a pre-built release or snapshot of the older user space and
>then update via its internal toolchain. My understanding is
>this is the actively supported way, not building older
>user spaces directly from a newer user space and its
>newer toolchain.

It appears to me[1] to be building its own toolchain and building within
that. The ports it builds work on the machine it's built for, without
errors about things like ABI etc. I don't do any pre-building, and am
unsure if the poudriere jailbuilding process does anything outside of
the standard build process.

[1] non-expert in any of this!

--