From patchwork Fri Jan 19 13:15:08 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Pavan Nikhilesh X-Patchwork-Id: 34092 X-Patchwork-Delegate: bruce.richardson@intel.com 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 8A68B1B1D8; Fri, 19 Jan 2018 14:15:32 +0100 (CET) Received: from NAM03-DM3-obe.outbound.protection.outlook.com (mail-dm3nam03on0051.outbound.protection.outlook.com [104.47.41.51]) by dpdk.org (Postfix) with ESMTP id 4C4DC1B1BD for ; Fri, 19 Jan 2018 14:15:30 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=CAVIUMNETWORKS.onmicrosoft.com; s=selector1-cavium-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=cS2tLO6lsd88ykom9ThN/3qDrc46z7awIjrhBAIA8Ak=; b=W6cGRVYdD7mfbZ+sUZ4emCGOu2r0XeFRprLGrHJ4SyKQZhbsa1GVv9J9eYowdtO3yptFCzv1LbZ6YidGR/x9mfy7FV3JkkJddM4ETiGoXpX6Bzs1Iw+XG3J952iT5gR/cwAVCUqpNjfvNGnjCxrjXw8npT+haQw0XvjDF8ZNlFw= Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=Pavan.Bhagavatula@cavium.com; Received: from Pavan-LT.caveonetworks.com (111.93.218.67) by DM5PR07MB3465.namprd07.prod.outlook.com (10.164.153.20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.407.7; Fri, 19 Jan 2018 13:15:26 +0000 From: Pavan Nikhilesh To: jerin.jacob@caviumnetworks.com, bruce.richardson@intel.com, harry.van.haaren@intel.com Cc: dev@dpdk.org, Pavan Nikhilesh Date: Fri, 19 Jan 2018 18:45:08 +0530 Message-Id: <20180119131508.7768-1-pbhagavatula@caviumnetworks.com> X-Mailer: git-send-email 2.14.1 MIME-Version: 1.0 X-Originating-IP: [111.93.218.67] X-ClientProxiedBy: BN6PR1301CA0001.namprd13.prod.outlook.com (10.174.84.142) To DM5PR07MB3465.namprd07.prod.outlook.com (10.164.153.20) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 32aa8ae3-3dad-4b59-0ef3-08d55f3eb5d1 X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(7020095)(4652020)(5600026)(4604075)(2017052603307)(7153060)(7193020); SRVR:DM5PR07MB3465; X-Microsoft-Exchange-Diagnostics: 1; DM5PR07MB3465; 3:dxqqcBm0dsdxKAyFtC78oeLbu/seEu4iEMZ+vH2a6dgQtxEYsP3xXEG8EXpXMA64G1arQVmW+nYdfNWaIn9Emu1gLu86pbs1zl87lQve2HdyQ0BImFrgQB5RqaHQBmPAzXHpj3r8fKurU4nZx9Nyeit5CEYQ7kKrHsWDTy1fbsNuMUabUXewepHB3A2ic6Twff8D3ALPiC7vkZttavmwCKHFatmUVhCh2wUqVztT2Y+8HOC6Onis/V/VoGHXZSLV; 25:b8PATxiGAQu7s5A8R/ELcMAhtSPid9PNZ9TNf1D54DvA5rihVMxLyq/sPaLU7gPO7BGywQGQ6Di7GAS84tIowtUqLi2qBtC/WmRh3NzY6/63QjcWIfeIb9htk1Zr2J2fgVRHOv2JZK3T/rJCGuIge2zMQoIm3JwraJ93ID5wPKBh78qKf2B+amhvjXDOg0qGi/d11OKBQRt1oLABSMGAjAKDo0NbjUa4PEO3xOKbp96ZdbUSBT8gp4WcAryc0AfoIupD93R+2yahDf2S5/s1x2iBYmhbNWHYpuWRbmq9L5ss0qbLoYJEDHqEAA8yzrznRwRPfAH2ESJNfp8Ejijm4g==; 31:jP853vMIBVJvJjZShb0va3Wcmtwiv4+xLGp394GNY/ZKM2q2ClQUtl+udctWLyfiPcL9JnAz9BQoR82PzRDKontLK6VmFk+dx0XSNOsb0QEJtMZuIobMCrOS5StjWuziPK0Kau3D+fvjjszMbNEHBXmd8MSr6hZ5EcoJyQv3GPl9yTRegUJOhV+9cUKYnmEToaBKNM7lSqs11Zy4SlKKhxzvOad3BNxV3QWs3Ai8F6I= X-MS-TrafficTypeDiagnostic: DM5PR07MB3465: X-Microsoft-Exchange-Diagnostics: 1; DM5PR07MB3465; 20:YpYnSoELfNLfSbBZVgOlgR5LpXrZCiR/N3ZVkO+711VX1KKl5sUhcRJ4LpUUM+ihG15HxsgOppgr0sQUvr7A7jEzb1vvFFjMq+C0gL1iTNc0kwEJNTUrpVLOTBybmXKjFJrzJoGK0IOjqg65F7pZZ8ExNlSu0PCjRx+mQ94cqRMczcF5TBQ0k+HWw+j3jQNHo/Jozb5SN+wbW2nAp9RJd20RGc9nmqVSosNK3eCurkamDgCRUo2e1sKpGGljlbyeHNrxsTrFkXcYdBwbBnTwKa81vhCi29s5ZutG1qoMDbHX/SaUlcvXyqQVDDdD7tkqFJSD0W9uK23W2FJNkdXP6tQIxMYYTizpRJc+dUEkLzjEjTtzEnxgqDohddJtnXvp+ZJ9478KkeaIb+S5A32DxS6+qFsrpEMqyFXGtNPIbhyA7p0WKjoXLQOL1ske/7LGwxGdCl5r01riEZvPpwXPZ1/1w7w5keYeXA0f0QFWJYYgexff3k+xc2KK7QYjn/k1+00kkLOKOARYhLNLQ7WQVrkpXgOoRwMU3HZHM0rr+6obwwVhcjNjeSIjVJM6qvlZz4+n2CFuRIYz9n799yByiN7yI401z2Ro5KNOij+1kHQ=; 4:4+4ESXN+T9IIJMtiPzXf2J3M8M3j5Ms1EiuHoG2nLMrsvdyGFSL/xkwffdHeKBdT8BMdzX6t6yyrFb9gMPZLz2BxbquQFj8DQQ2Y3yaOuQOMQ3KpufIwKsijHKly6aQFGcZ84eVJ8Trl9vJnucF6JuIUIw7pUZFnquNwfUQ+IfWnq/t2gqSQYOOK7sKXl15DvB67hGgJRrcXydVciSIkt9yYIYOYSSXof+zEe2JXD01qv8CEJNDhPuNjmZo08ya6qnK42/WEJ3kXYL8ij9vGgg== X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(6040495)(2401047)(5005006)(8121501046)(3002001)(93006095)(3231023)(2400077)(944501161)(10201501046)(6041282)(20161123560045)(20161123558120)(20161123562045)(20161123564045)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(6072148)(201708071742011); SRVR:DM5PR07MB3465; BCL:0; PCL:0; RULEID:(100000803101)(100110400095); SRVR:DM5PR07MB3465; X-Forefront-PRVS: 0557CBAD84 X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(376002)(39860400002)(366004)(346002)(396003)(39380400002)(189003)(199004)(36756003)(48376002)(6666003)(5660300001)(97736004)(1076002)(50226002)(53416004)(8936002)(5009440100003)(25786009)(50466002)(69596002)(72206003)(7736002)(478600001)(305945005)(26005)(42882006)(106356001)(107886003)(6512007)(6486002)(51416003)(53936002)(52116002)(6506007)(6116002)(3846002)(68736007)(4326008)(316002)(105586002)(2906002)(8676002)(81166006)(16586007)(81156014)(386003)(47776003)(16526018)(66066001)(42262002); DIR:OUT; SFP:1101; SCL:1; SRVR:DM5PR07MB3465; H:Pavan-LT.caveonetworks.com; FPR:; SPF:None; PTR:InfoNoRecords; MX:1; A:1; LANG:en; Received-SPF: None (protection.outlook.com: cavium.com does not designate permitted sender hosts) X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; DM5PR07MB3465; 23:A+PQaYT/JyRsbLHhF8DTRXGHcjzFHtcRQajfEagld?= x28cpR09X6VPBIkZTcTvEfyTonluxD8LuHFxI7jFxPyNugp4egGJBxYTSeQCtDjaTgZPVjo/TqOTNLj9QH+Whodbn9iCTifRXIh1LLDfNtzKmoDuImkSv5m/kOz9/QvVnr/9uoXDczCVP3nb9rx97B96+uFtC75+ygzj0uZsZ459HGgqcSgXXV886wStIfZ2jdn8K7MMOL7/RRcc3GmlfT8bMM+TVKrdDi4YEKKwyFU2SuMnUbSacVLaBhSkovrDifqFV4nmE5x/FUZvkU/xJvEMrTTfGjFzEVez8Ny69dRwMrJ+/56VHJDt2l80ofSbc72M8l6mxRUQp/kJGVLjoL9x++H92iBVIwT9R8Lfd+2drYnKBPiS5UDyNjtJU6oFzAW6tTaOyESvIJPNzCCT+vEhR4n0F4LRCVqU7ufqc4/hdIiFS8ZMosm3iAwRpCCoCn4guWg8yO1OPr2V9G/Wg8jB0ZeFjNWjnvrt4ROpzfBfzHDwMjpm/Izr5hKH41SRqByISOJ0CRCQmVnJzHoAEHnBfmOgiKLMHps8wSV6XPZLDp9UyfEm/20hc30I0IIticlmlOgF8jYkEA36iGRTI9tcYqZ2hLmxKUfMlKRMOW5v5j/4T3NBNdhcJD36kwBLBlvKSa1rlEbWGK7yMfzb2Q3qUlDH15X5fwe/L4wDyZOZytJQZlgksrP5XfDwK7Em9cDI0hMTK11vkIEgG5JpIHjO/Z7OnEXbNMKXeejHPWaIOLMkhEfdEfRMx2sGw6eAHqdddgY68aL8M0b0jd/J8p4oX/WcuJCW6R2k5c7S+IF02+dagXmo6grq6sbW67DX3F+s2PrMOP2inVoDHOUMozRuyEs70umNOjE3B9iwBfmfck/SYaMd1voTigFuRxMwveVIVDnps7rvpupqKm7YKo8yRn8M6vTrcj7ZJKvJlmPHxny5FTVJwy4mCp7d5mpZN8rIBAvWVTitQnVy+lCVlRRzSInyXVVGtOryqzSY6He49arVg0/aD9inHQkgeL+0IJyZUleUgSakSa0WYRX2224Qm5XilglXgDLb8QGIzIYdfkZH2M112xZGClp5plW6rwHR2XsEHT5p0DEo293aQJJhgY514SsBG5g97LLpatPPDlSS5F0A6Fz/U2do/O17qw= X-Microsoft-Exchange-Diagnostics: 1; DM5PR07MB3465; 6:BC/XogZiQyxPUlWKxqto8wneTsgu+gcCnOuEvPjvJyFBnn3tgwic/0raf6co9ak8wIarRoEy/92Ptn/DSuNXlzr2dmfqbhn5LiaQI6RvCbYsOEAcfXyU9qxcyolntR5eilq0S+KZDOBbQa23L0RsD1menvsPXXcjYIjw6+Eh/D47zSeM2SjE7U0dXTtkqip84HUSoZ/4TWJFQneRIdPaL7q+Fpj4U5HKiIvlfzA3ms5+PwMDGrg90fjvSeqHMkhk9kAK3cVDJJTq/ANS9j5Yz9mODG05KsL+jvIJgp5YG0rHUSobIKr7EApNPP40lvLB0+yOPOEA3CGtrzMaCZO6hkbjkalHlUOXOAPmHL5nrLg=; 5:Ks/O50IkAafOF35HOk2BjBgneyaUs9p0tI5StEZnNQop5R7fevQBQX88Hjnr0S3tH54dJBHfAUQ3iuclBEtD/YqEmPLWyI0h1s4TgL7xk0eVfilAiGop9ZpYf0uinhUhIBQoiV81fKCeTuzQemADkA1Y4plg2ovxwiFM4gCoLlg=; 24:2mn1Jqwjzvu3at5Mi7RIlk8rQK9C2rnN1r6nXMVuN0xfNlE5z0QFqdCEPA4MDY0WDZ8TRyVFPv4o0nyuqLtFGHjPBlsemHUFwlAY1zMM18U=; 7:DXiwu2YP8AIevCBCq1V5TJitr4wSPJRFEBUnuEv0xOglXlHldZJ4Y30pDAne/Ez2QIIIk3SutXJe5lRa75n/znZM79mtM67hhLWT3pfhfG+k998AkUwd0f1mEOHJAhKHCRmJxzaBPWv7d0F1ApxzBdndmYUPzz56GuzZAtc0CYfflt546w0rkcBIukJdXdFK8lYpzy8Ch/1e2TQJd5OHIrqnlYB5NJhkwyM/K5lJa+XqAn4Iv9ThX74mlT4BdM+x SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: caviumnetworks.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 19 Jan 2018 13:15:26.6250 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 32aa8ae3-3dad-4b59-0ef3-08d55f3eb5d1 X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 711e4ccf-2e9b-4bcf-a551-4094005b6194 X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM5PR07MB3465 Subject: [dpdk-dev] [PATCH] build: add support for vendor specific ARM cross builds 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" Add various vendor specific cross build targets. This can be verified by using linaro toolchain and running meson build --cross-file config/arm/arch64_armv8__cross In future more cross build targets can be added. Signed-off-by: Pavan Nikhilesh --- config/arm/arch64_armv8_generic_cross | 10 +++++++ config/arm/arch64_armv8_thunderx_cross | 13 +++++++++ config/arm/meson.build | 52 +++++++++++++++++++--------------- 3 files changed, 52 insertions(+), 23 deletions(-) create mode 100644 config/arm/arch64_armv8_generic_cross create mode 100644 config/arm/arch64_armv8_thunderx_cross diff --git a/config/arm/arch64_armv8_generic_cross b/config/arm/arch64_armv8_generic_cross new file mode 100644 index 000000000..3b4d3c469 --- /dev/null +++ b/config/arm/arch64_armv8_generic_cross @@ -0,0 +1,10 @@ +[binaries] +c = 'aarch64-linux-gnu-gcc' +cpp = 'aarch64-linux-gnu-cpp' +ar = 'aarch64-linux-gnu-gcc-ar' + +[host_machine] +system = 'linux' +cpu_family = 'aarch64' +cpu = 'armv8-a' +endian = 'little' diff --git a/config/arm/arch64_armv8_thunderx_cross b/config/arm/arch64_armv8_thunderx_cross new file mode 100644 index 000000000..7ff34af74 --- /dev/null +++ b/config/arm/arch64_armv8_thunderx_cross @@ -0,0 +1,13 @@ +[binaries] +c = 'aarch64-linux-gnu-gcc' +cpp = 'aarch64-linux-gnu-cpp' +ar = 'aarch64-linux-gnu-gcc-ar' + +[host_machine] +system = 'linux' +cpu_family = 'aarch64' +cpu = 'armv8-a' +endian = 'little' + +[properties] +implementor_id = '0x43' diff --git a/config/arm/meson.build b/config/arm/meson.build index 62af5e68a..79e453997 100644 --- a/config/arm/meson.build +++ b/config/arm/meson.build @@ -34,6 +34,8 @@ else dpdk_conf.set('RTE_ARCH_ARM64', 1) dpdk_conf.set('RTE_ARCH_64', 1) + machine = [] + cmd_output = [] if not meson.is_cross_build() # The script returns ['Implementor', 'Variant', 'Architecture', # 'Primary Part number', 'Revision'] @@ -46,31 +48,35 @@ else machine_args = [] # Clear previous machine args cmd_output = cmd.stdout().strip().split(' ') machine = get_variable('impl_' + cmd_output[0]) - message('Implementor : ' + machine[0]) + endif + else + impl_id = meson.get_cross_property('implementor_id', 'generic') + machine = get_variable('impl_' + impl_id, 'generic') + endif - foreach flag: machine[1] - dpdk_conf.set(flag[0], flag[1]) + if machine != 'generic' + message('Implementor : ' + machine[0]) + foreach flag: machine[1] + dpdk_conf.set(flag[0], flag[1]) + endforeach + # Primary part number based mcpu flags are supported + # for gcc versions > 7 + if cc.version().version_compare('<7.0') or cmd_output.length() == 0 + foreach marg: machine[2] + if marg[0] == 'default' + foreach f: marg[1] + machine_args += f + endforeach + endif + endforeach + else + foreach marg: machine[2] + if marg[0] == cmd_output[3] + foreach f: marg[1] + machine_args += f + endforeach + endif endforeach - - # Primary part number based mcpu flags are supported - # for gcc versions > 7 - if cc.version().version_compare('<7.0') - foreach marg: machine[2] - if marg[0] == 'default' - foreach f: marg[1] - machine_args += f - endforeach - endif - endforeach - else - foreach marg: machine[2] - if marg[0] == cmd_output[3] - foreach f: marg[1] - machine_args += f - endforeach - endif - endforeach - endif endif endif endif