build: enable powerpc 03/2803/1
authorChristian Ehrhardt <christian.ehrhardt@canonical.com>
Mon, 12 Sep 2016 09:53:51 +0000 (11:53 +0200)
committerChristian Ehrhardt <christian.ehrhardt@canonical.com>
Mon, 12 Sep 2016 09:58:27 +0000 (11:58 +0200)
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 <christian.ehrhardt@canonical.com>
Change-Id: Ic0bb0741f4027dd4ed371e3228aa770fb3b698f9
Signed-off-by: Christian Ehrhardt <christian.ehrhardt@canonical.com>
debian/control
debian/rules

index e77cece..b2a38e4 100644 (file)
@@ -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}
index d4b09df..3267376 100755 (executable)
@@ -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: