Re: NanoBSD: CURRENT unable to compile 13-STABLE : error: a function definition without a prototype is deprecated ... in C

From: FreeBSD User <freebsd_at_walstatt-de.de>
Date: Thu, 09 Mar 2023 08:42:44 UTC
Am Wed, 8 Mar 2023 12:13:49 +0100
tuexen@freebsd.org schrieb:

> > On 8. Mar 2023, at 11:42, FreeBSD User <freebsd@walstatt-de.de> wrote:
> > 
> > Am Wed, 8 Mar 2023 11:28:11 +0100
> > Dimitry Andric <dim@FreeBSD.org> schrieb:
> >   
> >> On 8 Mar 2023, at 11:19, FreeBSD User <freebsd@walstatt-de.de> wrote:
> >> ...  
> >>> 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]
> >>> [...]    
> >> 
> >> The "nodevice" is for your custom kernel configuration, but as far as I
> >> can see an(4) is still built as a module, see sys/modules/Makefile:
> >> 
> >> ...
> >> .if ${MACHINE_CPUARCH} == "i386" || ${MACHINE_CPUARCH} == "amd64"
> >> _agp=           agp
> >> _an=            an
> >> 
> >> -Dimitry
> >>   
> > 
> > Oh, I'm sorry,
> > my fault in logic!
> > 
> > Is there a "knob" to explicitely disable that specific module from being built from a
> > point of view of a user like me (not touching the base build system)?  
> Use
> WITHOUT_MODULES=an
> in
> /etc/make.conf
> 
> Best regards
> Michael
> > 
> > -- 
> > O. Hartmann  
> 
> 

With setting 

WITHOUT_SYSTEM_COMPILER=YES
WITHOUT_SYSTEM_LINKER=YES

in CONF_BUILD and CONF_WORLD and WITHOUT_CROSS_COMPILER=YES commented out (not building/not
cross compile?) and a fresh and clean start of the build, I run into

[...]
ld: error: args.o: Opaque pointers are only supported in -opaque-pointers mode (Producer:
'LLVM15.0.7' Reader: 'LLVM 14.0.5') cc: error: linker command failed with exit code 1 (use -v
to see invocation) *** [gh-bc] Error code 1
[...]

That seems to be the issue mostly discussed herein regarding LLVM14 and LLVM15.

Having set

WITHOUT_CROSS_COMPILER=YES
WITHOUT_SYSTEM_COMPILER=YES
WITHOUT_SYSTEM_LINKER=YES
WITHOUT_MODULES=an


in both CONF_BUILD and CONF_WORLD (I do so because I do not know which one is really affecting
the build), I receive the reported compiling error problem in if_an.c.

Setting WITHOUT_MODULES=an in both CONF_BUILD and CONF_WORLD (nanoBSD!) doesn't seem to have
any effect.

Regardfs,

oh


-- 
O. Hartmann