From patchwork Thu Sep 20 15:27:15 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Burakov, Anatoly" X-Patchwork-Id: 45046 X-Patchwork-Delegate: thomas@monjalon.net Return-Path: X-Original-To: patchwork@dpdk.org Delivered-To: patchwork@dpdk.org Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 31E121B120; Thu, 20 Sep 2018 17:27:50 +0200 (CEST) Received: from mga09.intel.com (mga09.intel.com [134.134.136.24]) by dpdk.org (Postfix) with ESMTP id D5A481B10E for ; Thu, 20 Sep 2018 17:27:45 +0200 (CEST) X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga003.fm.intel.com ([10.253.24.29]) by orsmga102.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 20 Sep 2018 08:27:44 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.53,398,1531810800"; d="scan'208";a="81999811" Received: from irvmail001.ir.intel.com ([163.33.26.43]) by FMSMGA003.fm.intel.com with ESMTP; 20 Sep 2018 08:27:22 -0700 Received: from sivswdev01.ir.intel.com (sivswdev01.ir.intel.com [10.237.217.45]) by irvmail001.ir.intel.com (8.14.3/8.13.6/MailSET/Hub) with ESMTP id w8KFRMEi006738; Thu, 20 Sep 2018 16:27:22 +0100 Received: from sivswdev01.ir.intel.com (localhost [127.0.0.1]) by sivswdev01.ir.intel.com with ESMTP id w8KFRLfB025118; Thu, 20 Sep 2018 16:27:21 +0100 Received: (from aburakov@localhost) by sivswdev01.ir.intel.com with LOCAL id w8KFRLng025114; Thu, 20 Sep 2018 16:27:21 +0100 From: Anatoly Burakov To: dev@dpdk.org Cc: Jasvinder Singh , Cristian Dumitrescu , Thomas Monjalon , dpdk@stormmq.com, bruce.richardson@intel.com, stephen@networkplumber.org Date: Thu, 20 Sep 2018 16:27:15 +0100 Message-Id: X-Mailer: git-send-email 1.7.0.7 In-Reply-To: References: In-Reply-To: References: Subject: [dpdk-dev] [PATCH v2 1/7] linuxapp: build with _GNU_SOURCE defined by default X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" We use _GNU_SOURCE all over the place, but often times we miss defining it, resulting in broken builds on musl. Rather than fixing every library's and driver's and application's makefile, fix it by simply defining _GNU_SOURCE by default for all Linuxapp builds. Signed-off-by: Anatoly Burakov --- app/meson.build | 9 ++++++++- drivers/bus/pci/linux/Makefile | 2 -- drivers/meson.build | 6 ++++++ drivers/net/softnic/conn.c | 1 - examples/meson.build | 6 ++++++ lib/librte_eal/linuxapp/eal/Makefile | 16 ---------------- lib/meson.build | 6 ++++++ mk/exec-env/linuxapp/rte.vars.mk | 2 ++ test/test/meson.build | 5 +++++ 9 files changed, 33 insertions(+), 20 deletions(-) diff --git a/app/meson.build b/app/meson.build index 99e0b93ec..c9a52a22b 100644 --- a/app/meson.build +++ b/app/meson.build @@ -11,13 +11,20 @@ apps = ['pdump', # for BSD only lib_execinfo = cc.find_library('execinfo', required: false) +default_cflags = machine_args + +# on Linux, specify -D_GNU_SOURCE unconditionally +if host_machine.system() == 'linux' + default_cflags += '-D_GNU_SOURCE' +endif + foreach app:apps build = true name = app allow_experimental_apis = false sources = [] includes = [] - cflags = machine_args + cflags = default_cflags objs = [] # other object files to link against, used e.g. for # instruction-set optimized versions of code diff --git a/drivers/bus/pci/linux/Makefile b/drivers/bus/pci/linux/Makefile index 96ea1d540..90404468b 100644 --- a/drivers/bus/pci/linux/Makefile +++ b/drivers/bus/pci/linux/Makefile @@ -4,5 +4,3 @@ SRCS += pci.c SRCS += pci_uio.c SRCS += pci_vfio.c - -CFLAGS += -D_GNU_SOURCE diff --git a/drivers/meson.build b/drivers/meson.build index 47b4215a3..74fec716d 100644 --- a/drivers/meson.build +++ b/drivers/meson.build @@ -16,6 +16,12 @@ default_cflags = machine_args if cc.has_argument('-Wno-format-truncation') default_cflags += '-Wno-format-truncation' endif + +# on Linux, specify -D_GNU_SOURCE unconditionally +if host_machine.system() == 'linux' + default_cflags += '-D_GNU_SOURCE' +endif + foreach class:driver_classes drivers = [] std_deps = [] diff --git a/drivers/net/softnic/conn.c b/drivers/net/softnic/conn.c index 990cf40fc..8b6658088 100644 --- a/drivers/net/softnic/conn.c +++ b/drivers/net/softnic/conn.c @@ -8,7 +8,6 @@ #include #include -#define __USE_GNU #include #include diff --git a/examples/meson.build b/examples/meson.build index 4ee7a1114..70c22eb62 100644 --- a/examples/meson.build +++ b/examples/meson.build @@ -22,6 +22,12 @@ default_cflags = machine_args if cc.has_argument('-Wno-format-truncation') default_cflags += '-Wno-format-truncation' endif + +# on Linux, specify -D_GNU_SOURCE unconditionally +if host_machine.system() == 'linux' + default_cflags += '-D_GNU_SOURCE' +endif + foreach example: examples name = example build = true diff --git a/lib/librte_eal/linuxapp/eal/Makefile b/lib/librte_eal/linuxapp/eal/Makefile index fd92c75c2..bfee453bc 100644 --- a/lib/librte_eal/linuxapp/eal/Makefile +++ b/lib/librte_eal/linuxapp/eal/Makefile @@ -85,22 +85,6 @@ SRCS-y += rte_cycles.c CFLAGS_eal_common_cpuflags.o := $(CPUFLAGS_LIST) -CFLAGS_eal.o := -D_GNU_SOURCE -CFLAGS_eal_interrupts.o := -D_GNU_SOURCE -CFLAGS_eal_vfio_mp_sync.o := -D_GNU_SOURCE -CFLAGS_eal_timer.o := -D_GNU_SOURCE -CFLAGS_eal_lcore.o := -D_GNU_SOURCE -CFLAGS_eal_memalloc.o := -D_GNU_SOURCE -CFLAGS_eal_thread.o := -D_GNU_SOURCE -CFLAGS_eal_log.o := -D_GNU_SOURCE -CFLAGS_eal_common_log.o := -D_GNU_SOURCE -CFLAGS_eal_hugepage_info.o := -D_GNU_SOURCE -CFLAGS_eal_common_whitelist.o := -D_GNU_SOURCE -CFLAGS_eal_common_options.o := -D_GNU_SOURCE -CFLAGS_eal_common_thread.o := -D_GNU_SOURCE -CFLAGS_eal_common_lcore.o := -D_GNU_SOURCE -CFLAGS_rte_cycles.o := -D_GNU_SOURCE - # workaround for a gcc bug with noreturn attribute # http://gcc.gnu.org/bugzilla/show_bug.cgi?id=12603 ifeq ($(CONFIG_RTE_TOOLCHAIN_GCC),y) diff --git a/lib/meson.build b/lib/meson.build index 3acc67e6e..2c7ea436a 100644 --- a/lib/meson.build +++ b/lib/meson.build @@ -32,6 +32,12 @@ if cc.has_argument('-Wno-format-truncation') endif enabled_libs = [] # used to print summary at the end + +# on Linux, specify -D_GNU_SOURCE unconditionally +if host_machine.system() == 'linux' + default_cflags += '-D_GNU_SOURCE' +endif + foreach l:libraries build = true name = l diff --git a/mk/exec-env/linuxapp/rte.vars.mk b/mk/exec-env/linuxapp/rte.vars.mk index 3129edc8c..91b778fcc 100644 --- a/mk/exec-env/linuxapp/rte.vars.mk +++ b/mk/exec-env/linuxapp/rte.vars.mk @@ -17,6 +17,8 @@ else EXECENV_CFLAGS = -pthread endif +EXECENV_CFLAGS += -D_GNU_SOURCE + EXECENV_LDLIBS = EXECENV_ASFLAGS = diff --git a/test/test/meson.build b/test/test/meson.build index b1dd6eca2..c81fca439 100644 --- a/test/test/meson.build +++ b/test/test/meson.build @@ -242,6 +242,11 @@ if cc.has_argument('-Wno-format-truncation') cflags += '-Wno-format-truncation' endif +# on Linux, specify -D_GNU_SOURCE unconditionally +if host_machine.system() == 'linux' + default_cflags += '-D_GNU_SOURCE' +endif + test_dep_objs = [] compress_test_dep = dependency('zlib', required: false) if compress_test_dep.found()