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

Attachment: signature.asc
Description: Message signed with OpenPGP

Reply via email to