Solved Cannot build 13.2-RELEASE on a 15.0-CURRENT host any more ... llvm/clang version?

zirias@

Developer
Disclaimers:
1. Yes I know -CURRENT is involved, but my actual question is of more generic nature, see below and judge later please ...
2. The immediate issue (I needed a 13.2/armv7 jail for one of my ports test builders which isn't available binary, and finally created it using a 13.2/aarch64 jail) is solved, still I was curious, so reproduced the build problem on amd64 (tier-1) without cross-compiling to eliminate more "esoteric" causes.
----

Trying to build 13.2-RELEASE on a 15.0-CURRENT host suddenly gave me this error very early on:
Code:
➜ MAKEOBJDIRPREFIX=/usr/obj/13.2 make -j6 buildworld buildkernel
[Creating objdir /usr/obj/13.2/usr/src/amd64.amd64...]
--- buildworld ---
[...]
Building /usr/obj/13.2/usr/src/amd64.amd64/tmp/obj-tools/usr.sbin/zic/zic.o
--- _bootstrap-tools-usr.bin/vtfontcvt ---
Building /usr/obj/13.2/usr/src/amd64.amd64/tmp/obj-tools/usr.bin/vtfontcvt/_proginstall
--- _bootstrap-tools-lib/clang/libllvmminimal ---
Building /usr/obj/13.2/usr/src/amd64.amd64/tmp/obj-tools/lib/clang/libllvmminimal/Support/Debug.o
Building /usr/obj/13.2/usr/src/amd64.amd64/tmp/obj-tools/lib/clang/libllvmminimal/Support/DebugCounter.o    
--- _bootstrap-tools-usr.sbin/zic ---
--- zic.o ---
/usr/src/contrib/tzcode/zic.c:464:8: error: an attribute list cannot appear here
  464 | static ATTRIBUTE_NORETURN void
      |        ^~~~~~~~~~~~~~~~~~
/usr/src/contrib/tzcode/private.h:471:30: note: expanded from macro 'ATTRIBUTE_NORETURN'
  471 | #  define ATTRIBUTE_NORETURN [[noreturn]]
      |                              ^~~~~~~~~~~~
[...]

Questions:

1. I noticed the base compiler version changed from clang-16 to clang-17 and assume this might be the issue, can anybody confirm that?

2. Is make buildworld for an older (supported) RELEASE supposed to work correctly on a newer host? I guess this should be the case, given poudriere-jail(8) supports building arbitrary jail versions from source, but I'm not sure .... IOW: Would it make sense to create a PR about this issue, so a later 15.0-RELEASE would hopefully be able to build older releases of FreeBSD?
 
I think you need a chroot.
Well, see above, I solved the immediate issue using a jail running 13.2 (installed from binaries).

But then, we indeed have a "chicken-egg-problem" as in "to build 13.2, your first need 13.2 (or older)", so all the "from source" methods of poudriere-jail(8) might or might not work :-/.

BTW this isn't meant as a complaint at all, I was just curious whether building an older version should be supported. Before my latest host upgrade (when the compiler was still clang-16), it actually worked, but then I guess I was just "lucky" 😉
 
BTW this isn't meant as a complaint at all, I was just curious whether building an older version should be supported. Before my latest host upgrade (when the compiler was still clang-16), it actually worked, but then I guess I was just "lucky" 😉

I have never seen that defined for FreeBSD. In Debian downgrading is definitely not supported.

LLVM-17 also broke kernel symbol lookup in dtrace. Still need to file a bug report.
 
I have never seen that defined for FreeBSD. In Debian downgrading is definitely not supported.
Might be a nitpick, but "building an older version" (to run it in a jail) is not the same as "downgrading" 🤷‍♂️

Running an older version in a jail is definitely supported, and also offered by poudriere to build packages for that older version, with poudriere-jail(8) offering methods to build the jails from source as well. Sure, having to build from source is an edge case, most jails you'd want to use are available for binary installation, so I now take these build-from-source methods are more or less of the "well, might work, just try it" kind 😉

With two persons stating there's probably no guarantee this should work, I consider my question answered, thanks.

LLVM-17 also broke kernel symbol lookup in dtrace. Still need to file a bug report.
Brrrrr.

Maybe my subconscious reason to post this question at all was being annoyed about llvm/clang breaking things that worked before 🙈
 
Back
Top