Am Thu, 30 Mar 2023 16:56:09 +0200 Mateusz Guzik <mjgu...@gmail.com> schrieb:
> On 3/30/23, Mateusz Guzik <mjgu...@gmail.com> wrote: > > On 3/30/23, FreeBSD User <free...@walstatt-de.de> wrote: > >> 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 :-( > >> > > > > are you even using the dev/an driver? > > > > you should probably just remove it from the kernel (and any other > > driver of the sort) > > > > ultimately you should be able to stick to the compiler from main. in > > the worst case the commit to turn "function definition without a > > prototype is deprecated" from errors to warnings could be merged to > > stable/13 to facilitate the build > > > > it may be you will be able to get away with modifying CFLAGS like so: > > CFLAGS+=-Wno-deprecated-non-prototype > > > > in src.conf and/or make.conf > > > > So I looked into it and landed > https://cgit.FreeBSD.org/src/commit/?id=82eb549f800e08158802b74bef62e7db0939a3fe > > As of that commit I can both buildworld and buildkernel a stable/13 > tree while running main, without any magic to change compilers. > Running poudriere on another most recent CURRENT box with a 13-STABLE jail also gives me the ability to build a clean 13-STABLE jail (buildworld from sources from another source tree like it is done for FreeBSD-pkgbase, then updating jail's with poudriere's -m src=/path/to/13-STABLE/src) - the only pity is that due to a chflags problem during install I have to delete the jail first and then recreate it to install the new compiled 13-STABLE binaries. Quint essence: Since a couple of weeks for now I can build 13-STABLE on CURRENT that way. But I can't build NanoBSD as reported above. -- O. Hartmann