Re: NanoBSD: CURRENT unable to compile 13-STABLE : error: a function definition without a prototype is deprecated ... in C
- Reply: FreeBSD User : "Re: NanoBSD: CURRENT unable to compile 13-STABLE : error: a function definition without a prototype is deprecated ... in C"
- Reply: FreeBSD User : "Re: NanoBSD: CURRENT unable to compile 13-STABLE : error: a function definition without a prototype is deprecated ... in C"
- Reply: Ed Maste : "Re: NanoBSD: CURRENT unable to compile 13-STABLE : error: a function definition without a prototype is deprecated ... in C"
- In reply to: FreeBSD User : "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: Thu, 02 Mar 2023 10:13:51 UTC
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