From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-wg0-f43.google.com (mail-wg0-f43.google.com [74.125.82.43]) by dpdk.org (Postfix) with ESMTP id 226819A8A for ; Fri, 17 Apr 2015 00:11:30 +0200 (CEST) Received: by wgso17 with SMTP id o17so95747121wgs.1 for ; Thu, 16 Apr 2015 15:11:30 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=HEEp3HZ0K/r5nLpiuXXdUIxyyisBxabJIgDKOWYGPV8=; b=MghTxpycVlVIvN5I/xCBypZIHmkwHSMCwoiffJ3b6iX8iSAC3rqaOytL5xg64oKfOC h9kdNTuFFNASxYxIh9Obki3LIagOWbtufVoIHQWtuOstR2nuudLywXqDOqfFY4vbBJvC +f6X15DglAm/H2I2U36iQYhUMUfs2gVb1RJbSgv3146GgwuJaFpQNYdYzE9SFLch6w2s kqD29qlL/XhpnYoG9EdXfn2HtDAdRZu0Qg9tF1amKMWabteCf99T9l7Tck0brQE46Biv LXTcX3rFL3J0LwFfj8Ez6aHN6gXF/eHYVkbNGJFhxGQHrDIqwxgnYSUWVSqTPbpMuC4v VcvQ== X-Gm-Message-State: ALoCoQkWrD4Mfccogt5R2zE4iLQQ84aDuUWx44V3RZTVGxjpaIA9k7qLupmJazGs1hevMAo6NLt3 X-Received: by 10.194.24.35 with SMTP id r3mr63422593wjf.125.1429222290006; Thu, 16 Apr 2015 15:11:30 -0700 (PDT) Received: from localhost.localdomain (136-92-190-109.dsl.ovh.fr. [109.190.92.136]) by mx.google.com with ESMTPSA id jh1sm83811wid.9.2015.04.16.15.11.28 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Thu, 16 Apr 2015 15:11:29 -0700 (PDT) From: Thomas Monjalon To: dev@dpdk.org Date: Fri, 17 Apr 2015 00:10:36 +0200 Message-Id: <1429222237-8002-1-git-send-email-thomas.monjalon@6wind.com> X-Mailer: git-send-email 2.2.2 In-Reply-To: <1429130956-17828-1-git-send-email-thomas.monjalon@6wind.com> References: <1429130956-17828-1-git-send-email-thomas.monjalon@6wind.com> Subject: [dpdk-dev] [PATCH v3 1/2] mk: fix build with gcc 4.4 and clang X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: patches and discussions about DPDK List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 16 Apr 2015 22:11:30 -0000 With GCC 4.4.7 from CentOS 6.5, the following errors arise: lib/librte_pmd_ixgbe/ixgbe_rxtx.c: In function 'ixgbe_dev_rx_queue_setup': lib/librte_pmd_ixgbe/ixgbe_rxtx.c:2509: error: missing initializer lib/librte_pmd_ixgbe/ixgbe_rxtx.c:2509: error: (near initialization for 'dev_info.driver_name') lib/librte_pmd_ixgbe/ixgbe_rxtx.c: In function 'ixgbe_set_rsc': lib/librte_pmd_ixgbe/ixgbe_rxtx.c:4072: error: missing initializer lib/librte_pmd_ixgbe/ixgbe_rxtx.c:4072: error: (near initialization for 'dev_info.driver_name') lib/librte_pmd_ixgbe/ixgbe_rxtx.c: In function 'ixgbe_recv_pkts_lro_single_alloc': lib/librte_pmd_ixgbe/ixgbe_rxtx.c:1479: error: 'next_rsc_entry' may be used uninitialized in this function lib/librte_pmd_ixgbe/ixgbe_rxtx.c:1480: error: 'next_rxe' may be used uninitialized in this function The "missing initializer" warning is a GCC bug which seems fixed in 4.7. The same warning is thrown by clang. The "may be used uninitialized" warning is another GCC bug which seems fixed in 4.7. Fixes: 8eecb3295aed ("ixgbe: add LRO support") Signed-off-by: Thomas Monjalon --- changes in v2: - option -Wno-missing-field-initializers for old GCC instead of code workaround changes in v3: - option -Wno-missing-field-initializers for clang - option -Wno-uninitialized for old GCC instead of code workaround (=NULL) - remove redundants -Wno-uninitialized from ixgbe Makefile lib/librte_pmd_ixgbe/Makefile | 4 ---- mk/toolchain/clang/rte.vars.mk | 3 +++ mk/toolchain/gcc/rte.vars.mk | 9 +++++++++ 3 files changed, 12 insertions(+), 4 deletions(-) diff --git a/lib/librte_pmd_ixgbe/Makefile b/lib/librte_pmd_ixgbe/Makefile index ae36202..fbf6966 100644 --- a/lib/librte_pmd_ixgbe/Makefile +++ b/lib/librte_pmd_ixgbe/Makefile @@ -76,10 +76,6 @@ ifeq ($(shell test $(GCC_VERSION) -ge 50 && echo 1), 1) CFLAGS_ixgbe_common.o += -Wno-logical-not-parentheses endif -ifeq ($(shell test $(GCC_VERSION) -le 46 && echo 1), 1) -CFLAGS_ixgbe_x550.o += -Wno-uninitialized -CFLAGS_ixgbe_phy.o += -Wno-uninitialized -endif endif # diff --git a/mk/toolchain/clang/rte.vars.mk b/mk/toolchain/clang/rte.vars.mk index 40cb389..245ea7e 100644 --- a/mk/toolchain/clang/rte.vars.mk +++ b/mk/toolchain/clang/rte.vars.mk @@ -72,5 +72,8 @@ WERROR_FLAGS += -Wundef -Wwrite-strings # process cpu flags include $(RTE_SDK)/mk/toolchain/$(RTE_TOOLCHAIN)/rte.toolchain-compat.mk +# workaround clang bug with warning "missing field initializer" for "= {0}" +WERROR_FLAGS += -Wno-missing-field-initializers + export CC AS AR LD OBJCOPY OBJDUMP STRIP READELF export TOOLCHAIN_CFLAGS TOOLCHAIN_LDFLAGS TOOLCHAIN_ASFLAGS diff --git a/mk/toolchain/gcc/rte.vars.mk b/mk/toolchain/gcc/rte.vars.mk index 88f235c..0f51c66 100644 --- a/mk/toolchain/gcc/rte.vars.mk +++ b/mk/toolchain/gcc/rte.vars.mk @@ -80,5 +80,14 @@ WERROR_FLAGS += -Wundef -Wwrite-strings # process cpu flags include $(RTE_SDK)/mk/toolchain/$(RTE_TOOLCHAIN)/rte.toolchain-compat.mk +# workaround GCC bug with warning "missing initializer" for "= {0}" +ifeq ($(shell test $(GCC_VERSION) -lt 47 && echo 1), 1) +WERROR_FLAGS += -Wno-missing-field-initializers +endif +# workaround GCC bug with warning "may be used uninitialized" +ifeq ($(shell test $(GCC_VERSION) -lt 47 && echo 1), 1) +WERROR_FLAGS += -Wno-uninitialized +endif + export CC AS AR LD OBJCOPY OBJDUMP STRIP READELF export TOOLCHAIN_CFLAGS TOOLCHAIN_LDFLAGS TOOLCHAIN_ASFLAGS -- 2.2.2