From 0b835b41b39c35c88a3dbf4d8403c5d3b7d3bb18 Mon Sep 17 00:00:00 2001 From: Ashwin Sekhar T K Date: Thu, 11 May 2017 22:45:47 -0700 Subject: [PATCH] config: support clang for ARMv8 Linux Moved all common defines from defconfig_arm64-armv8a-linuxapp-gcc to common_armv8a_linuxapp. Created new config arm64-armv8a-linuxapp-clang which adds the clang support to armv8a. Now defconfigs arm64-armv8a-linuxapp-gcc/clang contain only the CONFIG_RTE_TOOLCHAIN* defines and all other common defines are inherited from common_armv8a_linuxapp. Signed-off-by: Ashwin Sekhar T K Reviewed-by: Jerin Jacob Acked-by: Jianbo Liu Acked-by: Hemant Agrawal --- config/common_armv8a_linuxapp | 53 ++++++++++++++++++++ config/defconfig_arm64-armv8a-linuxapp-clang | 35 +++++++++++++ config/defconfig_arm64-armv8a-linuxapp-gcc | 21 +------- 3 files changed, 89 insertions(+), 20 deletions(-) create mode 100644 config/common_armv8a_linuxapp create mode 100644 config/defconfig_arm64-armv8a-linuxapp-clang diff --git a/config/common_armv8a_linuxapp b/config/common_armv8a_linuxapp new file mode 100644 index 0000000000..3d0967e99a --- /dev/null +++ b/config/common_armv8a_linuxapp @@ -0,0 +1,53 @@ +# BSD LICENSE +# +# Copyright (C) Cavium networks 2017. 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 Cavium networks 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" + +CONFIG_RTE_MACHINE="armv8a" + +CONFIG_RTE_ARCH="arm64" +CONFIG_RTE_ARCH_ARM64=y +CONFIG_RTE_ARCH_64=y + +CONFIG_RTE_FORCE_INTRINSICS=y + +# Maximum available cache line size in arm64 implementations. +# Setting to maximum available cache line size in generic config +# to address minimum DMA alignment across all arm64 implementations. +CONFIG_RTE_CACHE_LINE_SIZE=128 + +CONFIG_RTE_EAL_IGB_UIO=n + +CONFIG_RTE_LIBRTE_FM10K_PMD=n +CONFIG_RTE_LIBRTE_SFC_EFX_PMD=n +CONFIG_RTE_LIBRTE_AVP_PMD=n + +CONFIG_RTE_SCHED_VECTOR=n diff --git a/config/defconfig_arm64-armv8a-linuxapp-clang b/config/defconfig_arm64-armv8a-linuxapp-clang new file mode 100644 index 0000000000..43b70a28f5 --- /dev/null +++ b/config/defconfig_arm64-armv8a-linuxapp-clang @@ -0,0 +1,35 @@ +# BSD LICENSE +# +# Copyright (C) Cavium networks 2017. 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 Cavium networks 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_armv8a_linuxapp" + +CONFIG_RTE_TOOLCHAIN="clang" +CONFIG_RTE_TOOLCHAIN_CLANG=y diff --git a/config/defconfig_arm64-armv8a-linuxapp-gcc b/config/defconfig_arm64-armv8a-linuxapp-gcc index 749b0076f3..761bbbd3bd 100644 --- a/config/defconfig_arm64-armv8a-linuxapp-gcc +++ b/config/defconfig_arm64-armv8a-linuxapp-gcc @@ -29,26 +29,7 @@ # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. # -#include "common_linuxapp" - -CONFIG_RTE_MACHINE="armv8a" - -CONFIG_RTE_ARCH="arm64" -CONFIG_RTE_ARCH_ARM64=y -CONFIG_RTE_ARCH_64=y - -CONFIG_RTE_FORCE_INTRINSICS=y +#include "common_armv8a_linuxapp" CONFIG_RTE_TOOLCHAIN="gcc" CONFIG_RTE_TOOLCHAIN_GCC=y - -# Maximum available cache line size in arm64 implementations. -# Setting to maximum available cache line size in generic config -# to address minimum DMA alignment across all arm64 implementations. -CONFIG_RTE_CACHE_LINE_SIZE=128 - -CONFIG_RTE_EAL_IGB_UIO=n - -CONFIG_RTE_LIBRTE_FM10K_PMD=n -CONFIG_RTE_LIBRTE_SFC_EFX_PMD=n -CONFIG_RTE_LIBRTE_AVP_PMD=n -- 2.20.1