Skip site navigation (1)Skip section navigation (2)
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>