From: Luca Boccassi <bluca@debian.org>
To: dev@dpdk.org
Cc: chaozhu@linux.vnet.ibm.com, christian.ehrhardt@canonical.com,
bruce.richardson@intel.com, thomas@monjalon.net
Subject: [PATCH] build: add PPC64 Meson build
Date: Fri, 7 Sep 2018 19:35:02 +0100 [thread overview]
Message-ID: <20180907183502.26164-1-bluca@debian.org> (raw)
This has been only build-tested for now, on a native ppc64el POWER8E
machine running Debian sid.
Signed-off-by: Luca Boccassi <bluca@debian.org>
---
The build box cannot be used to run DPDK as it doesn't have supported
NICs and root access. Would be great if someone could run-test it, but
at this point I think build support is enough to get started.
config/meson.build | 8 ++++++++
config/ppc_64/meson.build | 15 +++++++++++++++
lib/librte_eal/common/arch/ppc_64/meson.build | 5 +++++
.../common/include/arch/ppc_64/meson.build | 16 ++++++++++++++++
4 files changed, 44 insertions(+)
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..8e87b344c2 100644
--- a/config/meson.build
+++ b/config/meson.build
@@ -9,7 +9,13 @@ else
endif
dpdk_conf.set('RTE_MACHINE', machine)
machine_args = []
+# 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..d6faa7d64f
--- /dev/null
+++ b/config/ppc_64/meson.build
@@ -0,0 +1,15 @@
+# SPDX-License-Identifier: BSD-3-Clause
+# Copyright(c) 2018 Luca Boccassi <bluca@debian.org>
+
+# for checking defines we need to use the correct compiler flags
+march_opt = '-march=@0@'.format(machine)
+
+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)
+dpdk_conf.set('RTE_MAX_LCORE', 256)
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 <bluca@debian.org>
+
+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 <bluca@debian.org>
+
+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.18.0
next reply other threads:[~2018-09-07 18:35 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-09-07 18:35 Luca Boccassi [this message]
2018-09-10 7:26 ` [PATCH] build: add PPC64 Meson build Chao Zhu
2018-09-10 10:50 ` Bruce Richardson
2018-09-10 11:33 ` Luca Boccassi
2018-09-10 11:32 ` [PATCH v2] " Luca Boccassi
2018-09-10 13:28 ` Bruce Richardson
2018-09-17 10:22 ` Thomas Monjalon
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20180907183502.26164-1-bluca@debian.org \
--to=bluca@debian.org \
--cc=bruce.richardson@intel.com \
--cc=chaozhu@linux.vnet.ibm.com \
--cc=christian.ehrhardt@canonical.com \
--cc=dev@dpdk.org \
--cc=thomas@monjalon.net \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.