[dpdk-dev] [PATCH] build: enable BSD features visibility for FreeBSD

Bruce Richardson bruce.richardson at intel.com
Tue May 14 15:19:38 CEST 2019


On Tue, May 14, 2019 at 02:15:04PM +0100, Smoczynski, MarcinX wrote:
> 
> 
> > -----Original Message-----
> > From: Richardson, Bruce
> > Sent: Tuesday, May 14, 2019 2:20 PM
> > To: Smoczynski, MarcinX <marcinx.smoczynski at intel.com>
> > Cc: thomas at monjalon.net; dev at dpdk.org; Ananyev, Konstantin
> > <konstantin.ananyev at intel.com>; adrien.mazarguil at 6wind.com
> > Subject: Re: [PATCH] build: enable BSD features visibility for FreeBSD
> > 
> > On Tue, May 14, 2019 at 01:43:54PM +0200, Marcin Smoczynski wrote:
> > > When a component uses either XOPEN_SOURCE or POSIX_C_SOURCE
> > macro
> > > explicitly in its build recipe, it restricts visibility of a non POSIX
> > > features subset, such as IANA protocol numbers (IPPROTO_* macros).
> > > Non standard features are enabled by default for DPDK both for Linux
> > > thanks to _GNU_SOURCE and for FreeBSD thanks to __BSD_VISIBLE.
> > However
> > > using XOPEN_SOURCE or POSIX_(C_)SOURCE in a component causes
> > > __BSD_VISIBLE to be defined to 0 for FreeBSD, causing different
> > > feature sets visibility for Linux and FreeBSD. It restricts from using
> > > IPPROTO macros in public headers, such as rte_ip.h, despite the fact
> > > they are already widely used in sources.
> > >
> > > Add __BSD_VISIBLE macro specified unconditionally for FreeBSD targets
> > > which enforces feature sets visibility unification between Linux and
> > > FreeBSD.
> > >
> > > This patch solves the problem of build breaks for [1] on FreeBSD [2]
> > > following the discussion [3].
> > >
> > > [1] https://mails.dpdk.org/archives/dev/2019-May/131885.html
> > > [2] http://mails.dpdk.org/archives/test-report/2019-May/082263.html
> > > [3] https://mails.dpdk.org/archives/dev/2019-May/132110.html
> > >
> > > Signed-off-by: Marcin Smoczynski <marcinx.smoczynski at intel.com>
> > > ---
> > >  app/meson.build               | 5 +++++
> > >  drivers/meson.build           | 5 +++++
> > >  examples/meson.build          | 5 +++++
> > >  lib/meson.build               | 5 +++++
> > >  mk/target/generic/rte.vars.mk | 5 +++++
> > >  5 files changed, 25 insertions(+)
> > >
> > Rather than adding this in 4 places to the meson build, would it break
> > anything to just add it using add_project_arguments() in
> > config/meson.build?
> 
> Sounds good to me. I was following the way -D_GNU_SOURCE was added.
> Should I move -D_GNU_SOURCE to config/meson.build too? It looks like
> it is the same situation as it is with __BSD_VISIBLE.
> 

If it's being added everywhere then that seems best, yes.


More information about the dev mailing list