On 27 Feb 2023, at 22:23, Paul Mather <p...@gromit.dlib.vt.edu> wrote: > > On Feb 27, 2023, at 2:57 PM, Dimitry Andric <d...@freebsd.org> wrote: > >> On 27 Feb 2023, at 19:19, FreeBSD User <free...@walstatt-de.de> wrote: >>> >>> Running recent CURRENT as host (FreeBSD 14.0-CURRENT #23 >>> main-n261147-b8bb73ab724b: Sun Feb 26 >>> 17:39:38 CET 2023 amd64), and nanoBSD (recent 13-STABLE, git stable/13). >>> >>> Building an appliance based on 13-STABLE sources, a customized kernel via >>> nanoBSD, since a >>> couple of weeks for now building the sources fails in kernel sources: >>> >>> [...] >>> --- modules-all --- >>> --- all_subdir_an --- >>> /pool/home/ohartmann/Projects/router/router/apu2c4/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] >>> [..] >>> >>> Disabling all wireless options in the kernel config starts dropping errors >>> of a similar kind >>> on other kernel places. >>> >>> Compiling on FBSD 13-STABLE seems to be all right. >>> >>> Can this be fixed. please? What causes the error and how can this be >>> resolved if the subtree >>> of FreeBSD's sources is a submodule? >> >> Not sure what you mean with "subtree is a submodule", but this is likely >> caused by skipping the cross-tools stage somehow. Do you have any >> specific make.conf or src.conf settings for that? > > > I got bitten by this recently. In my case, it was Poudriere (running on > 14-CURRENT) trying to build a 13-STABLE jail. The Poudriere jail's > "src.conf" was taken from the actual system for which Poudriere builds > packages. It had (amongst others) these two options: > > WITH_SYSTEM_COMPILER=yes > WITHOUT_CROSS_COMPILER=yes > > > When I commented these out in the jail-src.conf Poudriere file the jail built > correctly. > > I figure the system built fine because its system compiler is LLVM 14.x. The > Poudriere system compiler is LLVM 15.x, which has the breaking change wrt. > old-style prototypes.
Yes, that is what I suspected in Oliver's case: if you skip the cross-tools stage in a buildworld of stable/13 on a 14-CURRENT host, by setting WITH_SYSTEM_COMPILER, you are bound to run into compilation errors that have been fixed in 14-CURRENT, but not yet MFC'd. The safest solution is to let cross-tools do its thing, which will check the host compiler, and automatically build an appropriate version of the compiler and linker for the stable branch, if required. That said, I will be merging clang 15.0.7 and a bunch of other things that should solve all these errors to stable/13 at some point, but not before the 13.2-RELEASE is out. This is to avoid making life more difficult for our release engineering team. -Dimitry
signature.asc
Description: Message signed with OpenPGP