28188cee2a
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. Add single -D_GNU_SOURCE to config/meson.build as a project argument instead of adding separate directive for each project subtree. 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@intel.com> Acked-by: Konstantin Ananyev <konstantin.ananyev@intel.com> |
||
---|---|---|
.. | ||
arch | ||
exec-env | ||
internal | ||
machine | ||
target/generic | ||
toolchain | ||
rte.app.mk | ||
rte.bsdmodule.mk | ||
rte.combinedlib.mk | ||
rte.cpuflags.mk | ||
rte.extapp.mk | ||
rte.extlib.mk | ||
rte.extobj.mk | ||
rte.extshared.mk | ||
rte.extsubdir.mk | ||
rte.gnuconfigure.mk | ||
rte.helper.mk | ||
rte.hostapp.mk | ||
rte.hostlib.mk | ||
rte.install.mk | ||
rte.lib.mk | ||
rte.module.mk | ||
rte.obj.mk | ||
rte.sdkbuild.mk | ||
rte.sdkconfig.mk | ||
rte.sdkdepdirs.mk | ||
rte.sdkdoc.mk | ||
rte.sdkexamples.mk | ||
rte.sdkgcov.mk | ||
rte.sdkinstall.mk | ||
rte.sdkroot.mk | ||
rte.sdktest.mk | ||
rte.shared.mk | ||
rte.subdir.mk | ||
rte.vars.mk |