From patchwork Wed Jan 9 10:19:15 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Pavan Nikhilesh Bhagavatula X-Patchwork-Id: 49509 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 DCB891B1FD; Wed, 9 Jan 2019 11:19:25 +0100 (CET) Received: from mx0b-0016f401.pphosted.com (mx0b-0016f401.pphosted.com [67.231.156.173]) by dpdk.org (Postfix) with ESMTP id 107C31B1F3 for ; Wed, 9 Jan 2019 11:19:23 +0100 (CET) Received: from pps.filterd (m0045851.ppops.net [127.0.0.1]) by mx0b-0016f401.pphosted.com (8.16.0.27/8.16.0.27) with SMTP id x09AFenC004134; Wed, 9 Jan 2019 02:19:19 -0800 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=marvell.com; h=from : to : cc : subject : date : message-id : references : in-reply-to : content-type : content-transfer-encoding : mime-version; s=pfpt0818; bh=5ORlj1deKkhjKfpHcL+N5xDVlcIbesgz2fGhfWy2De4=; b=OHNC4Yfo9zNtXOjs5UfH5kXWxy49rIfj1MGPNcTJmAfsmGClSsvbu9Hkvk82DrfNCDzm jEnbnLVLvWNM42qkZP73i97fZbsDsNlRm4BH4WM1c5v14qSUOc1w+B+gMQ4RjY4v+Qkt RWUc+VcdtsJXhYH2zqavT3iDDkiN2ShxgqGRmaEVU4BQYutw1BYJAjbv6l/1f+XwK3Hv Uwwh/TetZma1nfi4KhQWVZH/jUVl2PybMkZ5vhDeScHO/U1Xu5eXPy1Pt27TM3dYUBXF LHzMpc7SSY/xDxr3ZvtLmxSgdPhO6HSOnlJH8+R2Pajh2MLLOUOtuCN7KTS42jD1Jo8R hQ== Received: from sc-exch03.marvell.com ([199.233.58.183]) by mx0b-0016f401.pphosted.com with ESMTP id 2pw18fb6sd-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-SHA384 bits=256 verify=NOT); Wed, 09 Jan 2019 02:19:19 -0800 Received: from SC-EXCH03.marvell.com (10.93.176.83) by SC-EXCH03.marvell.com (10.93.176.83) with Microsoft SMTP Server (TLS) id 15.0.1367.3; Wed, 9 Jan 2019 02:19:18 -0800 Received: from NAM01-SN1-obe.outbound.protection.outlook.com (104.47.32.57) by SC-EXCH03.marvell.com (10.93.176.83) with Microsoft SMTP Server (TLS) id 15.0.1367.3 via Frontend Transport; Wed, 9 Jan 2019 02:19:18 -0800 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=marvell.onmicrosoft.com; s=selector1-marvell-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=5ORlj1deKkhjKfpHcL+N5xDVlcIbesgz2fGhfWy2De4=; b=AczD+8ijmR3vApHDEAtVwY0juGAJ20QcKaKFuFjozHKtiJ5NLLN+yRNsO/TNJfsEuIfNRv8E81KjUVOhNY4mVjAgMyBVyzWruZgtkVt4t45ZMWrxGfN6e4pB1d+4NlBJ94yAx42pVSBPjj15xY4V1oGYd2L9LN7zS4Lx0v64qac= Received: from CY4PR1801MB1863.namprd18.prod.outlook.com (10.171.255.14) by CY4PR1801MB1878.namprd18.prod.outlook.com (10.171.255.17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1516.13; Wed, 9 Jan 2019 10:19:15 +0000 Received: from CY4PR1801MB1863.namprd18.prod.outlook.com ([fe80::8d37:71d9:3b0c:ad00]) by CY4PR1801MB1863.namprd18.prod.outlook.com ([fe80::8d37:71d9:3b0c:ad00%2]) with mapi id 15.20.1516.010; Wed, 9 Jan 2019 10:19:15 +0000 From: Pavan Nikhilesh Bhagavatula To: Jerin Jacob Kollanukkaran , "Gavin.Hu@arm.com" , "bruce.richardson@intel.com" , "thomas@monjalon.net" CC: "dev@dpdk.org" , Pavan Nikhilesh Thread-Topic: [dpdk-dev] [PATCH v3 1/4] mk: introduce helper to check valid compiler argument Thread-Index: AQHUqATFUhql4vkX4kWloc1Syi7U/w== Date: Wed, 9 Jan 2019 10:19:15 +0000 Message-ID: <20190109101836.26155-1-pbhagavatula@marvell.com> References: <20190106131933.7898-1-jerinj@marvell.com> In-Reply-To: <20190106131933.7898-1-jerinj@marvell.com> Accept-Language: en-IN, en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-clientproxiedby: BM1PR0101CA0011.INDPRD01.PROD.OUTLOOK.COM (2603:1096:b00:18::21) To CY4PR1801MB1863.namprd18.prod.outlook.com (2603:10b6:910:7a::14) x-ms-exchange-messagesentrepresentingtype: 1 x-originating-ip: [49.205.221.51] x-ms-publictraffictype: Email x-microsoft-exchange-diagnostics: 1; CY4PR1801MB1878; 20:jP+AkOXkKhlzmd3R+PGmCrU3TIzRmjNg4Q8+VEALR4ajyOMHLXpl70wAXnPrybZLFrlGuZoVtiVzwBn686OB7oq1FZiJlu0/pe0D/7XIft4/C4MlBqNwrbodZwhkakrg12tzHTOMgvhHeIPXQHygh0As2tUXPKsyPnkiBEA5v0k= x-ms-office365-filtering-correlation-id: 9e894c79-b951-4d98-9aa7-08d6761be7ee x-microsoft-antispam: BCL:0; PCL:0; RULEID:(2390118)(7020095)(4652040)(8989299)(4534185)(4627221)(201703031133081)(201702281549075)(8990200)(5600109)(711020)(2017052603328)(7153060)(7193020); SRVR:CY4PR1801MB1878; x-ms-traffictypediagnostic: CY4PR1801MB1878: x-microsoft-antispam-prvs: x-forefront-prvs: 0912297777 x-forefront-antispam-report: SFV:NSPM; SFS:(10009020)(39850400004)(376002)(346002)(366004)(136003)(396003)(189003)(199004)(52116002)(71200400001)(71190400001)(6436002)(6512007)(478600001)(6486002)(14454004)(53936002)(99286004)(476003)(1076003)(386003)(102836004)(2616005)(6346003)(78486014)(186003)(6506007)(11346002)(446003)(25786009)(4326008)(76176011)(5660300001)(2201001)(97736004)(2501003)(106356001)(486006)(316002)(66066001)(105586002)(26005)(7736002)(305945005)(81166006)(8676002)(86362001)(81156014)(256004)(3846002)(68736007)(2906002)(8936002)(54906003)(36756003)(6116002)(110136005); DIR:OUT; SFP:1101; SCL:1; SRVR:CY4PR1801MB1878; H:CY4PR1801MB1863.namprd18.prod.outlook.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; MX:1; A:1; received-spf: None (protection.outlook.com: marvell.com does not designate permitted sender hosts) x-ms-exchange-senderadcheck: 1 x-microsoft-antispam-message-info: xbJ/ql3QQZtvy1hSNr1RXfO8gufO0H+NMGxGLKovTNOoMUL9gdrdGDlpRjc9TybEeUi0/nOCjYWLY2Mdkhnk4X7621YTphUpeU/g3y9aEDxKv8nItQw4rh4zaYNKiHpDV5UgMMSchvx/l6Jq200YFZJhtrlPKUZKmhgnHCor1k3vEaYMBTUwW+F3V+Snz/Kxmp/lCv9ltZQniNT7on0394DPESd0xMql+IEffR/NUnJt00xf3aKhtOWnaYjnxCgOB9ZDMIu2c2LjTh/HeYgLAhz6dCo+l+598sVQXVBVBXZ2HYZpqK3xXk1ZRu7C1860 spamdiagnosticoutput: 1:99 spamdiagnosticmetadata: NSPM MIME-Version: 1.0 X-MS-Exchange-CrossTenant-Network-Message-Id: 9e894c79-b951-4d98-9aa7-08d6761be7ee X-MS-Exchange-CrossTenant-originalarrivaltime: 09 Jan 2019 10:19:15.3767 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 70e1fb47-1155-421d-87fc-2e58f638b6e0 X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY4PR1801MB1878 X-OriginatorOrg: marvell.com X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:, , definitions=2019-01-09_06:, , signatures=0 X-Proofpoint-Details: rule=outbound_notspam policy=outbound score=0 priorityscore=1501 malwarescore=0 suspectscore=0 phishscore=0 bulkscore=0 spamscore=0 clxscore=1011 lowpriorityscore=0 mlxscore=0 impostorscore=0 mlxlogscore=809 adultscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.0.1-1810050000 definitions=main-1901090087 Subject: [dpdk-dev] [PATCH v3 1/4] mk: introduce helper to check valid compiler argument 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" From: Jerin Jacob Introduce rte_cc_has_argument() Makefile helper to check a given argument is support by the compiler. Example Usage: include $(RTE_SDK)/mk/rte.helper.mk MACHINE_CFLAGS += $(call rte_cc_has_argument, -mcpu=octeontx2) This would allow adding -mcpu=octeontx2 in MACHINE_CFLAGS if it is only supported by the compiler. The use case for such scheme is to enable the mcpu optimization if the compiler supports else it needs to compile the source code without any errors. This patch also moves inclusion of toolchain's rte.vars.mk to before the machine's rte.vars.mk inclusion to make correct CC available for the cross compile case. Signed-off-by: Jerin Jacob Signed-off-by: Pavan Nikhilesh --- mk/rte.helper.mk | 12 ++++++++++++ mk/target/generic/rte.vars.mk | 22 +++++++++++----------- 2 files changed, 23 insertions(+), 11 deletions(-) create mode 100644 mk/rte.helper.mk diff --git a/mk/rte.helper.mk b/mk/rte.helper.mk new file mode 100644 index 000000000..2c5d5275e --- /dev/null +++ b/mk/rte.helper.mk @@ -0,0 +1,12 @@ +# SPDX-License-Identifier: BSD-3-Clause +# Copyright(c) 2018 Marvell International Ltd + +# rte_cc_has_argument +# Usage: MACHINE_CFLAGS += $(call rte_cc_has_argument, -mno-avx512f) +# Return the argument if the argument is supported by the compiler. +# +define rte_cc_has_argument + $(shell $(CC) -Werror $(1) -c -x c /dev/null -o tmp$$ 2> /dev/null && rm -f tmp$$ && echo $(1) | xargs echo -n) +endef + + diff --git a/mk/target/generic/rte.vars.mk b/mk/target/generic/rte.vars.mk index dd149acc9..25a578ad7 100644 --- a/mk/target/generic/rte.vars.mk +++ b/mk/target/generic/rte.vars.mk @@ -7,6 +7,17 @@ # executive environment. # +# +# toolchain: +# +# - define CC, LD, AR, AS, ... +# - define TOOLCHAIN_CFLAGS variable (overridden by cmdline value) +# - define TOOLCHAIN_LDFLAGS variable (overridden by cmdline value) +# - define TOOLCHAIN_ASFLAGS variable (overridden by cmdline value) +# - may override any previously defined variable +# +include $(RTE_SDK)/mk/toolchain/$(RTE_TOOLCHAIN)/rte.vars.mk + # # machine: # @@ -45,17 +56,6 @@ endif # include $(RTE_SDK)/mk/arch/$(RTE_ARCH)/rte.vars.mk -# -# toolchain: -# -# - define CC, LD, AR, AS, ... -# - define TOOLCHAIN_CFLAGS variable (overridden by cmdline value) -# - define TOOLCHAIN_LDFLAGS variable (overridden by cmdline value) -# - define TOOLCHAIN_ASFLAGS variable (overridden by cmdline value) -# - may override any previously defined variable -# -include $(RTE_SDK)/mk/toolchain/$(RTE_TOOLCHAIN)/rte.vars.mk - # # exec-env: #