From: Christian Ehrhardt Date: Mon, 12 Sep 2016 09:53:51 +0000 (+0200) Subject: build: enable powerpc X-Git-Tag: debian/16.07-1~40 X-Git-Url: https://gerrit.fd.io/r/gitweb?a=commitdiff_plain;h=refs%2Fchanges%2F03%2F2803%2F1;p=deb_dpdk.git build: enable powerpc Enable ppc64el to build supported packages on that architecture as well. xen dependencies are not available on ppc64el, so disable xen pmd in that case. powerpc currently has several libraries and pmds disabled in its default dpdk config. That defines the range of expected-to-work packages. Follow that and remove ppc64el architecture on those libs and pmds as packages. Change-Id: I7f18962ad9e021c42e80739ddd569db4ecfe65dc Signed-off-by: Christian Ehrhardt Change-Id: Ic0bb0741f4027dd4ed371e3228aa770fb3b698f9 Signed-off-by: Christian Ehrhardt --- diff --git a/debian/control b/debian/control index e77cece0..b2a38e4d 100644 --- a/debian/control +++ b/debian/control @@ -10,8 +10,8 @@ Build-Depends: debhelper (>= 9), inkscape, libcap-dev, libpcap-dev, - libxen-dev, - libxenstore3.0, + libxen-dev [amd64 arm64 i386], + libxenstore3.0 [amd64 arm64 i386], python, python-sphinx, python-sphinx-rtd-theme, @@ -25,7 +25,7 @@ Vcs-Browser: https://gerrit.fd.io/r/gitweb?p=deb_dpdk.git Package: dpdk Section: admin -Architecture: amd64 arm64 i386 +Architecture: amd64 arm64 i386 ppc64el Homepage: http://www.dpdk.org Depends: libdpdk-dev (= ${binary:Version}), lsb-base (>= 3.2-14), @@ -41,7 +41,7 @@ Description: Data Plane Development Kit (runtime) Package: dpdk-dev Section: devel -Architecture: amd64 arm64 i386 +Architecture: amd64 arm64 i386 ppc64el Homepage: http://www.dpdk.org Depends: libdpdk-dev (= ${binary:Version}), ${misc:Depends}, ${shlibs:Depends} Description: Data Plane Development Kit (development files) @@ -63,7 +63,7 @@ Description: Data Plane Development Kit (documentation) Package: dpdk-igb-uio-dkms Section: kernel -Architecture: amd64 arm64 i386 +Architecture: amd64 arm64 i386 ppc64el Depends: dkms, dpdk-dev (= ${binary:Version}), libdpdk-dev (= ${binary:Version}), @@ -76,7 +76,7 @@ Description: Data Plane Development Kit (igb uio dkms) Package: dpdk-rte-kni-dkms Section: kernel -Architecture: amd64 arm64 i386 +Architecture: amd64 arm64 i386 ppc64el Depends: dkms, dpdk-dev (= ${binary:Version}), libdpdk-dev (= ${binary:Version}), @@ -89,14 +89,14 @@ Description: Data Plane Development Kit (rte kni dkms) Package: libdpdk-dev Section: libdevel -Architecture: amd64 arm64 i386 +Architecture: amd64 arm64 i386 ppc64el Multi-Arch: same Homepage: http://www.dpdk.org Pre-Depends: ${misc:Pre-Depends} Depends: ${misc:Depends}, libpcap-dev, libethdev4 (= ${binary:Version}), - librte-acl2 (= ${binary:Version}), + librte-acl2 (= ${binary:Version}) [amd64 arm64 i386], librte-cfgfile2 (= ${binary:Version}), librte-cmdline2 (= ${binary:Version}), librte-cryptodev1 (= ${binary:Version}), @@ -107,36 +107,36 @@ Depends: ${misc:Depends}, librte-jobstats1 (= ${binary:Version}), librte-kni2 (= ${binary:Version}) [amd64 arm64], librte-kvargs1 (= ${binary:Version}), - librte-lpm2 (= ${binary:Version}), + librte-lpm2 (= ${binary:Version}) [amd64 arm64 i386], librte-mbuf2 (= ${binary:Version}), librte-mempool2 (= ${binary:Version}), librte-meter1 (= ${binary:Version}), librte-pdump1 (= ${binary:Version}), - librte-pipeline3 (= ${binary:Version}), + librte-pipeline3 (= ${binary:Version}) [amd64 arm64 i386], librte-pmd-af-packet1 (= ${binary:Version}), librte-pmd-bnxt1 (= ${binary:Version}), librte-pmd-bond1 (= ${binary:Version}), librte-pmd-cxgbe1 (= ${binary:Version}), librte-pmd-e1000-1 (= ${binary:Version}), librte-pmd-ena1 (= ${binary:Version}), - librte-pmd-enic1 (= ${binary:Version}), + librte-pmd-enic1 (= ${binary:Version}) [amd64 arm64 i386], librte-pmd-fm10k1 (= ${binary:Version}) [amd64 i386], librte-pmd-i40e1 (= ${binary:Version}) [amd64 i386], - librte-pmd-ixgbe1 (= ${binary:Version}), + librte-pmd-ixgbe1 (= ${binary:Version}) [amd64 arm64 i386], librte-pmd-null-crypto1 (= ${binary:Version}), librte-pmd-null1 (= ${binary:Version}), librte-pmd-pcap1 (= ${binary:Version}), librte-pmd-ring2 (= ${binary:Version}), librte-pmd-vhost1 (= ${binary:Version}), - librte-pmd-virtio1 (= ${binary:Version}), - librte-pmd-vmxnet3-uio1 (= ${binary:Version}), - librte-pmd-xenvirt1 (= ${binary:Version}), - librte-port3 (= ${binary:Version}), + librte-pmd-virtio1 (= ${binary:Version}) [amd64 arm64 i386], + librte-pmd-vmxnet3-uio1 (= ${binary:Version}) [amd64 arm64 i386], + librte-pmd-xenvirt1 (= ${binary:Version}) [amd64 arm64 i386], + librte-port3 (= ${binary:Version}) [amd64 arm64 i386], librte-power1 (= ${binary:Version}), librte-reorder1 (= ${binary:Version}), librte-ring1 (= ${binary:Version}), - librte-sched1 (= ${binary:Version}), - librte-table2 (= ${binary:Version}), + librte-sched1 (= ${binary:Version}) [amd64 arm64 i386], + librte-table2 (= ${binary:Version}) [amd64 arm64 i386], librte-timer1 (= ${binary:Version}), librte-vhost3 (= ${binary:Version}) Description: Data Plane Development Kit (basic development files) @@ -147,7 +147,7 @@ Description: Data Plane Development Kit (basic development files) when running. Package: libethdev4 -Architecture: amd64 arm64 i386 +Architecture: amd64 arm64 i386 ppc64el Section: libs Multi-Arch: same Homepage: http://dpdk.org/doc/api/rte__ethdev_8h.html @@ -173,7 +173,7 @@ Description: Data Plane Development Kit (librte-acl runtime library) This package contains the runtime libraries for librte_acl Package: librte-cfgfile2 -Architecture: amd64 arm64 i386 +Architecture: amd64 arm64 i386 ppc64el Section: libs Multi-Arch: same Homepage: http://dpdk.org/doc/api/rte__cfgfile_8h.html @@ -186,7 +186,7 @@ Description: Data Plane Development Kit (librte-cfgfile runtime library) This package contains the runtime libraries for librte_cfgfile Package: librte-cmdline2 -Architecture: amd64 arm64 i386 +Architecture: amd64 arm64 i386 ppc64el Section: libs Multi-Arch: same Pre-Depends: ${misc:Pre-Depends} @@ -198,7 +198,7 @@ Description: Data Plane Development Kit (librte-cmdline runtime library) This package contains the runtime libraries for librte_cmdline Package: librte-cryptodev1 -Architecture: amd64 arm64 i386 +Architecture: amd64 arm64 i386 ppc64el Section: libs Multi-Arch: same Homepage: http://dpdk.org/doc/api/rte__cryptodev_8h.html @@ -211,7 +211,7 @@ Description: Data Plane Development Kit (librte-cryptodev runtime library) This package contains the runtime libraries for librte_cryptodev Package: librte-distributor1 -Architecture: amd64 arm64 i386 +Architecture: amd64 arm64 i386 ppc64el Section: libs Multi-Arch: same Homepage: http://dpdk.org/doc/api/rte__distributor_8h.html @@ -224,7 +224,7 @@ Description: Data Plane Development Kit (librte-distributor runtime library) This package contains the runtime libraries for librte_distributor Package: librte-eal2 -Architecture: amd64 arm64 i386 +Architecture: amd64 arm64 i386 ppc64el Section: libs Multi-Arch: same Homepage: http://dpdk.org/doc/api/rte__eal_8h.html @@ -237,7 +237,7 @@ Description: Data Plane Development Kit (librte-eal runtime library) This package contains the runtime libraries for librte_eal Package: librte-hash2 -Architecture: amd64 arm64 i386 +Architecture: amd64 arm64 i386 ppc64el Section: libs Multi-Arch: same Homepage: http://dpdk.org/doc/api/rte__hash_8h.html @@ -250,7 +250,7 @@ Description: Data Plane Development Kit (librte-hash runtime library) This package contains the runtime libraries for librte_hash Package: librte-ip-frag1 -Architecture: amd64 arm64 i386 +Architecture: amd64 arm64 i386 ppc64el Section: libs Multi-Arch: same Homepage: http://dpdk.org/doc/api/rte__ip__frag_8h.html @@ -263,7 +263,7 @@ Description: Data Plane Development Kit (librte-ip-frag runtime library) This package contains the runtime libraries for librte_ip_frag Package: librte-jobstats1 -Architecture: amd64 arm64 i386 +Architecture: amd64 arm64 i386 ppc64el Section: libs Multi-Arch: same Homepage: http://dpdk.org/doc/api/rte__jobstats_8h_source.html @@ -276,7 +276,7 @@ Description: Data Plane Development Kit (librte-jobstats runtime library) This package contains the runtime libraries for librte_jobstats Package: librte-kni2 -Architecture: amd64 arm64 +Architecture: amd64 arm64 ppc64el Section: libs Multi-Arch: same Homepage: http://dpdk.org/doc/api/rte__kni_8h.html @@ -289,7 +289,7 @@ Description: Data Plane Development Kit (librte-kni runtime library) This package contains the runtime libraries for librte_kni Package: librte-kvargs1 -Architecture: amd64 arm64 i386 +Architecture: amd64 arm64 i386 ppc64el Section: libs Multi-Arch: same Homepage: http://dpdk.org/doc/api/rte__kvargs_8h.html @@ -315,7 +315,7 @@ Description: Data Plane Development Kit (librte-lpm runtime library) This package contains the runtime libraries for librte_lpm Package: librte-mbuf2 -Architecture: amd64 arm64 i386 +Architecture: amd64 arm64 i386 ppc64el Section: libs Multi-Arch: same Homepage: http://dpdk.org/doc/api/rte__mbuf_8h.html @@ -328,7 +328,7 @@ Description: Data Plane Development Kit (librte-mbuf2 runtime library) This package contains the runtime libraries for librte_mbuf Package: librte-mempool2 -Architecture: amd64 arm64 i386 +Architecture: amd64 arm64 i386 ppc64el Section: libs Multi-Arch: same Homepage: http://dpdk.org/doc/api/rte__mempool_8h.html @@ -341,7 +341,7 @@ Description: Data Plane Development Kit (librte-mempool runtime library) This package contains the runtime libraries for librte_mempool Package: librte-meter1 -Architecture: amd64 arm64 i386 +Architecture: amd64 arm64 i386 ppc64el Section: libs Multi-Arch: same Homepage: http://dpdk.org/doc/api/rte__meter_8h.html @@ -367,7 +367,7 @@ Description: Data Plane Development Kit (librte-pipeline runtime library) This package contains the runtime libraries for librte_pipeline Package: librte-pmd-af-packet1 -Architecture: amd64 arm64 i386 +Architecture: amd64 arm64 i386 ppc64el Section: libs Multi-Arch: same Homepage: http://dpdk.org/browse/dpdk/tree/drivers/net/af_packet @@ -380,7 +380,7 @@ Description: Data Plane Development Kit (librte-pmd-af-packet runtime library) This package contains the runtime libraries for librte_pmd_af_packet Package: librte-pmd-bnxt1 -Architecture: amd64 arm64 i386 +Architecture: amd64 arm64 i386 ppc64el Section: libs Multi-Arch: same Pre-Depends: ${misc:Pre-Depends} @@ -392,7 +392,7 @@ Description: Data Plane Development Kit (librte-pmd-bnxt runtime library) This package contains the runtime libraries for librte_pmd_bnxt Package: librte-pmd-bond1 -Architecture: amd64 arm64 i386 +Architecture: amd64 arm64 i386 ppc64el Section: libs Multi-Arch: same Homepage: http://dpdk.org/doc/guides/prog_guide/link_bonding_poll_mode_drv_lib.html @@ -405,7 +405,7 @@ Description: Data Plane Development Kit (librte-pmd-bond runtime library) This package contains the runtime libraries for librte_pmd_bond Package: librte-pmd-cxgbe1 -Architecture: amd64 arm64 i386 +Architecture: amd64 arm64 i386 ppc64el Section: libs Multi-Arch: same Homepage: http://dpdk.org/doc/guides/nics/cxgbe.html @@ -418,7 +418,7 @@ Description: Data Plane Development Kit (librte-pmd-cxgbe runtime library) This package contains the runtime libraries for librte_pmd_cxgbe Package: librte-pmd-e1000-1 -Architecture: amd64 arm64 i386 +Architecture: amd64 arm64 i386 ppc64el Section: libs Multi-Arch: same Homepage: http://dpdk.org/doc/guides/nics/e1000em.html @@ -431,7 +431,7 @@ Description: Data Plane Development Kit (librte-pmd-e1000 runtime library) This package contains the runtime libraries for librte_pmd_e1000 Package: librte-pmd-ena1 -Architecture: amd64 arm64 i386 +Architecture: amd64 arm64 i386 ppc64el Section: libs Multi-Arch: same Homepage: http://dpdk.org/doc/guides/nics/ena.html @@ -457,7 +457,7 @@ Description: Data Plane Development Kit (librte-pmd-enic runtime library) This package contains the runtime libraries for librte_pmd_enic Package: librte-pmd-fm10k1 -Architecture: amd64 i386 +Architecture: amd64 i386 ppc64el Section: libs Multi-Arch: same Homepage: http://dpdk.org/doc/guides/nics/fm10k.html @@ -496,7 +496,7 @@ Description: Data Plane Development Kit (librte-pmd-ixgbe runtime library) This package contains the runtime libraries for librte_pmd_ixgbe Package: librte-pmd-null-crypto1 -Architecture: amd64 arm64 i386 +Architecture: amd64 arm64 i386 ppc64el Section: libs Multi-Arch: same Homepage: http://dpdk.org/doc/guides/cryptodevs/null.html @@ -509,7 +509,7 @@ Description: Data Plane Development Kit (librte-pmd-null-crypto runtime library) This package contains the runtime libraries for librte_pmd_null_crypto Package: librte-pmd-null1 -Architecture: amd64 arm64 i386 +Architecture: amd64 arm64 i386 ppc64el Section: libs Multi-Arch: same Homepage: http://dpdk.org/browse/dpdk/tree/drivers/net/null @@ -522,7 +522,7 @@ Description: Data Plane Development Kit (librte-pmd-null runtime library) This package contains the runtime libraries for librte_pmd_null Package: librte-pmd-pcap1 -Architecture: amd64 arm64 i386 +Architecture: amd64 arm64 i386 ppc64el Section: libs Multi-Arch: same Homepage: http://dpdk.org/doc/guides/nics/pcap_ring.html#libpcap-based-pmd @@ -535,7 +535,7 @@ Description: Data Plane Development Kit (librte-pmd-pcap runtime library) This package contains the runtime libraries for librte_pmd_pcap Package: librte-pmd-ring2 -Architecture: amd64 arm64 i386 +Architecture: amd64 arm64 i386 ppc64el Section: libs Multi-Arch: same Homepage: http://dpdk.org/doc/guides/nics/pcap_ring.html#rings-based-pmd @@ -548,7 +548,7 @@ Description: Data Plane Development Kit (librte-pmd-ring runtime library) This package contains the runtime libraries for librte_pmd_ring Package: librte-pmd-vhost1 -Architecture: amd64 arm64 i386 +Architecture: amd64 arm64 i386 ppc64el Section: libs Multi-Arch: same Homepage: http://dpdk.org/doc/guides/nics/vhost.html @@ -613,7 +613,7 @@ Description: Data Plane Development Kit (librte-port runtime library) This package contains the runtime libraries for librte_port Package: librte-power1 -Architecture: amd64 arm64 i386 +Architecture: amd64 arm64 i386 ppc64el Section: libs Multi-Arch: same Homepage: http://dpdk.org/doc/api/rte__power_8h.html @@ -626,7 +626,7 @@ Description: Data Plane Development Kit (librte-power runtime library) This package contains the runtime libraries for librte_power Package: librte-reorder1 -Architecture: amd64 arm64 i386 +Architecture: amd64 arm64 i386 ppc64el Section: libs Multi-Arch: same Homepage: http://dpdk.org/doc/api/rte__reorder_8h.html @@ -639,7 +639,7 @@ Description: Data Plane Development Kit (librte-reorder runtime library) This package contains the runtime libraries for librte_reorder Package: librte-ring1 -Architecture: amd64 arm64 i386 +Architecture: amd64 arm64 i386 ppc64el Section: libs Multi-Arch: same Homepage: http://dpdk.org/doc/api/rte__ring_8h.html @@ -678,7 +678,7 @@ Description: Data Plane Development Kit (librte_table runtime library) This package contains the runtime libraries for librte_table Package: librte-timer1 -Architecture: amd64 arm64 i386 +Architecture: amd64 arm64 i386 ppc64el Section: libs Multi-Arch: same Homepage: http://dpdk.org/doc/api/rte__timer_8h.html @@ -691,7 +691,7 @@ Description: Data Plane Development Kit (librte_timer runtime library) This package contains the runtime libraries for librte_timer Package: librte-vhost3 -Architecture: amd64 arm64 i386 +Architecture: amd64 arm64 i386 ppc64el Section: libs Multi-Arch: same Homepage: http://dpdk.org/doc/api/rte__virtio__net_8h.html @@ -704,7 +704,7 @@ Description: Data Plane Development Kit (librte_vhost runtime library) This package contains the runtime libraries for librte_vhost Package: librte-pdump1 -Architecture: amd64 arm64 i386 +Architecture: amd64 arm64 i386 ppc64el Section: libs Multi-Arch: same Pre-Depends: ${misc:Pre-Depends} diff --git a/debian/rules b/debian/rules index d4b09dfe..32673763 100755 --- a/debian/rules +++ b/debian/rules @@ -37,10 +37,16 @@ DPDK_CONFIG := "arm64-armv8a-linuxapp-gcc" RTE_MACHINE := "armv8a" RTE_TARGET := "arm64-armv8a-linuxapp-gcc" else +ifneq (,$(filter $(DEB_HOST_ARCH), ppc64el)) +DPDK_CONFIG := "ppc_64-power8-linuxapp-gcc" +RTE_MACHINE := "power8" +RTE_TARGET := "ppc_64-power8-linuxapp-gcc" +else DPDK_CONFIG := "$(DEB_HOST_GNU_CPU)-native-linuxapp-gcc" RTE_MACHINE := "default" RTE_TARGET := "$(DEB_HOST_GNU_CPU)-default-linuxapp-gcc" endif +endif DPDK_STATIC_DIR = "debian/build/static-root" DPDK_SHARED_DIR = "debian/build/shared-root" @@ -106,6 +112,10 @@ override_dh_auto_configure: -e 's,(LIBRTE_PMD_PCAP=).*,\1y,' \ -e 's,(LIBRTE_PMD_XENVIRT=).*,\1y,' \ $(DPDK_STATIC_DIR)/.config + # xen not available on ppc64el +ifneq (,$(filter $(DEB_HOST_ARCH), ppc64el)) + sed -ri -e 's,(LIBRTE_PMD_XENVIRT=).*,\1n,' $(DPDK_STATIC_DIR)/.config +endif dh_auto_configure override_dh_auto_build-indep: