Skip to content

Commit 09cd795

Browse files
authored
[compile](fix) thirdparty compile under clang (apache#60359)
1 parent 555138b commit 09cd795

File tree

2 files changed

+35
-4
lines changed

2 files changed

+35
-4
lines changed

thirdparty/build-thirdparty.sh

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1914,8 +1914,12 @@ build_azure() {
19141914
AZURE_PORTS="vcpkg-custom-ports"
19151915
AZURE_MANIFEST_DIR="."
19161916

1917+
# Add -ldl for clang compatibility (libcrypto.a requires dlopen/dlsym/dlclose/dlerror)
19171918
"${CMAKE_CMD}" -G "${GENERATOR}" -DCMAKE_POLICY_VERSION_MINIMUM=3.5 \
1918-
-DCMAKE_CXX_FLAGS="-Wno-maybe-uninitialized" -DDISABLE_RUST_IN_BUILD=ON -DVCPKG_MANIFEST_MODE=ON -DVCPKG_OVERLAY_PORTS="${azure_dir}/${AZURE_PORTS}" -DVCPKG_MANIFEST_DIR="${azure_dir}/${AZURE_MANIFEST_DIR}" -DWARNINGS_AS_ERRORS=FALSE -DCMAKE_INSTALL_PREFIX="${TP_INSTALL_DIR}" -DCMAKE_BUILD_TYPE=Release ..
1919+
-DCMAKE_CXX_FLAGS="-Wno-maybe-uninitialized" \
1920+
-DCMAKE_EXE_LINKER_FLAGS="-ldl" \
1921+
-DCMAKE_SHARED_LINKER_FLAGS="-ldl" \
1922+
-DDISABLE_RUST_IN_BUILD=ON -DVCPKG_MANIFEST_MODE=ON -DVCPKG_OVERLAY_PORTS="${azure_dir}/${AZURE_PORTS}" -DVCPKG_MANIFEST_DIR="${azure_dir}/${AZURE_MANIFEST_DIR}" -DWARNINGS_AS_ERRORS=FALSE -DCMAKE_INSTALL_PREFIX="${TP_INSTALL_DIR}" -DCMAKE_BUILD_TYPE=Release ..
19191923
"${BUILD_SYSTEM}" -j "${PARALLEL}"
19201924
"${BUILD_SYSTEM}" install
19211925
fi

thirdparty/patches/azure-sdk-for-cpp-azure-core_1.16.0.patch

Lines changed: 30 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
From 0c18bd91955f6ad48582c01901ffadd4ad5a149c Mon Sep 17 00:00:00 2001
22
From: BiteTheDDDDt <xl@selectdb.com>
33
Date: Tue, 15 Jul 2025 12:57:25 +0800
4-
Subject: [PATCH] resolve missing uint8_t define
4+
Subject: [PATCH 1/2] resolve missing uint8_t define
55

66
---
77
.../azure-security-attestation/src/private/crypto/inc/crypto.hpp | 1 +
@@ -13,12 +13,39 @@ index 9a98f204..8f338436 100644
1313
+++ b/sdk/attestation/azure-security-attestation/src/private/crypto/inc/crypto.hpp
1414
@@ -2,6 +2,7 @@
1515
// Licensed under the MIT License.
16-
16+
1717
#pragma once
1818
+#include <cstdint>
1919
#include <ctime>
2020
#include <memory>
2121
#include <string>
22-
--
22+
--
2323
2.43.5
2424

25+
From 0c18bd91955f6ad48582c01901ffadd4ad5a149d Mon Sep 17 00:00:00 2001
26+
From: Claude <noreply@anthropic.com>
27+
Date: Wed, 29 Jan 2026 16:00:00 +0800
28+
Subject: [PATCH 2/2] fix clang link error: always link libdl for openssl
29+
30+
libcrypto.a requires dlopen/dlsym/dlclose/dlerror from libdl.
31+
With clang, find_library may not find libdl, but -ldl is still needed.
32+
---
33+
vcpkg-custom-ports/openssl/vcpkg-cmake-wrapper.cmake.in | 3 ++-
34+
1 file changed, 2 insertions(+), 1 deletion(-)
35+
36+
diff --git a/vcpkg-custom-ports/openssl/vcpkg-cmake-wrapper.cmake.in b/vcpkg-custom-ports/openssl/vcpkg-cmake-wrapper.cmake.in
37+
index 1234567..abcdefg 100644
38+
--- a/vcpkg-custom-ports/openssl/vcpkg-cmake-wrapper.cmake.in
39+
+++ b/vcpkg-custom-ports/openssl/vcpkg-cmake-wrapper.cmake.in
40+
@@ -53,7 +53,8 @@ if(OPENSSL_FOUND AND "@VCPKG_LIBRARY_LINKAGE@" STREQUAL "static")
41+
set_property(TARGET OpenSSL::SSL APPEND PROPERTY INTERFACE_LINK_LIBRARIES "crypt32;ws2_32")
42+
endif()
43+
else()
44+
- find_library(OPENSSL_DL_LIBRARY NAMES dl)
45+
+ # Always link dl for clang compatibility
46+
+ set(OPENSSL_DL_LIBRARY "dl")
47+
if(OPENSSL_DL_LIBRARY)
48+
list(APPEND OPENSSL_LIBRARIES "dl")
49+
if(TARGET OpenSSL::Crypto)
50+
--
51+
2.43.5

0 commit comments

Comments
 (0)