Re: NanoBSD: CURRENT unable to compile 13-STABLE : error: a function definition without a prototype is deprecated ... in C
- Reply: Dimitry Andric : "Re: NanoBSD: CURRENT unable to compile 13-STABLE : error: a function definition without a prototype is deprecated ... in C"
- In reply to: Dimitry Andric : "Re: NanoBSD: CURRENT unable to compile 13-STABLE : error: a function definition without a prototype is deprecated ... in C"
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Wed, 08 Mar 2023 10:19:04 UTC
Am Thu, 2 Mar 2023 11:13:51 +0100 Dimitry Andric <dim@FreeBSD.org> schrieb: > On 2 Mar 2023, at 06:41, FreeBSD User <freebsd@walstatt-de.de> wrote: > > > > Am Mon, 27 Feb 2023 23:46:21 +0100 > > Dimitry Andric <dim@FreeBSD.org> schrieb: > ... > > > > I tried to find some documentation on my CURRENT host regarding "WITH_SYSTEM_COMPILER". > > None found via man src.conf, nor via make make.conf. Please delegate me to some place > > where I can find such infos. > > Ah I was confused, WITH_SYSTEM_COMPILER is actually the default, and it > means that you want to skip building the bootstrap compiler, and just > use the host compiler. The src.conf(5) man page documents the inverse > settings instead: > > WITHOUT_SYSTEM_COMPILER > Do not opportunistically skip building a cross-compiler during > the bootstrap phase of the build. Normally, if the currently > installed compiler matches the planned bootstrap compiler type > and revision, then it will not be built. This does not prevent a > compiler from being built for installation though, only for > building one for the build itself. The WITHOUT_CLANG option > controls that. > > WITHOUT_SYSTEM_LINKER > Do not opportunistically skip building a cross-linker during the > bootstrap phase of the build. Normally, if the currently > installed linker matches the planned bootstrap linker type and > revision, then it will not be built. This does not prevent a > linker from being built for installation though, only for > building one for the build itself. The WITHOUT_LLD option > controls that. > > This option is only relevant when WITH_LLD_BOOTSTRAP is set. > > I find the double negative phrasing "do not skip" always confusing. But > the logic is normally: > > * The early phase of buildworld retrieves the versions of your host's > compiler and linker > * It compares it against the versions in the source tree > * If the host compiler and linker are deemed "good enough", they are > used as-is > * If the host compiler or linker are not suitable, the compiler or > linker are bootstrapped from the source tree > > But WITH_SYSTEM_COMPILER turns off all these checks and forces it to use > the host compiler, which might or might not work, depending on the > circumstances. You may have to use NO_WERROR or other tricks. > > > ... > >> 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. > > > > I had a misunderstanding in the terminus "cross compiling", I check now the build with this > > option set to be enabled. > > Yes, this is a bit confusing, but in fact it *can* be a real cross > compiler, if you are targeting another architecture, for example doing > "make buildworld TARGET=arm64" from an x86_64 host. > > And of course if you are building natively, it is 'just' a regular > bootstrap compiler. > > -Dimitry > As it turns out, I already used in both sections CONF_BUILD= CONF_WORLD= of nanoBSD's configuration WITHOUT_SYSTEM_COMPILER and added also WITHOUT_SYSTEM_LINKER to be safe. But I don't understand why the make environment is trying to compile a piece of code that is disabled via "nodevice" as shown in my initial report herein: [...] 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] [...] From my point of view neither compiler suite, LLVM14 or LLVM15, should have picked up the if_an driver so far. Or do I miss something here? If so, my apologys. Kind regards Oliver -- O. Hartmann