Skip to content

Commit 77d41e9

Browse files
committed
Fix C++ SDK package ABI verification
1 parent 520fac6 commit 77d41e9

3 files changed

Lines changed: 14 additions & 3 deletions

File tree

.github/scripts/package-client-cpp-manylinux-glibc217.sh

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -95,6 +95,14 @@ fi
9595

9696
echo "glibc compatibility check passed (max=${max_glibc} <= 2.17)"
9797

98+
echo "=== CXX11 ABI symbols in libiotdb_session.so ==="
99+
abi_symbols=$(nm -D --demangle "${SO}" | grep -E 'Session::setStorageGroup\(std::__cxx11::basic_string|SessionDataSet::getColumnNames\[abi:cxx11\]|RowRecord::toString\[abi:cxx11\]' || true)
100+
if [[ -z "${abi_symbols}" ]]; then
101+
echo "ERROR: libiotdb_session.so was not built with _GLIBCXX_USE_CXX11_ABI=1"
102+
exit 1
103+
fi
104+
printf '%s\n' "${abi_symbols}" | head -20
105+
98106
echo "=== Example package build/link/run smoke test ==="
99107
PKG_ZIP=$(find "${GITHUB_WORKSPACE}/iotdb-client/client-cpp/target" -maxdepth 1 -type f -name "iotdb-session-cpp-*-${PACKAGE_CLASSIFIER}.zip" -print -quit)
100108
if [[ -z "${PKG_ZIP}" ]]; then

iotdb-client/client-cpp/cmake/iotdb-session-config.cmake.in

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -34,9 +34,10 @@ if(NOT TARGET IoTDB::iotdb_session)
3434
add_library(IoTDB::iotdb_session SHARED IMPORTED)
3535
set_target_properties(IoTDB::iotdb_session PROPERTIES
3636
INTERFACE_INCLUDE_DIRECTORIES "${_IOTDB_SESSION_PACKAGE_ROOT}/include")
37-
if("@IOTDB_SESSION_CXX11_ABI_COMPILE_DEFINITION@")
37+
set(_IOTDB_SESSION_CXX11_ABI_COMPILE_DEFINITION "@IOTDB_SESSION_CXX11_ABI_COMPILE_DEFINITION@")
38+
if(_IOTDB_SESSION_CXX11_ABI_COMPILE_DEFINITION)
3839
set_target_properties(IoTDB::iotdb_session PROPERTIES
39-
INTERFACE_COMPILE_DEFINITIONS "@IOTDB_SESSION_CXX11_ABI_COMPILE_DEFINITION@")
40+
INTERFACE_COMPILE_DEFINITIONS "${_IOTDB_SESSION_CXX11_ABI_COMPILE_DEFINITION}")
4041
endif()
4142
if(UNIX)
4243
set_target_properties(IoTDB::iotdb_session PROPERTIES

iotdb-client/client-cpp/examples/CMakeLists.txt

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -78,7 +78,9 @@ ELSE()
7878
ENDIF()
7979

8080
if(NOT _iotdb_examples_in_tree)
81-
find_package(iotdb-session CONFIG QUIET PATHS "${IOTDB_SDK_ROOT}" NO_DEFAULT_PATH)
81+
find_package(iotdb-session CONFIG QUIET
82+
PATHS "${IOTDB_SDK_ROOT}/cmake" "${IOTDB_SDK_ROOT}"
83+
NO_DEFAULT_PATH)
8284
if(WIN32)
8385
set(_iotdb_link_lib "${IOTDB_SDK_ROOT}/lib/iotdb_session.lib")
8486
set(_iotdb_runtime "${IOTDB_SDK_ROOT}/lib/iotdb_session.dll")

0 commit comments

Comments
 (0)