Re: devel/nspr: Fails to build on 1500008 5f71f9636efa
- In reply to: tuexen_a_freebsd.org: "Re: devel/nspr: Fails to build on 1500008 5f71f9636efa"
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Fri, 29 Dec 2023 17:09:07 UTC
On Fri, Dec 29, 2023, 6:52 AM <tuexen@freebsd.org> wrote: > > > > On Dec 29, 2023, at 14:43, tuexen@freebsd.org wrote: > > > >> On Dec 29, 2023, at 14:07, Konstantin Belousov <kostikbel@gmail.com> > wrote: > >> > >> On Fri, Dec 29, 2023 at 01:50:34PM +0100, Dimitry Andric wrote: > >>> The problem is really that our kernel headers (those under sys/) > require C99. The only thing that > https://cgit.freebsd.org/src/commit/?id=a8b70cf26030d68631200619bd1b0ad35b34b6b8 > did was move two static inline functions from sys/netinet/tcp_var.h to > sys/netinet/tcp.h, and it looks like the former header is never directly > included by ports. The latter is, so those ports should be switched to C99, > or the sys/netinet/tcp.h header should be fixed to use __inline instead. > >>> > >> netinet/tcp.h is required by POSIX, and as far as we support > applications > >> using C89, it must stay C89 compatible. > >> > >> But why userspace would need these newish accessors at all? IMO at > least > > TCP is now using flags that are not contained in the th_flags field > anymore, > > but also use the th_x2 field. > > > > People were assuming that all flags are in th_flags and th_x2 is not > used and > > used it for internal processing. This was causing problems. > > > > Using the accessor functions hides the split between th_flags and th_x2. > > See, for example, > > > https://cgit.FreeBSD.org/src/commit/?id=a8b70cf26030d68631200619bd1b0ad35b34b6b8 > < > https://cgit.freebsd.org/src/commit/?id=a8b70cf26030d68631200619bd1b0ad35b34b6b8 > > > >> for userspace they do not add any value except additional namespace > pollution. > >> They should be hidden under #ifdef _KERNEL. > > That might be possible. A kernel build with this completes. Haven't > checked a > > buildlworld. Will report when its done. > Thinking about it: since we expose the TCP flags to the world, we should > also expose the accessors related to it. > Yea. __inline is the way to go. I should add this test to the includes test we already run at buildworld time... Warner Best regards > Michael > > > > Best regards > > Michael > >> > >>> -Dimitry > >>> > >>>> On 29 Dec 2023, at 13:30, Nuno Teixeira <eduardo@freebsd.org> wrote: > >>>> > >>>> (...) > >>>> -ansi == Same as -std=c89 > >>>> > >>>> So it seems correct to remove it when -std=c99 is used. > >>>> > >>>> Nuno Teixeira <eduardo@freebsd.org> escreveu no dia sexta, > 29/12/2023 à(s) 12:03: > >>>> > >>>> > >>>> > >>>> I think we have two options: > >>>> 1. Build the ports with a C version of at least C99. > >>>> > >>>> - Adding USE_CSTD=c99 > >>>> - Removing -ansi: > >>>> --- configure.orig 2023-12-29 11:54:11 UTC > >>>> +++ configure > >>>> - CFLAGS="$CFLAGS $(DSO_CFLAGS) -ansi -Wall" > >>>> + CFLAGS="$CFLAGS $(DSO_CFLAGS) -Wall" > >>>> > >>>> Fix build. > >>>> > >>>> Notes: > >>>> > >>>> Adding USE_CSTD=c99 doesn't fix build by itself like we seen on some > ports that were fixed by it. > >>>> > >>>> Something have changed from current 1500007 to 1500008. > >>>> > >>>> 2. Remove the inline from tcp_[gs]et_flags(). > >>>> > >>>> Best regards > >>>> Michael > >>>>> -- > >>>>> Nuno Teixeira > >>>>> FreeBSD Committer (ports) > >>>> > >>>> > >>>> > >>>> -- > >>>> Nuno Teixeira > >>>> FreeBSD Committer (ports) > >>>> > >>>> > >>>> -- > >>>> Nuno Teixeira > >>>> FreeBSD Committer (ports) > >>> > >>> > > > > > > >