From 6acd94c344dee0599e8cca1d49e8d3c6b2d60857 Mon Sep 17 00:00:00 2001 From: Omair Majid Date: Wed, 18 Dec 2024 11:17:34 -0500 Subject: [PATCH] Fix build with -DCLR_CMAKE_USE_SYSTEM_BROTLI=true Currently, this fails on Fedora 41: $ ./build.sh --cmakeargs -DCLR_CMAKE_USE_SYSTEM_BROTLI=true /p:FullAssemblySigningSupported=false ... [100%] Linking CXX executable singlefilehost ld.lld: error: undefined symbol: BrotliDecoderCreateInstance >>> referenced by entrypoints.c >>> entrypoints.c.o:(s_compressionNative) in archive ../libs-native/System.IO.Compression.Native/libSystem.IO.Compression.Native.a This seems to be a regression introduced when this bit was accidentally dropped: https://github.com/dotnet/runtime/pull/109707/files#diff-7a160e52815fdd808d9415ada41dd5b1748826b27c78277e14f4adcf1ce61511 Fix the build by re-introducing it. Fixes: https://github.com/dotnet/runtime/issues/110751 --- .../libs/System.IO.Compression.Native/CMakeLists.txt | 4 ++++ .../libs/System.IO.Compression.Native/extra_libs.cmake | 7 +++++++ 2 files changed, 11 insertions(+) diff --git a/src/native/libs/System.IO.Compression.Native/CMakeLists.txt b/src/native/libs/System.IO.Compression.Native/CMakeLists.txt index 0734e8a3112b6d..2f8b16276783f6 100644 --- a/src/native/libs/System.IO.Compression.Native/CMakeLists.txt +++ b/src/native/libs/System.IO.Compression.Native/CMakeLists.txt @@ -7,6 +7,10 @@ if (NOT CLR_CMAKE_USE_SYSTEM_ZLIB) endif() if (CLR_CMAKE_USE_SYSTEM_BROTLI) + find_library(BROTLIDEC brotlidec REQUIRED) + find_library(BROTLIENC brotlienc REQUIRED) + list(APPEND ${BROTLI_LIBRARIES} ${BROTLIDEC} ${BROTLIENC}) + if (CLR_CMAKE_HOST_FREEBSD) set(CMAKE_REQUIRED_INCLUDES ${CROSS_ROOTFS}/usr/local/include) endif() diff --git a/src/native/libs/System.IO.Compression.Native/extra_libs.cmake b/src/native/libs/System.IO.Compression.Native/extra_libs.cmake index f10684f561bf70..03b40533e2109d 100644 --- a/src/native/libs/System.IO.Compression.Native/extra_libs.cmake +++ b/src/native/libs/System.IO.Compression.Native/extra_libs.cmake @@ -19,4 +19,11 @@ macro(append_extra_compression_libs NativeLibsExtra) list(APPEND ZLIB_LIBRARIES $,z,zlib>) endif () list(APPEND ${NativeLibsExtra} ${ZLIB_LIBRARIES}) + + if (CLR_CMAKE_USE_SYSTEM_BROTLI) + find_library(BROTLIDEC brotlidec REQUIRED) + find_library(BROTLIENC brotlienc REQUIRED) + + list(APPEND ${NativeLibsExtra} ${BROTLIDEC} ${BROTLIENC}) + endif () endmacro()