Re: git: a8b70cf26030 - main - netpfil: Use accessor functions and named constants for all tcphdr flags

From: Warner Losh <imp_at_bsdimp.com>
Date: Fri, 29 Dec 2023 19:32:48 UTC
On Fri, Dec 29, 2023, 4:39 AM Dimitry Andric <dim@freebsd.org> wrote:

> On 29 Dec 2023, at 11:17, Dimitry Andric <dim@FreeBSD.org> wrote:
> >
> > On 29 Dec 2023, at 08:35, Antoine Brodin <antoine@FreeBSD.org> wrote:
> >>
> >> On Thu, Dec 28, 2023 at 10:37 PM Gleb Smirnoff <glebius@freebsd.org>
> wrote:
> >>>
> >>> Antoine,
> >>>
> >>> On Thu, Dec 28, 2023 at 08:48:36PM +0000, Antoine Brodin wrote:
> >>> A> >     netpfil: Use accessor functions and named constants for all
> tcphdr flags
> >>> A> >
> >>> ...
> >>> A> This breaks some ports:
> >>> A> /usr/include/netinet/tcp.h:82:8: error: unknown type name 'inline'
> >>>
> >>> Definitely some ports that use some strange compilers :)
> >>>
> >>> Can you please give at least port names?
> >>
> >> Some examples:
> >>
> >>
> https://pkg-status.freebsd.org/gohan04/data/mainamd64PR275986-default-foo/2023-12-28_20h35m41s/logs/errors/nspr-4.35.log
> >>
> https://pkg-status.freebsd.org/gohan04/data/mainamd64PR275986-default-foo/2023-12-28_20h35m41s/logs/errors/opusfile-0.12_1.log
> >
> > The culprit is likely the "-ansi" option. Just get rid of that, it is
> not really useful:
> >
> > cc -o prmapopt.o -c -fvisibility=hidden -O2 -pipe
> -fstack-protector-strong -fno-strict-aliasing -ansi -Wall -fPIC -UDEBUG
> -DPACKAGE_NAME=\"\" -DPACKAGE_TARNAME=\"\" -DPACKAGE_VERSION=\"\"
> -DPACKAGE_STRING=\"\" -DPACKAGE_BUGREPORT=\"\" -DPACKAGE_URL=\"\"
> -DNDEBUG=1 -DHAVE_VISIBILITY_HIDDEN_ATTRIBUTE=1 -DHAVE_VISIBILITY_PRAGMA=1
> -DXP_UNIX=1 -DFREEBSD=1 -DHAVE_BSD_FLOCK=1 -DHAVE_SOCKLEN_T=1
> -DHAVE_POINTER_LOCALTIME_R=1 -DHAVE_DLADDR=1 -DHAVE_LCHOWN=1
> -DHAVE_SETPRIORITY=1 -DHAVE_STRERROR=1 -DHAVE_SYSCALL=1
> -DHAVE_SECURE_GETENV=1 -D_REENTRANT=1 -D_THREAD_SAFE=1 -DFORCE_PR_LOG
> -D_PR_PTHREADS -UHAVE_CVAR_BUILT_ON_SEM -D_NSPR_BUILD_
> -I../../../dist/include/nspr -I../../../pr/include
> -I../../../pr/include/private prmapopt.c
> > In file included from prmapopt.c:46:
> > In file included from prmapopt.c:46:
> > /usr/include/netinet/tcp.h:82:8: error: unknown type name 'inline'
> >   82 | static inline uint16_t
> >      |        ^
>
> Hm, I may have spoken too soon here. If this port has always compiled
> successfully with -ansi, then indeed it may not be that handy to directly
> use the 'inline' keyword in system headers. I think most other system
> headers use '__inline', which is supported by both gcc and clang, even in
> ANSI mode. And if the compiler somehow does not support __inline,
> sys/cdefs.h can make sure all those keywords get removed.
>

Yes. You have to use __inline in system headers.

Warner


-Dimitry
>
>