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: FreeBSD User <freebsd_at_walstatt-de.de>
Date: Thu, 30 Mar 2023 13:45:18 UTC
Hello folks,

some strange misbehaviour in a NanoBSD compilation is driving me nuts. Recently I posted some
error messages regarding 

[...]
src/sys/dev/an/if_an_pci.c:143:1: error: a
function definition without a prototype is deprecated in all versions of C and is not
supported in C2x [-Werror,-Wdeprecated-non-prototype]
[...]

but being able compiling the kernel was "a lucky shot/mistake" and in the vain of discussion
it has been revealed that my nanoBSD specific "make.conf/src.conf" configurations were wrong.

So, again:

The builder host is a recent CURRENT (FreeBSD 14.0-CURRENT #2 main-n261876-f5a365e51fee: Thu
Mar 30 11:23:19 CEST 2023 amd64), the target is a most recent 13-STABLE (git pull on a
daily/hourly/most recentl basis when trying to build).

As I understand the src/buildworld config, it seems crucial to have CURRENT and 13-STABLE
somehow separated due to their divergende in used LLVM/CLANG (CURRENT has LLVM 15, 13-STABLE
is with LLVM 14).

Putting 

WITHOUT_SYSTEM_COMPILER=YES
WITHOUT_SYSTEM_LINKER=YES

into CONF_BUILD= AND CONF_WORLD= of NanoBSD configuration should prevent the usage of
CURRENT's LLVM 15 and instead a cross compiling with 13-STABLE's LLVM 14 compiler and linker
should be used to buildworld.

But this doesn't seem to happen (at least in my case), since buildworld fails to build with:

[...]
cc -target x86_64-unknown-freebsd13.2
--sysroot=/pool/home/ohartmann/Projects/router/router/apu2c4/world/obj/amd64/ALERICH_13-STABLE_amd64/pool/home/ohartmann/Projects/router/router/apu2c4/src/amd64.amd64/tmp
-B/pool/home/ohartmann/Projects/router/router/apu2c4/world/obj/amd64/ALERICH_13-STABLE_amd64/pool/home/ohartmann/Projects/router/router/apu2c4/src/amd64.amd64/tmp/usr/bin
-O2 -pipe -fno-common -DMAINEXEC=bc -DNLSPATH=/usr/share/nls/%L/%N.cat -DBUILD_TYPE=A
-DBC_DEFAULT_BANNER=0 -DBC_DEFAULT_PROMPT=0 -DBC_DEFAULT_SIGINT_RESET -DBC_DEFAULT_TTY_MODE
-DBC_ENABLED -DBC_ENABLE_EDITLINE -DBC_ENABLE_EXTRA_MATH -DBC_ENABLE_LIBRARY=0
-DBC_ENABLE_LONG_OPTIONS -DBC_ENABLE_HISTORY -DBC_ENABLE_PROMPT -DBC_ENABLE_RAND
-DDC_DEFAULT_PROMPT=0 -DDC_DEFAULT_SIGINT_RESET -DDC_DEFAULT_TTY_MODE=0 -DDC_ENABLED -DNDEBUG
-I/pool/home/ohartmann/Projects/router/router/apu2c4/src/contrib/bc/include -DBC_ENABLE_NLS=1
-flto -DNDEBUG -fPIE -mretpoline -ftrivial-auto-var-init=zero
-enable-trivial-auto-var-init-zero-knowing-it-will-be-removed-from-clang -std=gnu99
-Wno-format-zero-length -fstack-protector-strong -Wsystem-headers -Wall -Wno-format-y2k -W
-Wno-unused-parameter -Wstrict-prototypes -Wmissing-prototypes -Wpointer-arith -Wreturn-type
-Wcast-qual -Wwrite-strings -Wswitch -Wshadow -Wunused-parameter -Wcast-align
-Wchar-subscripts -Wnested-externs -Wold-style-definition -Wno-pointer-sign
-Wmissing-variable-declarations -Wthread-safety -Wno-empty-body -Wno-string-plus-int
-Wno-unused-const-variable -Wno-error=unused-but-set-variable -Qunused-arguments  -Wl,-zrelro
-pie -Wl,-zretpolineplt   -o gh-bc args.o bc.o bc_lex.o bc_parse.o data.o dc.o dc_lex.o
dc_parse.o file.o history.o lang.o lex.o main.o num.o opt.o parse.o program.o rand.o read.o
vector.o vm.o bc_help.o dc_help.o lib.o lib2.o   -ledit ld: error: args.o: Opaque pointers are
only supported in -opaque-pointers mode (Producer: 'LLVM15.0.7' Reader: 'LLVM 14.0.5') cc:
error: linker command failed with exit code 1 (use -v to see invocation) *** [gh-bc] Error
code 1

make[5]: stopped in /pool/home/ohartmann/Projects/router/router/apu2c4/src/usr.bin/gh-bc
[...]


I'm now out of options here :-(

Thanks in advance,

Oliver



-- 
O. Hartmann