diff options
| author | 杨威 <[email protected]> | 2021-04-25 20:15:00 +0800 |
|---|---|---|
| committer | 杨威 <[email protected]> | 2021-04-25 20:15:00 +0800 |
| commit | 8ad3d899e13e39e061cecc5c143daa95211ff3cb (patch) | |
| tree | f5ac10c0759ac1df1d28d871628b6c9c32ee2d3c | |
| parent | d67f24e5bfbef9eb27c46b3beed50355d3fd765e (diff) | |
增加对aarch64的判断,并调整对应的编arch编译参数v4.2.46-20210425dev-4.2
| -rw-r--r-- | CMakeLists.txt | 15 | ||||
| -rw-r--r-- | cmake/FindDPDK.cmake | 6 | ||||
| -rw-r--r-- | cmake/GetDPDKSupport.cmake | 9 |
3 files changed, 24 insertions, 6 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt index fee5006..a704dfc 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -10,11 +10,20 @@ include(Version) # EXTRA Flags # GNU99 and C++11 Support -set(EXTRA_C_FLAGS "${EXTRA_C_FLAGS} -std=gnu99 -m64 -march=native") -set(EXTRA_CXX_FLAGS "${EXTRA_CXX_FLAGS} -std=gnu++11 -m64 -march=native" ) +set(EXTRA_C_FLAGS "${EXTRA_C_FLAGS} -std=gnu99") +set(EXTRA_CXX_FLAGS "${EXTRA_CXX_FLAGS} -std=gnu++11" ) set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${EXTRA_C_FLAGS}") set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${EXTRA_CXX_FLAGS}") +if(${CMAKE_SYSTEM_PROCESSOR} MATCHES "x86_64") + set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -m64 -march=native") + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -m64 -march=native" ) +elseif(${CMAKE_SYSTEM_PROCESSOR} MATCHES "aarch64") + set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -march=armv8-a -fsigned-char") + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -march=armv8-a -fsigned-char") +endif() + + # Default Install Destination Directory set(CMAKE_INSTALL_PREFIX /opt/mrzcpd) add_definitions(-fPIC -Wall) @@ -60,4 +69,4 @@ message(STATUS "Packet I/O Middleware based on DPDK(Marsio), Version: ${MARSIO_V # packed include(Package) -include(InstallDPDK)
\ No newline at end of file +include(InstallDPDK) diff --git a/cmake/FindDPDK.cmake b/cmake/FindDPDK.cmake index 6b037c6..16ed254 100644 --- a/cmake/FindDPDK.cmake +++ b/cmake/FindDPDK.cmake @@ -26,7 +26,11 @@ find_package_handle_standard_args(DPDK DEFAULT_MSG DPDK_ROOT_DIR DPDK_INCLUDE_DIR DPDK_LIBRARY) if(NOT RTE_MARCH) - set(RTE_MARCH "native") + if(${CMAKE_SYSTEM_PROCESSOR} MATCHES "aarch64") + set(RTE_MARCH "armv8-a") + else() + set(RTE_MARCH "native") + endif() endif() # DPDK CPU Flags diff --git a/cmake/GetDPDKSupport.cmake b/cmake/GetDPDKSupport.cmake index 719d75d..a18d208 100644 --- a/cmake/GetDPDKSupport.cmake +++ b/cmake/GetDPDKSupport.cmake @@ -9,7 +9,12 @@ set(DPDK_RTE_SDK $ENV{RTE_SDK}) set(DPDK_RTE_TARGET $ENV{RTE_TARGET})
# DPDK CPU Flags
-set(DPDK_MACHINE_FLAGS "-march=native")
+if(${CMAKE_SYSTEM_PROCESSOR} MATCHES "aarch64")
+ set(DPDK_MACHINE_FLAGS "-march=armv8-a")
+else()
+ set(DPDK_MACHINE_FLAGS "-march=native")
+endif()
+
exec_program(${CMAKE_C_COMPILER} ARGS "${DPDK_MACHINE_FLAGS} -dM -E - < /dev/null" OUTPUT_VARIABLE DPDK_AUTOFLAGS)
if(DPDK_AUTOFLAGS MATCHES "__SSE__")
@@ -107,4 +112,4 @@ set(DPDK_LIBRARY_LINK set(DPDK_C_PREDEFINED ${DPDK_ARCH_FLAGS} ${DPDK_MACHINE_FLAGS} ${DPDK_FORCE_INCLUDE})
set(DPDK_CXX_PREDEFINED ${DPDK_ARCH_FLAGS} ${DPDK_MACHINE_FLAGS} ${DPDK_FORCE_INCLUDE})
set(DPDK_INCLUDE_DIR "${DPDK_RTE_SDK}/${DPDK_RTE_TARGET}/include")
-set(DPDK_LIBRARY ${DPDK_LIBRARY_PATH} ${DPDK_LIBRARY_LINK})
\ No newline at end of file +set(DPDK_LIBRARY ${DPDK_LIBRARY_PATH} ${DPDK_LIBRARY_LINK})
|
