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.smoczyn...@intel.com> > > Cc: tho...@monjalon.net; dev@dpdk.org; Ananyev, Konstantin > > <konstantin.anan...@intel.com>; adrien.mazarg...@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.smoczyn...@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.