From 54d609a13876a80bb791726e91e631262f1921a1 Mon Sep 17 00:00:00 2001 From: Luca Boccassi Date: Mon, 10 Sep 2018 12:32:43 +0100 Subject: [PATCH] build: add ppc64 meson build This has been only build-tested for now, on a native ppc64el POWER8E machine running Debian sid. Signed-off-by: Luca Boccassi Acked-by: Bruce Richardson --- config/meson.build | 10 +++++++++- config/ppc_64/meson.build | 11 +++++++++++ lib/librte_eal/common/arch/ppc_64/meson.build | 5 +++++ .../common/include/arch/ppc_64/meson.build | 16 ++++++++++++++++ 4 files changed, 41 insertions(+), 1 deletion(-) create mode 100644 config/ppc_64/meson.build create mode 100644 lib/librte_eal/common/arch/ppc_64/meson.build create mode 100644 lib/librte_eal/common/include/arch/ppc_64/meson.build diff --git a/config/meson.build b/config/meson.build index 4d755323f4..6f9228c874 100644 --- a/config/meson.build +++ b/config/meson.build @@ -9,7 +9,13 @@ else endif dpdk_conf.set('RTE_MACHINE', machine) machine_args = [] -machine_args += '-march=' + machine +# ppc64 does not support -march=native +if host_machine.cpu_family().startswith('ppc') and machine == 'native' + machine_args += '-mcpu=' + machine + machine_args += '-mtune=' + machine +else + machine_args += '-march=' + machine +endif toolchain = cc.get_id() dpdk_conf.set_quoted('RTE_TOOLCHAIN', toolchain) @@ -84,6 +90,8 @@ if host_machine.cpu_family().startswith('x86') arch_subdir = 'x86' elif host_machine.cpu_family().startswith('arm') or host_machine.cpu_family().startswith('aarch') arch_subdir = 'arm' +elif host_machine.cpu_family().startswith('ppc') + arch_subdir = 'ppc_64' endif subdir(arch_subdir) dpdk_conf.set('RTE_COMPILE_TIME_CPUFLAGS', ','.join(compile_time_cpuflags)) diff --git a/config/ppc_64/meson.build b/config/ppc_64/meson.build new file mode 100644 index 0000000000..e207c438bf --- /dev/null +++ b/config/ppc_64/meson.build @@ -0,0 +1,11 @@ +# SPDX-License-Identifier: BSD-3-Clause +# Copyright(c) 2018 Luca Boccassi + +dpdk_conf.set('RTE_ARCH', 'ppc_64') +dpdk_conf.set('RTE_ARCH_PPC_64', 1) +dpdk_conf.set('RTE_ARCH_64', 1) + +# overrides specific to ppc64 +dpdk_conf.set('RTE_MAX_LCORE', 256) +dpdk_conf.set('RTE_MAX_NUMA_NODES', 32) +dpdk_conf.set('RTE_CACHE_LINE_SIZE', 128) diff --git a/lib/librte_eal/common/arch/ppc_64/meson.build b/lib/librte_eal/common/arch/ppc_64/meson.build new file mode 100644 index 0000000000..40b3dc533a --- /dev/null +++ b/lib/librte_eal/common/arch/ppc_64/meson.build @@ -0,0 +1,5 @@ +# SPDX-License-Identifier: BSD-3-Clause +# Copyright(c) 2018 Luca Boccassi + +eal_common_arch_sources = files('rte_cpuflags.c', + 'rte_cycles.c', 'rte_hypervisor.c') diff --git a/lib/librte_eal/common/include/arch/ppc_64/meson.build b/lib/librte_eal/common/include/arch/ppc_64/meson.build new file mode 100644 index 0000000000..00f9611768 --- /dev/null +++ b/lib/librte_eal/common/include/arch/ppc_64/meson.build @@ -0,0 +1,16 @@ +# SPDX-License-Identifier: BSD-3-Clause +# Copyright(c) 2018 Luca Boccassi + +install_headers( + 'rte_atomic.h', + 'rte_byteorder.h', + 'rte_cpuflags.h', + 'rte_cycles.h', + 'rte_io.h', + 'rte_memcpy.h', + 'rte_pause.h', + 'rte_prefetch.h', + 'rte_rwlock.h', + 'rte_spinlock.h', + 'rte_vect.h', + subdir: get_option('include_subdir_arch')) -- 2.20.1