Description:
1. when i compile mysql on my arm platform, on debug mode, with ENBALE_GCOV, it report error when CMAKE_C_LINK_FLAGS is empty
diff --git a/router/CMakeLists.txt b/router/CMakeLists.txt
index ff21156..fa21091 100644
--- a/router/CMakeLists.txt
+++ b/router/CMakeLists.txt
@@ -71,7 +71,7 @@ ENDIF()
# ld.lld: error: corrupt input file:
# version definition index 0 for symbol __gcov_var is out of bounds
-IF(ENABLE_GCOV)
+IF(ENABLE_GCOV AND CMAKE_C_LINK_FLAGS AND CMAKE_CXX_LINK_FLAGS)
STRING(REPLACE "-fuse-ld=lld" ""
CMAKE_C_LINK_FLAGS ${CMAKE_C_LINK_FLAGS})
STRING(REPLACE "-fuse-ld=lld" ""
the STRING function report error: we need 4 parameters, but only 3 parameters input
2. when i compile mysql on my arm platform, it break on error that: openssl: libssl.so ELF load command alignment not page-aligned
arm: get PAGESIZE 65536
X_86: get PAGESIZE 4096
diff --git a/cmake/copy_custom_library.cmake b/cmake/copy_custom_library.cmake
index 128932c..4436adb 100644
--- a/cmake/copy_custom_library.cmake
+++ b/cmake/copy_custom_library.cmake
@@ -47,14 +47,19 @@ ENDIF()
EXECUTE_PROCESS(
COMMAND chmod +x "./${library_version}")
+EXECUTE_PROCESS(COMMAND getconf PAGESIZE
+ TIMEOUT 5
+ OUTPUT_VARIABLE PAGEELF
+ OUTPUT_STRIP_TRAILING_WHITESPACE
+ )
# Patch RPATH so that we find NEEDED libraries at load time.
IF(subdir)
EXECUTE_PROCESS(
- COMMAND ${PATCHELF_EXECUTABLE} --set-rpath "$ORIGIN/.."
+ COMMAND ${PATCHELF_EXECUTABLE} --page-size ${PAGEELF} --set-rpath "$ORIGIN/.."
"./${library_version}"
)
ELSE()
EXECUTE_PROCESS(
- COMMAND ${PATCHELF_EXECUTABLE} --set-rpath "$ORIGIN" "./${library_version}"
+ COMMAND ${PATCHELF_EXECUTABLE} --page-size ${PAGEELF} --set-rpath "$ORIGIN" "./${library_version}"
)
ENDIF()
How to repeat:
compile mysql on arm platform