Date: Wed, 8 Mar 2023 11:19:04 +0100 From: FreeBSD User <freebsd@walstatt-de.de> To: Dimitry Andric <dim@FreeBSD.org> Cc: FreeBSD CURRENT <freebsd-current@freebsd.org> Subject: Re: NanoBSD: CURRENT unable to compile 13-STABLE : error: a function definition without a prototype is deprecated ... in C Message-ID: <20230308111931.27d9e524@thor.intern.walstatt.dynvpn.de> In-Reply-To: <6321CA49-A38A-4FC6-A41E-E9964C2A94E3@FreeBSD.org> References: <20230227192011.08f7aa8e@thor.intern.walstatt.dynvpn.de> <E2AFBCE9-4467-4E75-B7E4-4C6E0B03C0AA@FreeBSD.org> <720721A7-B1ED-405B-98EB-04A3AFCA7FD5@gromit.dlib.vt.edu> <1F3F20A1-C2BC-4A33-ABFD-D20F4ADB67E8@FreeBSD.org> <20230302064153.12940fa8@thor.intern.walstatt.dynvpn.de> <6321CA49-A38A-4FC6-A41E-E9964C2A94E3@FreeBSD.org>
next in thread | previous in thread | raw e-mail | index | archive | help
--Sig_/jc2E+s+In4wxikfrtDwm0T4 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: quoted-printable 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: > >=20 > > Am Mon, 27 Feb 2023 23:46:21 +0100 > > Dimitry Andric <dim@FreeBSD.org> schrieb: =20 > ... > >=20 > > 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. =20 >=20 > 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: >=20 > WITHOUT_SYSTEM_COMPILER > Do not opportunistically skip building a cross-compiler duri= ng > the bootstrap phase of the build. Normally, if the currently > installed compiler matches the planned bootstrap compiler ty= pe > and revision, then it will not be built. This does not prev= ent a > compiler from being built for installation though, only for > building one for the build itself. The WITHOUT_CLANG option > controls that. >=20 > 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 a= nd > 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. >=20 > This option is only relevant when WITH_LLD_BOOTSTRAP is set. >=20 > I find the double negative phrasing "do not skip" always confusing. But > the logic is normally: >=20 > * 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 >=20 > 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. >=20 >=20 > ... > >> The safest solution is to let cross-tools do its thing, which will che= ck > >> the host compiler, and automatically build an appropriate version of t= he > >> compiler and linker for the stable branch, if required. =20 > >=20 > > I had a misunderstanding in the terminus "cross compiling", I check now= the build with this > > option set to be enabled. =20 >=20 > 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=3Darm64" from an x86_64 host. >=20 > And of course if you are building natively, it is 'just' a regular > bootstrap compiler. >=20 > -Dimitry >=20 As it turns out, I already used in both sections CONF_BUILD=3D CONF_WORLD=3D of nanoBSD's configuration WITHOUT_SYSTEM_COMPILER and added also WITHOUT_S= YSTEM_LINKER to be safe. But I don't understand why the make environment is trying to compile a piec= e 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 pr= ototype is deprecated in all versions of C and is not supported in C2x [-Werror,-Wdeprecated-non-prototype] [...] =46rom 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 --=20 O. Hartmann --Sig_/jc2E+s+In4wxikfrtDwm0T4 Content-Type: application/pgp-signature Content-Description: OpenPGP digital signature -----BEGIN PGP SIGNATURE----- iHUEARYKAB0WIQRQheDybVktG5eW/1Kxzvs8OqokrwUCZAhhMwAKCRCxzvs8Oqok r//TAP4kYym1q/317DkrJFFowJg6FcEMthggASHSZU/bdhKxqwD/Rd7igrgk2Vyb gieFISW4TxmB4exgXWxRA4GmhgDJ3QI= =YQXK -----END PGP SIGNATURE----- --Sig_/jc2E+s+In4wxikfrtDwm0T4--
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20230308111931.27d9e524>