TSG-23595 PacketAdapter适配AArch64架构

This commit is contained in:
luwenpeng
2024-11-12 10:21:02 +08:00
parent 37c0b1b783
commit 1942f792e7
5 changed files with 135 additions and 63 deletions

View File

@@ -3,33 +3,33 @@ variables:
BUILD_PADDING_PREFIX: /tmp/padding_for_CPACK_RPM_BUILD_SOURCE_DIRS_PREFIX_PREFIX_PREFIX_PREFIX_PREFIX_PREFIX/
INSTALL_PREFIX: "/opt/tsg/packet_adapter"
TESTING_VERSION_BUILD: 0
BUILD_IMAGE_CENTOS8: "git.mesalab.cn:7443/mesa_platform/build-env:rockylinux"
BUILD_IMAGE_X86_64_EL8: "git.mesalab.cn:7443/mesa_platform/build-env:rockylinux"
BUILD_IMAGE_AARCH64_EL9: "git.mesalab.cn:7443/mesa_platform/build-env:rocky9-aarch64"
stages:
- build
###############################################################################
# compile use image: build-env:rockylinux
# compile for el9
###############################################################################
.build_by_travis_for_centos8:
image: $BUILD_IMAGE_CENTOS8
.build_by_travis_for_el9:
image: $BUILD_IMAGE_AARCH64_EL9
before_script:
- mkdir -p $BUILD_PADDING_PREFIX/$CI_PROJECT_NAMESPACE/
- ln -s $CI_PROJECT_DIR $BUILD_PADDING_PREFIX/$CI_PROJECT_PATH
- cd $BUILD_PADDING_PREFIX/$CI_PROJECT_PATH
- chmod +x ./ci/travis.sh
- yum install -y elfutils-libelf-devel
- dnf --enablerepo=powertools install -y libnetfilter_queue-devel
script:
- yum makecache
- ./ci/travis.sh
tags:
- share
- tsg-os-builder-aarch64
branch_build_debug_for_centos8:
branch_build_debug_for_el9:
stage: build
extends: .build_by_travis_for_centos8
extends: .build_by_travis_for_el9
variables:
BUILD_TYPE: Debug
except:
@@ -37,19 +37,123 @@ branch_build_debug_for_centos8:
- /^release-.*$/i
- tags
branch_build_release_for_centos8:
branch_build_release_for_el9:
stage: build
variables:
BUILD_TYPE: RelWithDebInfo
extends: .build_by_travis_for_centos8
extends: .build_by_travis_for_el9
except:
- /^develop-.*$/i
- /^release-.*$/i
- tags
develop_build_debug_for_centos8:
develop_build_debug_for_el9:
stage: build
extends: .build_by_travis_for_centos8
extends: .build_by_travis_for_el9
variables:
TESTING_VERSION_BUILD: 1
BUILD_TYPE: Debug
# ASAN_OPTION: ADDRESS
PACKAGE: 1
PULP3_REPO_NAME: tsg-testing-aarch64.el9
PULP3_DIST_NAME: tsg-testing-aarch64.el9
artifacts:
name: "packet_adapter-develop-$CI_COMMIT_REF_NAME-debug"
paths:
- build/*.rpm
only:
- /^develop-.*$/i
- /^release-.*$/i
develop_build_release_for_el9:
stage: build
extends: .build_by_travis_for_el9
variables:
TESTING_VERSION_BUILD: 1
# ASAN_OPTION: ADDRESS
BUILD_TYPE: RelWithDebInfo
PACKAGE: 1
PULP3_REPO_NAME: tsg-testing-aarch64.el9
PULP3_DIST_NAME: tsg-testing-aarch64.el9
artifacts:
name: "packet_adapter-develop-$CI_COMMIT_REF_NAME-release"
paths:
- build/*.rpm
only:
- /^develop-.*$/i
- /^release-.*$/i
release_build_debug_for_el9:
stage: build
variables:
BUILD_TYPE: Debug
PACKAGE: 1
PULP3_REPO_NAME: tsg-stable-aarch64.el9
PULP3_DIST_NAME: tsg-stable-aarch64.el9
extends: .build_by_travis_for_el9
artifacts:
name: "packet_adapter-install-$CI_COMMIT_REF_NAME-debug"
paths:
- build/*.rpm
only:
- tags
release_build_release_for_el9:
stage: build
variables:
BUILD_TYPE: RelWithDebInfo
PACKAGE: 1
PULP3_REPO_NAME: tsg-stable-aarch64.el9
PULP3_DIST_NAME: tsg-stable-aarch64.el9
extends: .build_by_travis_for_el9
artifacts:
name: "packet_adapter-install-$CI_COMMIT_REF_NAME-release"
paths:
- build/*.rpm
only:
- tags
###############################################################################
# compile for el8
###############################################################################
.build_by_travis_for_el8:
image: $BUILD_IMAGE_X86_64_EL8
before_script:
- mkdir -p $BUILD_PADDING_PREFIX/$CI_PROJECT_NAMESPACE/
- ln -s $CI_PROJECT_DIR $BUILD_PADDING_PREFIX/$CI_PROJECT_PATH
- cd $BUILD_PADDING_PREFIX/$CI_PROJECT_PATH
- chmod +x ./ci/travis.sh
- yum install -y elfutils-libelf-devel
script:
- yum makecache
- ./ci/travis.sh
tags:
- share
branch_build_debug_for_el8:
stage: build
extends: .build_by_travis_for_el8
variables:
BUILD_TYPE: Debug
except:
- /^develop-.*$/i
- /^release-.*$/i
- tags
branch_build_release_for_el8:
stage: build
variables:
BUILD_TYPE: RelWithDebInfo
extends: .build_by_travis_for_el8
except:
- /^develop-.*$/i
- /^release-.*$/i
- tags
develop_build_debug_for_el8:
stage: build
extends: .build_by_travis_for_el8
variables:
TESTING_VERSION_BUILD: 1
BUILD_TYPE: Debug
@@ -65,9 +169,9 @@ develop_build_debug_for_centos8:
- /^develop-.*$/i
- /^release-.*$/i
develop_build_release_for_centos8:
develop_build_release_for_el8:
stage: build
extends: .build_by_travis_for_centos8
extends: .build_by_travis_for_el8
variables:
TESTING_VERSION_BUILD: 1
# ASAN_OPTION: ADDRESS
@@ -83,14 +187,14 @@ develop_build_release_for_centos8:
- /^develop-.*$/i
- /^release-.*$/i
release_build_debug_for_centos8:
release_build_debug_for_el8:
stage: build
variables:
BUILD_TYPE: Debug
PACKAGE: 1
PULP3_REPO_NAME: tsg-stable-x86_64.el8
PULP3_DIST_NAME: tsg-stable-x86_64.el8
extends: .build_by_travis_for_centos8
extends: .build_by_travis_for_el8
artifacts:
name: "packet_adapter-install-$CI_COMMIT_REF_NAME-debug"
paths:
@@ -98,14 +202,14 @@ release_build_debug_for_centos8:
only:
- tags
release_build_release_for_centos8:
release_build_release_for_el8:
stage: build
variables:
BUILD_TYPE: RelWithDebInfo
PACKAGE: 1
PULP3_REPO_NAME: tsg-stable-x86_64.el8
PULP3_DIST_NAME: tsg-stable-x86_64.el8
extends: .build_by_travis_for_centos8
extends: .build_by_travis_for_el8
artifacts:
name: "packet_adapter-install-$CI_COMMIT_REF_NAME-release"
paths:

View File

@@ -33,8 +33,11 @@ env | sort
: "${COMPILER_IS_GNUCXX:=OFF}"
# Install dependency from YUM
#yum install -y libmnl-devel libnfnetlink-devel
yum install -y mrzcpd-corei7-4.*
if [[ `arch` =~ 'x86_64' ]];then
yum install -y mrzcpd-corei7
elif [[ `arch` =~ 'aarch64' ]];then
yum install -y mrzcpd
fi
yum install -y numactl-devel
yum install -y libfieldstat4-devel
yum install -y libMESA_handle_logger-devel

View File

@@ -1,39 +0,0 @@
# - Find nfnetlinkDaemon
# Find the nfnetlink daemon library
#
# This module defines the following variables:
# NFNETLINK_FOUND - True if library and include directory are found
# If set to TRUE, the following are also defined:
# NFNETLINK_INCLUDE_DIRS - The directory where to find the header file
# NFNETLINK_LIBRARIES - Where to find the library file
#
# For conveniance, these variables are also set. They have the same values
# than the variables above. The user can thus choose his/her prefered way
# to write them.
# NFNETLINK_LIBRARY
# NFNETLINK_INCLUDE_DIR
#
# This file is in the public domain
include(FindPkgConfig)
pkg_check_modules(NFNETLINK libnfnetlink)
if(NOT NFNETLINK_FOUND)
find_path(NFNETLINK_INCLUDE_DIRS NAMES nlibnfnetlink/libnfnetlink.h
DOC "The nfnetlink include directory")
find_library(NFNETLINK_LIBRARIES NAMES libnfnetlink
DOC "The nfnetlink library")
# Use some standard module to handle the QUIETLY and REQUIRED arguments, and
# set NFNETLINK_FOUND to TRUE if these two variables are set.
include(FindPackageHandleStandardArgs)
find_package_handle_standard_args(NFNETLINK REQUIRED_VARS NFNETLINK_LIBRARIES NFNETLINK_INCLUDE_DIRS)
if(NFNETLINK_FOUND)
set(NFNETLINK_LIBRARY ${NFNETLINK_LIBRARIES})
set(NFNETLINK_INCLUDE_DIR ${NFNETLINK_INCLUDE_DIRS})
endif()
endif()
mark_as_advanced(NFNETLINK_INCLUDE_DIRS NFNETLINK_LIBRARIES)

View File

@@ -1,5 +1,3 @@
find_package(NFNETLINK REQUIRED)
add_executable(packet_adapter
src/system.cpp
src/packet_stat.cpp

10
vendor/CMakeLists.txt vendored
View File

@@ -36,8 +36,14 @@ add_library(fieldstat4 SHARED IMPORTED GLOBAL)
set_property(TARGET fieldstat4 PROPERTY IMPORTED_LOCATION ${MESA_FRAMEWORK_LIB_DIR}/libfieldstat4.so)
set_property(TARGET fieldstat4 PROPERTY INTERFACE_INCLUDE_DIRECTORIES ${MESA_FRAMEWORK_INCLUDE_DIR})
set(MRZCPD_LIB_DIR /opt/tsg/mrzcpd/corei7/lib)
set(MRZCPD_INCLUDE_DIR /opt/tsg/mrzcpd/corei7/include)
# MRZCPD
if (CMAKE_SYSTEM_PROCESSOR MATCHES "x86_64")
set(MRZCPD_LIB_DIR /opt/tsg/mrzcpd/corei7/lib)
set(MRZCPD_INCLUDE_DIR /opt/tsg/mrzcpd/corei7/include)
elseif (CMAKE_SYSTEM_PROCESSOR MATCHES "aarch64")
set(MRZCPD_LIB_DIR /opt/tsg/mrzcpd/aarch64/lib)
set(MRZCPD_INCLUDE_DIR /opt/tsg/mrzcpd/aarch64/include)
endif()
add_library(mrzcpd SHARED IMPORTED GLOBAL)
set_property(TARGET mrzcpd PROPERTY IMPORTED_LOCATION ${MRZCPD_LIB_DIR}/libmarsio.so)