Date: Thu, 30 Mar 2023 16:56:09 +0200 From: Mateusz Guzik <mjguzik@gmail.com> To: FreeBSD User <freebsd@walstatt-de.de> Cc: FreeBSD CURRENT <freebsd-current@freebsd.org> Subject: 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') Message-ID: <CAGudoHEQA%2B3wc6nanShYj5RaBbzFCw44pHLpKhzgjaYr7uD8Bg@mail.gmail.com> In-Reply-To: <CAGudoHH2v8wefXt4LP8jykminppVhxm1kAwALQuiw_VGZQ5-vg@mail.gmail.com> References: <20230330154545.5f957aa6@thor.intern.walstatt.dynvpn.de> <CAGudoHH2v8wefXt4LP8jykminppVhxm1kAwALQuiw_VGZQ5-vg@mail.gmail.com>
next in thread | previous in thread | raw e-mail | index | archive | help
On 3/30/23, Mateusz Guzik <mjguzik@gmail.com> wrote: > On 3/30/23, FreeBSD User <freebsd@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. -- Mateusz Guzik <mjguzik gmail.com>
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CAGudoHEQA%2B3wc6nanShYj5RaBbzFCw44pHLpKhzgjaYr7uD8Bg>