From fe6107da05c0db442c7ace1e87b1520f30aded67 Mon Sep 17 00:00:00 2001 From: "John W. Linville" Date: Mon, 21 Jul 2014 10:02:31 -0400 Subject: [PATCH] Several changes to better comply with packaging guidelines... - Use EXTRA_CFLAGS to include standard Fedora compiler flags in build - Set CONFIG_RTE_MACHINE=default to build for least-common-denominator machines - Turn-off build of librte_acl, since it does not build on default machines - Turn-off build of physical device PMDs that require kernel support - Clean-up the install rules to match current packaging - Correct changelog versions 1.0.7 -> 1.7.0 - Remove ix86 from ExclusiveArch -- it does not build with above changes --- common_linuxapp | 412 --------------------------- defconfig_i686-native-linuxapp-gcc | 73 ----- defconfig_x86_64-native-linuxapp-gcc | 63 ---- dpdk-1.7.0-igb_uio_disable.patch | 15 - dpdk-config.patch | 89 ++++++ dpdk-link-using-cc.patch | 25 -- dpdk.spec | 97 +++---- 7 files changed, 133 insertions(+), 641 deletions(-) delete mode 100644 common_linuxapp delete mode 100644 defconfig_i686-native-linuxapp-gcc delete mode 100644 defconfig_x86_64-native-linuxapp-gcc delete mode 100644 dpdk-1.7.0-igb_uio_disable.patch create mode 100644 dpdk-config.patch delete mode 100644 dpdk-link-using-cc.patch diff --git a/common_linuxapp b/common_linuxapp deleted file mode 100644 index c2934fb..0000000 --- a/common_linuxapp +++ /dev/null @@ -1,412 +0,0 @@ -# BSD LICENSE -# -# Copyright(c) 2010-2014 Intel Corporation. All rights reserved. -# All rights reserved. -# -# Redistribution and use in source and binary forms, with or without -# modification, are permitted provided that the following conditions -# are met: -# -# * Redistributions of source code must retain the above copyright -# notice, this list of conditions and the following disclaimer. -# * Redistributions in binary form must reproduce the above copyright -# notice, this list of conditions and the following disclaimer in -# the documentation and/or other materials provided with the -# distribution. -# * Neither the name of Intel Corporation nor the names of its -# contributors may be used to endorse or promote products derived -# from this software without specific prior written permission. -# -# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -# - -# -# define executive environment -# -# CONFIG_RTE_EXEC_ENV can be linuxapp, baremetal, bsdapp -# -CONFIG_RTE_EXEC_ENV="linuxapp" -CONFIG_RTE_EXEC_ENV_LINUXAPP=y - -## -## machine can define specific variables or action for a specific board -## RTE_MACHINE can be: -## default nothing specific -## native current machine -## atm Intel® Atom™ microarchitecture -## nhm Intel® microarchitecture code name Nehalem -## wsm Intel® microarchitecture code name Westmere -## snb Intel® microarchitecture code name Sandy Bridge -## ivb Intel® microarchitecture code name Ivy Bridge -## -## Note: if your compiler does not support the relevant -march options, -## it will be compiled with whatever latest processor the compiler supports! -## -#CONFIG_RTE_MACHINE="native" -# -## -## define the architecture we compile for. -## CONFIG_RTE_ARCH can be i686, x86_64, x86_64_32 -## -#CONFIG_RTE_ARCH="x86_64" -#CONFIG_RTE_ARCH_X86_64=y -# -## -## The compiler we use. -## Can be gcc or icc. -## -#CONFIG_RTE_TOOLCHAIN="gcc" -#CONFIG_RTE_TOOLCHAIN_GCC=y - -# -# Use intrinsics or assembly code for key routines -# -CONFIG_RTE_FORCE_INTRINSICS=n - -# -# Compile to share library -# -CONFIG_RTE_BUILD_SHARED_LIB=y - -# -# Combine to one single library -# -CONFIG_RTE_BUILD_COMBINE_LIBS=n -CONFIG_RTE_LIBNAME="intel_dpdk" - -# -# Compile libc directory -# -CONFIG_RTE_LIBC=n - -# -# Compile newlib as libc from source -# -CONFIG_RTE_LIBC_NEWLIB_SRC=n - -# -# Use binary newlib -# -CONFIG_RTE_LIBC_NEWLIB_BIN=n - -# -# Use binary newlib -# -CONFIG_RTE_LIBC_NETINCS=n - -# -# Compile libgloss (newlib-stubs) -# -CONFIG_RTE_LIBGLOSS=n - -# -# Compile Environment Abstraction Layer -# -CONFIG_RTE_LIBRTE_EAL=y -CONFIG_RTE_MAX_LCORE=64 -CONFIG_RTE_MAX_NUMA_NODES=8 -CONFIG_RTE_MAX_MEMSEG=256 -CONFIG_RTE_MAX_MEMZONE=2560 -CONFIG_RTE_MAX_TAILQ=32 -CONFIG_RTE_LOG_LEVEL=8 -CONFIG_RTE_LOG_HISTORY=256 -CONFIG_RTE_LIBEAL_USE_HPET=n -CONFIG_RTE_EAL_ALLOW_INV_SOCKET_ID=n -CONFIG_RTE_EAL_ALWAYS_PANIC_ON_ERROR=n -CONFIG_RTE_EAL_IGB_UIO=n -CONFIG_RTE_EAL_VFIO=y - -# -# Special configurations in PCI Config Space for high performance -# -CONFIG_RTE_PCI_CONFIG=n -CONFIG_RTE_PCI_EXTENDED_TAG="" -CONFIG_RTE_PCI_MAX_READ_REQUEST_SIZE=0 - -# -# Compile Environment Abstraction Layer for linux -# -CONFIG_RTE_LIBRTE_EAL_LINUXAPP=y - -# -# Compile Environment Abstraction Layer for Bare metal -# -CONFIG_RTE_LIBRTE_EAL_BAREMETAL=n - -# -# Compile Environment Abstraction Layer to support Vmware TSC map -# -CONFIG_RTE_LIBRTE_EAL_VMWARE_TSC_MAP_SUPPORT=y - -# -# Compile the argument parser library -# -CONFIG_RTE_LIBRTE_KVARGS=y - -# -# Compile generic ethernet library -# -CONFIG_RTE_LIBRTE_ETHER=y -CONFIG_RTE_LIBRTE_ETHDEV_DEBUG=n -CONFIG_RTE_MAX_ETHPORTS=32 -CONFIG_RTE_LIBRTE_IEEE1588=n -CONFIG_RTE_ETHDEV_QUEUE_STAT_CNTRS=16 - -# -# Support NIC bypass logic -# -CONFIG_RTE_NIC_BYPASS=n - -# -# Compile burst-oriented IGB & EM PMD drivers -# -CONFIG_RTE_LIBRTE_EM_PMD=y -CONFIG_RTE_LIBRTE_IGB_PMD=y -CONFIG_RTE_LIBRTE_E1000_DEBUG_INIT=n -CONFIG_RTE_LIBRTE_E1000_DEBUG_RX=n -CONFIG_RTE_LIBRTE_E1000_DEBUG_TX=n -CONFIG_RTE_LIBRTE_E1000_DEBUG_TX_FREE=n -CONFIG_RTE_LIBRTE_E1000_DEBUG_DRIVER=n -CONFIG_RTE_LIBRTE_E1000_PF_DISABLE_STRIP_CRC=n - -# -# Compile burst-oriented IXGBE PMD driver -# -CONFIG_RTE_LIBRTE_IXGBE_PMD=y -CONFIG_RTE_LIBRTE_IXGBE_DEBUG_INIT=n -CONFIG_RTE_LIBRTE_IXGBE_DEBUG_RX=n -CONFIG_RTE_LIBRTE_IXGBE_DEBUG_TX=n -CONFIG_RTE_LIBRTE_IXGBE_DEBUG_TX_FREE=n -CONFIG_RTE_LIBRTE_IXGBE_DEBUG_DRIVER=n -CONFIG_RTE_LIBRTE_IXGBE_PF_DISABLE_STRIP_CRC=n -CONFIG_RTE_LIBRTE_IXGBE_RX_ALLOW_BULK_ALLOC=y -CONFIG_RTE_LIBRTE_IXGBE_ALLOW_UNSUPPORTED_SFP=n -CONFIG_RTE_IXGBE_INC_VECTOR=y -CONFIG_RTE_IXGBE_RX_OLFLAGS_ENABLE=y - -# -# Compile burst-oriented I40E PMD driver -# -CONFIG_RTE_LIBRTE_I40E_PMD=y -CONFIG_RTE_LIBRTE_I40E_DEBUG_INIT=n -CONFIG_RTE_LIBRTE_I40E_DEBUG_RX=n -CONFIG_RTE_LIBRTE_I40E_DEBUG_TX=n -CONFIG_RTE_LIBRTE_I40E_DEBUG_TX_FREE=n -CONFIG_RTE_LIBRTE_I40E_DEBUG_DRIVER=n -CONFIG_RTE_LIBRTE_I40E_PF_DISABLE_STRIP_CRC=n -CONFIG_RTE_LIBRTE_I40E_RX_ALLOW_BULK_ALLOC=y -CONFIG_RTE_LIBRTE_I40E_ALLOW_UNSUPPORTED_SFP=n -CONFIG_RTE_LIBRTE_I40E_16BYTE_RX_DESC=n -CONFIG_RTE_LIBRTE_I40E_QUEUE_NUM_PER_VF=4 -# interval up to 8160 us, aligned to 2 (or default value) -CONFIG_RTE_LIBRTE_I40E_ITR_INTERVAL=-1 - -# -# Compile burst-oriented VIRTIO PMD driver -# -CONFIG_RTE_LIBRTE_VIRTIO_PMD=y -CONFIG_RTE_LIBRTE_VIRTIO_DEBUG_INIT=n -CONFIG_RTE_LIBRTE_VIRTIO_DEBUG_RX=n -CONFIG_RTE_LIBRTE_VIRTIO_DEBUG_TX=n -CONFIG_RTE_LIBRTE_VIRTIO_DEBUG_DRIVER=n -CONFIG_RTE_LIBRTE_VIRTIO_DEBUG_DUMP=n - -# -# Compile burst-oriented VMXNET3 PMD driver -# -CONFIG_RTE_LIBRTE_VMXNET3_PMD=y -CONFIG_RTE_LIBRTE_VMXNET3_DEBUG_INIT=n -CONFIG_RTE_LIBRTE_VMXNET3_DEBUG_RX=n -CONFIG_RTE_LIBRTE_VMXNET3_DEBUG_TX=n -CONFIG_RTE_LIBRTE_VMXNET3_DEBUG_TX_FREE=n -CONFIG_RTE_LIBRTE_VMXNET3_DEBUG_DRIVER=n - -# -# Compile example software rings based PMD -# -CONFIG_RTE_LIBRTE_PMD_RING=y -CONFIG_RTE_PMD_RING_MAX_RX_RINGS=16 -CONFIG_RTE_PMD_RING_MAX_TX_RINGS=16 - -# -# Compile software PMD backed by PCAP files -# -CONFIG_RTE_LIBRTE_PMD_PCAP=y - -# -# Compile link bonding PMD library -# -CONFIG_RTE_LIBRTE_PMD_BOND=y - -# -# Compile Xen PMD -# -CONFIG_RTE_LIBRTE_PMD_XENVIRT=n - -# -# Do prefetch of packet data within PMD driver receive function -# -CONFIG_RTE_PMD_PACKET_PREFETCH=y - -# -# Compile librte_ring -# -CONFIG_RTE_LIBRTE_RING=y -CONFIG_RTE_LIBRTE_RING_DEBUG=n -CONFIG_RTE_RING_SPLIT_PROD_CONS=n - -# -# Compile librte_mempool -# -CONFIG_RTE_LIBRTE_MEMPOOL=y -CONFIG_RTE_MEMPOOL_CACHE_MAX_SIZE=512 -CONFIG_RTE_LIBRTE_MEMPOOL_DEBUG=n - -# -# Compile librte_mbuf -# -CONFIG_RTE_LIBRTE_MBUF=y -CONFIG_RTE_LIBRTE_MBUF_DEBUG=n -CONFIG_RTE_MBUF_SCATTER_GATHER=y -CONFIG_RTE_MBUF_REFCNT_ATOMIC=y -CONFIG_RTE_PKTMBUF_HEADROOM=128 - -# -# Compile librte_timer -# -CONFIG_RTE_LIBRTE_TIMER=y -CONFIG_RTE_LIBRTE_TIMER_DEBUG=n - -# -# Compile librte_malloc -# -CONFIG_RTE_LIBRTE_MALLOC=y -CONFIG_RTE_LIBRTE_MALLOC_DEBUG=n -CONFIG_RTE_MALLOC_MEMZONE_SIZE=11M - -# -# Compile librte_cfgfile -# -CONFIG_RTE_LIBRTE_CFGFILE=y - -# -# Compile librte_cmdline -# -CONFIG_RTE_LIBRTE_CMDLINE=y -CONFIG_RTE_LIBRTE_CMDLINE_DEBUG=n - -# -# Compile librte_hash -# -CONFIG_RTE_LIBRTE_HASH=y -CONFIG_RTE_LIBRTE_HASH_DEBUG=n - -# -# Compile librte_lpm -# -CONFIG_RTE_LIBRTE_LPM=y -CONFIG_RTE_LIBRTE_LPM_DEBUG=n - -# -# Compile librte_acl -# -CONFIG_RTE_LIBRTE_ACL=y -CONFIG_RTE_LIBRTE_ACL_DEBUG=n -CONFIG_RTE_LIBRTE_ACL_STANDALONE=n - -# -# Compile librte_power -# -CONFIG_RTE_LIBRTE_POWER=y -CONFIG_RTE_LIBRTE_POWER_DEBUG=n -CONFIG_RTE_MAX_LCORE_FREQS=64 - -# -# Compile librte_net -# -CONFIG_RTE_LIBRTE_NET=y - -# -# Compile librte_ip_frag -# -CONFIG_RTE_LIBRTE_IP_FRAG=y -CONFIG_RTE_LIBRTE_IP_FRAG_DEBUG=n -CONFIG_RTE_LIBRTE_IP_FRAG_MAX_FRAG=4 -CONFIG_RTE_LIBRTE_IP_FRAG_TBL_STAT=n - -# -# Compile librte_meter -# -CONFIG_RTE_LIBRTE_METER=y - -# -# Compile librte_sched -# -CONFIG_RTE_LIBRTE_SCHED=y -CONFIG_RTE_SCHED_RED=n -CONFIG_RTE_SCHED_COLLECT_STATS=n -CONFIG_RTE_SCHED_SUBPORT_TC_OV=n -CONFIG_RTE_SCHED_PORT_N_GRINDERS=8 - -# -# Compile the distributor library -# -CONFIG_RTE_LIBRTE_DISTRIBUTOR=y - -# -# Compile librte_port -# -CONFIG_RTE_LIBRTE_PORT=y - -# -# Compile librte_table -# -CONFIG_RTE_LIBRTE_TABLE=y - -# -# Compile librte_pipeline -# -CONFIG_RTE_LIBRTE_PIPELINE=y - -# -# Compile librte_kni -# -CONFIG_RTE_LIBRTE_KNI=n -CONFIG_RTE_KNI_KO_DEBUG=n -CONFIG_RTE_KNI_VHOST=n -CONFIG_RTE_KNI_VHOST_MAX_CACHE_SIZE=1024 -CONFIG_RTE_KNI_VHOST_VNET_HDR_EN=n -CONFIG_RTE_KNI_VHOST_DEBUG_RX=n -CONFIG_RTE_KNI_VHOST_DEBUG_TX=n - -# -#Compile Xen domain0 support -# -CONFIG_RTE_LIBRTE_XEN_DOM0=n - -# -# Enable warning directives -# -CONFIG_RTE_INSECURE_FUNCTION_WARNING=n - -# -# Compile the test application -# -CONFIG_RTE_APP_TEST=y - -# -# Compile the PMD test application -# -CONFIG_RTE_TEST_PMD=y -CONFIG_RTE_TEST_PMD_RECORD_CORE_CYCLES=n -CONFIG_RTE_TEST_PMD_RECORD_BURST_STATS=n diff --git a/defconfig_i686-native-linuxapp-gcc b/defconfig_i686-native-linuxapp-gcc deleted file mode 100644 index 61d8cc7..0000000 --- a/defconfig_i686-native-linuxapp-gcc +++ /dev/null @@ -1,73 +0,0 @@ -# BSD LICENSE -# -# Copyright(c) 2010-2014 Intel Corporation. All rights reserved. -# All rights reserved. -# -# Redistribution and use in source and binary forms, with or without -# modification, are permitted provided that the following conditions -# are met: -# -# * Redistributions of source code must retain the above copyright -# notice, this list of conditions and the following disclaimer. -# * Redistributions in binary form must reproduce the above copyright -# notice, this list of conditions and the following disclaimer in -# the documentation and/or other materials provided with the -# distribution. -# * Neither the name of Intel Corporation nor the names of its -# contributors may be used to endorse or promote products derived -# from this software without specific prior written permission. -# -# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -# - -#include "common_linuxapp" - -# -# machine can define specific variables or action for a specific board -# RTE_MACHINE can be: -# default nothing specific -# native current machine -# atm Intel® Atom™ microarchitecture -# nhm Intel® microarchitecture code name Nehalem -# wsm Intel® microarchitecture code name Westmere -# snb Intel® microarchitecture code name Sandy Bridge -# ivb Intel® microarchitecture code name Ivy Bridge -# -# Note: if your compiler does not support the relevant -march options, -# it will be compiled with whatever latest processor the compiler supports! -# -CONFIG_RTE_MACHINE="native" - -# -# define the architecture we compile for. -# CONFIG_RTE_ARCH can be i686, x86_64, x86_64_32 -# -CONFIG_RTE_ARCH="i686" -CONFIG_RTE_ARCH_I686=y - -# -# The compiler we use. -# Can be gcc or icc. -# -CONFIG_RTE_TOOLCHAIN="gcc" -CONFIG_RTE_TOOLCHAIN_GCC=y - -# -# KNI is not supported on 32-bit -# -CONFIG_RTE_LIBRTE_KNI=n - -# -# Vectorized PMD is not supported on 32-bit -# -CONFIG_RTE_IXGBE_INC_VECTOR=n diff --git a/defconfig_x86_64-native-linuxapp-gcc b/defconfig_x86_64-native-linuxapp-gcc deleted file mode 100644 index 54d71f9..0000000 --- a/defconfig_x86_64-native-linuxapp-gcc +++ /dev/null @@ -1,63 +0,0 @@ -# BSD LICENSE -# -# Copyright(c) 2010-2014 Intel Corporation. All rights reserved. -# All rights reserved. -# -# Redistribution and use in source and binary forms, with or without -# modification, are permitted provided that the following conditions -# are met: -# -# * Redistributions of source code must retain the above copyright -# notice, this list of conditions and the following disclaimer. -# * Redistributions in binary form must reproduce the above copyright -# notice, this list of conditions and the following disclaimer in -# the documentation and/or other materials provided with the -# distribution. -# * Neither the name of Intel Corporation nor the names of its -# contributors may be used to endorse or promote products derived -# from this software without specific prior written permission. -# -# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -# - -#include "common_linuxapp" - -# -# machine can define specific variables or action for a specific board -# RTE_MACHINE can be: -# default nothing specific -# native current machine -# atm Intel® Atom™ microarchitecture -# nhm Intel® microarchitecture code name Nehalem -# wsm Intel® microarchitecture code name Westmere -# snb Intel® microarchitecture code name Sandy Bridge -# ivb Intel® microarchitecture code name Ivy Bridge -# -# Note: if your compiler does not support the relevant -march options, -# it will be compiled with whatever latest processor the compiler supports! -# -CONFIG_RTE_MACHINE="native" - -# -# define the architecture we compile for. -# CONFIG_RTE_ARCH can be i686, x86_64, x86_64_32 -# -CONFIG_RTE_ARCH="x86_64" -CONFIG_RTE_ARCH_X86_64=y - -# -# The compiler we use. -# Can be gcc or icc. -# -CONFIG_RTE_TOOLCHAIN="gcc" -CONFIG_RTE_TOOLCHAIN_GCC=y diff --git a/dpdk-1.7.0-igb_uio_disable.patch b/dpdk-1.7.0-igb_uio_disable.patch deleted file mode 100644 index 49da00b..0000000 --- a/dpdk-1.7.0-igb_uio_disable.patch +++ /dev/null @@ -1,15 +0,0 @@ -diff -up ./lib/librte_eal/linuxapp/Makefile.orig ./lib/librte_eal/linuxapp/Makefile ---- ./lib/librte_eal/linuxapp/Makefile.orig 2014-05-29 05:43:11.000000000 -0400 -+++ ./lib/librte_eal/linuxapp/Makefile 2014-06-03 12:24:26.754134045 -0400 -@@ -31,7 +31,10 @@ - - include $(RTE_SDK)/mk/rte.vars.mk - --DIRS-$(CONFIG_RTE_LIBRTE_EAL_LINUXAPP) += igb_uio -+# In a future release of dpdk, igb_uio will be build-time -+# disable-able. Until then, just comment it out here -+#DIRS-$(CONFIG_RTE_LIBRTE_EAL_LINUXAPP) += igb_uio -+ - DIRS-$(CONFIG_RTE_LIBRTE_EAL_LINUXAPP) += eal - ifeq ($(CONFIG_RTE_LIBRTE_KNI),y) - DIRS-$(CONFIG_RTE_LIBRTE_EAL_LINUXAPP) += kni diff --git a/dpdk-config.patch b/dpdk-config.patch new file mode 100644 index 0000000..23afa21 --- /dev/null +++ b/dpdk-config.patch @@ -0,0 +1,89 @@ +diff -up dpdk-1.7.0/config/common_linuxapp.config dpdk-1.7.0/config/common_linuxapp +--- dpdk-1.7.0/config/common_linuxapp.config 2014-07-04 04:18:07.000000000 -0400 ++++ dpdk-1.7.0/config/common_linuxapp 2014-07-17 14:43:44.359455939 -0400 +@@ -52,7 +52,7 @@ CONFIG_RTE_EXEC_ENV_LINUXAPP=y + ## Note: if your compiler does not support the relevant -march options, + ## it will be compiled with whatever latest processor the compiler supports! + ## +-#CONFIG_RTE_MACHINE="native" ++CONFIG_RTE_MACHINE="default" + # + ## + ## define the architecture we compile for. +@@ -123,7 +123,7 @@ CONFIG_RTE_LOG_HISTORY=256 + CONFIG_RTE_LIBEAL_USE_HPET=n + CONFIG_RTE_EAL_ALLOW_INV_SOCKET_ID=n + CONFIG_RTE_EAL_ALWAYS_PANIC_ON_ERROR=n +-CONFIG_RTE_EAL_IGB_UIO=y ++CONFIG_RTE_EAL_IGB_UIO=n + CONFIG_RTE_EAL_VFIO=y + + # +@@ -170,8 +170,8 @@ CONFIG_RTE_NIC_BYPASS=n + # + # Compile burst-oriented IGB & EM PMD drivers + # +-CONFIG_RTE_LIBRTE_EM_PMD=y +-CONFIG_RTE_LIBRTE_IGB_PMD=y ++CONFIG_RTE_LIBRTE_EM_PMD=n ++CONFIG_RTE_LIBRTE_IGB_PMD=n + CONFIG_RTE_LIBRTE_E1000_DEBUG_INIT=n + CONFIG_RTE_LIBRTE_E1000_DEBUG_RX=n + CONFIG_RTE_LIBRTE_E1000_DEBUG_TX=n +@@ -182,7 +182,7 @@ CONFIG_RTE_LIBRTE_E1000_PF_DISABLE_STRIP + # + # Compile burst-oriented IXGBE PMD driver + # +-CONFIG_RTE_LIBRTE_IXGBE_PMD=y ++CONFIG_RTE_LIBRTE_IXGBE_PMD=n + CONFIG_RTE_LIBRTE_IXGBE_DEBUG_INIT=n + CONFIG_RTE_LIBRTE_IXGBE_DEBUG_RX=n + CONFIG_RTE_LIBRTE_IXGBE_DEBUG_TX=n +@@ -197,7 +197,7 @@ CONFIG_RTE_IXGBE_RX_OLFLAGS_ENABLE=y + # + # Compile burst-oriented I40E PMD driver + # +-CONFIG_RTE_LIBRTE_I40E_PMD=y ++CONFIG_RTE_LIBRTE_I40E_PMD=n + CONFIG_RTE_LIBRTE_I40E_DEBUG_INIT=n + CONFIG_RTE_LIBRTE_I40E_DEBUG_RX=n + CONFIG_RTE_LIBRTE_I40E_DEBUG_TX=n +@@ -241,7 +241,7 @@ CONFIG_RTE_PMD_RING_MAX_TX_RINGS=16 + # + # Compile software PMD backed by PCAP files + # +-CONFIG_RTE_LIBRTE_PMD_PCAP=n ++CONFIG_RTE_LIBRTE_PMD_PCAP=y + + # + # Compile link bonding PMD library +@@ -320,7 +320,7 @@ CONFIG_RTE_LIBRTE_LPM_DEBUG=n + # + # Compile librte_acl + # +-CONFIG_RTE_LIBRTE_ACL=y ++CONFIG_RTE_LIBRTE_ACL=n + CONFIG_RTE_LIBRTE_ACL_DEBUG=n + CONFIG_RTE_LIBRTE_ACL_STANDALONE=n + +@@ -381,7 +381,7 @@ CONFIG_RTE_LIBRTE_PIPELINE=y + # + # Compile librte_kni + # +-CONFIG_RTE_LIBRTE_KNI=y ++CONFIG_RTE_LIBRTE_KNI=n + CONFIG_RTE_KNI_KO_DEBUG=n + CONFIG_RTE_KNI_VHOST=n + CONFIG_RTE_KNI_VHOST_MAX_CACHE_SIZE=1024 +diff -up dpdk-1.7.0/config/defconfig_x86_64-native-linuxapp-gcc.config dpdk-1.7.0/config/defconfig_x86_64-native-linuxapp-gcc +--- dpdk-1.7.0/config/defconfig_x86_64-native-linuxapp-gcc.config 2014-07-04 04:18:07.000000000 -0400 ++++ dpdk-1.7.0/config/defconfig_x86_64-native-linuxapp-gcc 2014-07-17 14:40:09.881651791 -0400 +@@ -46,7 +46,7 @@ + # Note: if your compiler does not support the relevant -march options, + # it will be compiled with whatever latest processor the compiler supports! + # +-CONFIG_RTE_MACHINE="native" ++#CONFIG_RTE_MACHINE="native" + + # + # define the architecture we compile for. diff --git a/dpdk-link-using-cc.patch b/dpdk-link-using-cc.patch deleted file mode 100644 index 9446711..0000000 --- a/dpdk-link-using-cc.patch +++ /dev/null @@ -1,25 +0,0 @@ -diff -up ./mk/rte.lib.mk.orig ./mk/rte.lib.mk ---- ./mk/rte.lib.mk.orig 2014-05-29 05:43:11.000000000 -0400 -+++ ./mk/rte.lib.mk 2014-07-01 10:21:36.827871451 -0400 -@@ -60,8 +60,10 @@ build: _postbuild - exe2cmd = $(strip $(call dotfile,$(patsubst %,%.cmd,$(1)))) - - ifeq ($(LINK_USING_CC),1) --# Override the definition of LD here, since we're linking with CC --LD := $(CC) -+CPU_LDFLAGS := $(call linkerprefix,$(CPU_LDFLAGS)) -+O_TO_S = $(CC) $(CPU_LDFLAGS) -z muldefs -shared $(OBJS-y) -o $(LIB) -+else -+O_TO_S = $(LD) $(CPU_LDFLAGS) -z muldefs -shared $(OBJS-y) -o $(LIB) - endif - - O_TO_A = $(AR) crus $(LIB) $(OBJS-y) -@@ -73,8 +75,6 @@ O_TO_A_DO = @set -e; \ - $(O_TO_A) && \ - echo $(O_TO_A_CMD) > $(call exe2cmd,$(@)) - --O_TO_S = $(LD) $(CPU_LDFLAGS) -z muldefs -shared $(OBJS-y) -o $(LIB) --O_TO_S_STR = $(subst ','\'',$(O_TO_S)) #'# fix syntax highlight - O_TO_S_DISP = $(if $(V),"$(O_TO_S_STR)"," LD $(@)") - O_TO_S_DO = @set -e; \ - echo $(O_TO_S_DISP); \ diff --git a/dpdk.spec b/dpdk.spec index a9f6aee..cf07da7 100644 --- a/dpdk.spec +++ b/dpdk.spec @@ -1,19 +1,11 @@ -%global rel 1.0 - -# As per packaging guidelines, since dpdk is pre-release, this is the git hash -# that I used with git archive to build the source tarball and the date on which -# I did it - Name: dpdk Version: 1.7.0 -Release: %{rel}%{?dist} +Release: 2%{?dist} URL: http://dpdk.org Source: http://dpdk.org/browse/dpdk/snapshot/dpdk-%{version}.tar.gz -Source1: defconfig_x86_64-native-linuxapp-gcc -Source2: defconfig_i686-native-linuxapp-gcc -Source3: common_linuxapp Patch0: dpdk-debug.patch +Patch1: dpdk-config.patch Summary: Data Plane Development Kit core @@ -30,15 +22,11 @@ License: BSD and LGPLv2 and GPLv2 # other techniques, carefully crafted x86 assembly instructions. As such it # currently (and likely never will) run on non-x86 platforms # -ExclusiveArch: %{ix86} x86_64 +ExclusiveArch: x86_64 %global machine native -%ifarch x86_64 %global target x86_64-%{machine}-linuxapp-gcc -%else -%global target i686-%{machine}-linuxapp-gcc -%endif @@ -74,41 +62,37 @@ DPDK core library API programming documentation %prep %setup -q -cp %{SOURCE1} ./config/ -cp %{SOURCE2} ./config/ -cp %{SOURCE3} ./config/ -%patch0 -p1 +%patch0 -p1 -z .debug +%patch1 -p1 -z .config %build -# need to enable debuginfo +export EXTRA_CFLAGS="%{optflags}" -#Note that RPM_OPT_FLAGS is not being used here as it conflicts with -#Flags that the package sets. -make V=1 O=%{target} T=%{target} config -make V=1 O=%{target} -make V=1 O=%{target} doc +# DPDK defaults to using builder-specific compiler flags. However, +# the config has been changed by specifying CONFIG_RTE_MACHINE=default +# in order to build for a more generic host. NOTE: It is possible that +# the compiler flags used still won't work for all Fedora-supported +# machines, but runtime checks in DPDK will catch those situations. + +make V=1 O=%{target} T=%{target} %{?_smp_mflags} config +make V=1 O=%{target} %{?_smp_mflags} +make V=1 O=%{target} %{?_smp_mflags} doc %install -make V=1 O=%{target} DESTDIR=%{destdir} -find %{destdir} -name '*.orig' | xargs rm -f -mkdir -p %{buildroot}%{_sbindir} -mkdir -p %{buildroot}%{_libdir}/%{name}-%{version} -mkdir -p %{buildroot}%{_includedir}/%{name}-%{version} -mkdir -p %{buildroot}%{_bindir} -mv %{destdir}/%{target}/app/testpmd %{buildroot}%{_bindir}/testpmd-%{version} -rmdir %{destdir}/%{target}/app -mv %{destdir}/%{target}/include/* %{buildroot}%{_includedir}/%{name}-%{version} -mv %{destdir}/%{target}/lib/* %{buildroot}%{_libdir}/%{name}-%{version} -mkdir -p %{buildroot}%{docdir} -mv %{destdir}/%{target}/doc/* %{buildroot}%{docdir} -rmdir %{destdir}/%{target}/doc -mkdir -p %{buildroot}%{datadir} -mv %{destdir}/%{target}/.config %{buildroot}%{datadir}/config -rm -rf %{destdir}/%{target}/kmod -mv %{destdir}/%{target} %{buildroot}%{datadir} -rm -rf %{destdir}/mk -rm -rf %{destdir}/scripts -cp -a tools %{buildroot}%{datadir} + +# DPDK's "make install" seems a bit broken -- do things manually... + +mkdir -p %{buildroot}%{_bindir} +cp -a %{target}/app/testpmd %{buildroot}%{_bindir}/testpmd-%{version} +mkdir -p %{buildroot}%{_includedir}/%{name}-%{version} +cp -a %{target}/include/* %{buildroot}%{_includedir}/%{name}-%{version} +mkdir -p %{buildroot}%{_libdir}/%{name}-%{version} +cp -a %{target}/lib/* %{buildroot}%{_libdir}/%{name}-%{version} +mkdir -p %{buildroot}%{docdir} +cp -a %{target}/doc/* %{buildroot}%{docdir} +mkdir -p %{buildroot}%{datadir} +cp -a %{target}/.config %{buildroot}%{datadir}/config +cp -a tools %{buildroot}%{datadir} %files # BSD @@ -130,28 +114,35 @@ cp -a tools %{buildroot}%{datadir} %files devel #BSD %{_includedir}/* -#%{datadir}/%{target} -%exclude %{docdir}/html %changelog -* Thu Jul 10 2014 - Neil Horman - 1.0.7-1.0 +* Thu Jul 17 2014 - John W. Linville - 1.7.0-2 +- Use EXTRA_CFLAGS to include standard Fedora compiler flags in build +- Set CONFIG_RTE_MACHINE=default to build for least-common-denominator machines +- Turn-off build of librte_acl, since it does not build on default machines +- Turn-off build of physical device PMDs that require kernel support +- Clean-up the install rules to match current packaging +- Correct changelog versions 1.0.7 -> 1.7.0 +- Remove ix86 from ExclusiveArch -- it does not build with above changes + +* Thu Jul 10 2014 - Neil Horman - 1.7.0-1.0 - Update source to official 1.7.0 release * Thu Jul 03 2014 - Neil Horman - Fixing up release numbering -* Tue Jul 01 2014 - Neil Horman - 1.0.7-0.9.1.20140603git5ebbb1728 +* Tue Jul 01 2014 - Neil Horman - 1.7.0-0.9.1.20140603git5ebbb1728 - Fixed some build errors (empty debuginfo, bad 32 bit build) -* Wed Jun 11 2014 - Neil Horman - 1.0.7-0.9.20140603git5ebbb1728 +* Wed Jun 11 2014 - Neil Horman - 1.7.0-0.9.20140603git5ebbb1728 - Fix another build dependency -* Mon Jun 09 2014 - Neil Horman - 1.0.7-0.8.20140603git5ebbb1728 +* Mon Jun 09 2014 - Neil Horman - 1.7.0-0.8.20140603git5ebbb1728 - Fixed doc arch versioning issue -* Mon Jun 09 2014 - Neil Horman - 1.0.7-0.7.20140603git5ebbb1728 +* Mon Jun 09 2014 - Neil Horman - 1.7.0-0.7.20140603git5ebbb1728 - Added verbose output to build -* Tue May 13 2014 - Neil Horman - 1.0.7-0.6.20140603git5ebbb1728 +* Tue May 13 2014 - Neil Horman - 1.7.0-0.6.20140603git5ebbb1728 - Initial Build