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?
Also, does this flag need to be used by external apps when compiling against DPDK headers? If so, we need to add this to the pkg-config file for DPDK on BSD. /Bruce