From 88b2cf09cf702e4e6c7b1a626e74ac1792171a73 Mon Sep 17 00:00:00 2001 From: Jeremy Koritzinsky Date: Mon, 11 Nov 2024 11:45:05 -0800 Subject: [PATCH 1/6] Reapply "Put brotli on the FetchContent plan (#107166)" (#109108) This reverts commit b780069abf78978112cb860f9c636f767d0b4437. --- eng/DotNetBuild.props | 2 +- eng/testing/tests.ioslike.targets | 6 + .../Microsoft.NETCore.Native.Unix.targets | 16 +- .../Microsoft.NETCore.Native.Windows.targets | 3 + .../Directory.Build.props | 7 + .../android/build/AndroidBuild.targets | 5 +- .../msbuild/apple/build/AppleBuild.targets | 21 +- .../corehost/apphost/static/CMakeLists.txt | 4 + src/native/external/brotli-version.txt | 5 +- src/native/external/brotli.cmake | 61 +- src/native/external/brotli/BUILD.bazel | 159 ++ src/native/external/brotli/CHANGELOG.md | 258 ++++ src/native/external/brotli/CMakeLists.txt | 364 +++++ src/native/external/brotli/CONTRIBUTING.md | 32 + src/native/external/brotli/LICENSE | 19 + src/native/external/brotli/MANIFEST.in | 19 + src/native/external/brotli/README | 15 + src/native/external/brotli/README.md | 95 ++ src/native/external/brotli/SECURITY.md | 6 + src/native/external/brotli/WORKSPACE.bazel | 26 + .../brotli/{ => c}/common/constants.c | 0 .../brotli/{ => c}/common/constants.h | 0 .../external/brotli/{ => c}/common/context.c | 0 .../external/brotli/{ => c}/common/context.h | 0 .../brotli/{ => c}/common/dictionary.c | 0 .../brotli/{ => c}/common/dictionary.h | 0 .../external/brotli/{ => c}/common/platform.c | 0 .../external/brotli/{ => c}/common/platform.h | 0 .../brotli/{ => c}/common/shared_dictionary.c | 0 .../common/shared_dictionary_internal.h | 0 .../brotli/{ => c}/common/transform.c | 0 .../brotli/{ => c}/common/transform.h | 0 .../external/brotli/{ => c}/common/version.h | 0 .../external/brotli/{ => c}/dec/bit_reader.c | 0 .../external/brotli/{ => c}/dec/bit_reader.h | 0 .../external/brotli/{ => c}/dec/decode.c | 0 .../external/brotli/{ => c}/dec/huffman.c | 0 .../external/brotli/{ => c}/dec/huffman.h | 0 .../external/brotli/{ => c}/dec/prefix.h | 0 .../external/brotli/{ => c}/dec/state.c | 0 .../external/brotli/{ => c}/dec/state.h | 0 .../brotli/{ => c}/enc/backward_references.c | 0 .../brotli/{ => c}/enc/backward_references.h | 0 .../{ => c}/enc/backward_references_hq.c | 0 .../{ => c}/enc/backward_references_hq.h | 0 .../{ => c}/enc/backward_references_inc.h | 0 .../external/brotli/{ => c}/enc/bit_cost.c | 0 .../external/brotli/{ => c}/enc/bit_cost.h | 0 .../brotli/{ => c}/enc/bit_cost_inc.h | 0 .../brotli/{ => c}/enc/block_encoder_inc.h | 0 .../brotli/{ => c}/enc/block_splitter.c | 0 .../brotli/{ => c}/enc/block_splitter.h | 0 .../brotli/{ => c}/enc/block_splitter_inc.h | 0 .../brotli/{ => c}/enc/brotli_bit_stream.c | 0 .../brotli/{ => c}/enc/brotli_bit_stream.h | 0 .../external/brotli/{ => c}/enc/cluster.c | 0 .../external/brotli/{ => c}/enc/cluster.h | 0 .../external/brotli/{ => c}/enc/cluster_inc.h | 0 .../external/brotli/{ => c}/enc/command.c | 0 .../external/brotli/{ => c}/enc/command.h | 0 .../brotli/{ => c}/enc/compound_dictionary.c | 0 .../brotli/{ => c}/enc/compound_dictionary.h | 0 .../brotli/{ => c}/enc/compress_fragment.c | 0 .../brotli/{ => c}/enc/compress_fragment.h | 0 .../{ => c}/enc/compress_fragment_two_pass.c | 0 .../{ => c}/enc/compress_fragment_two_pass.h | 0 .../brotli/{ => c}/enc/dictionary_hash.c | 0 .../brotli/{ => c}/enc/dictionary_hash.h | 0 .../external/brotli/{ => c}/enc/encode.c | 0 .../brotli/{ => c}/enc/encoder_dict.c | 0 .../brotli/{ => c}/enc/encoder_dict.h | 0 .../brotli/{ => c}/enc/entropy_encode.c | 0 .../brotli/{ => c}/enc/entropy_encode.h | 0 .../{ => c}/enc/entropy_encode_static.h | 0 .../external/brotli/{ => c}/enc/fast_log.c | 0 .../external/brotli/{ => c}/enc/fast_log.h | 0 .../brotli/{ => c}/enc/find_match_length.h | 0 src/native/external/brotli/{ => c}/enc/hash.h | 0 .../brotli/{ => c}/enc/hash_composite_inc.h | 0 .../{ => c}/enc/hash_forgetful_chain_inc.h | 0 .../{ => c}/enc/hash_longest_match64_inc.h | 0 .../{ => c}/enc/hash_longest_match_inc.h | 0 .../enc/hash_longest_match_quickly_inc.h | 0 .../brotli/{ => c}/enc/hash_rolling_inc.h | 0 .../{ => c}/enc/hash_to_binary_tree_inc.h | 0 .../external/brotli/{ => c}/enc/histogram.c | 0 .../external/brotli/{ => c}/enc/histogram.h | 0 .../brotli/{ => c}/enc/histogram_inc.h | 0 .../brotli/{ => c}/enc/literal_cost.c | 0 .../brotli/{ => c}/enc/literal_cost.h | 0 .../external/brotli/{ => c}/enc/memory.c | 0 .../external/brotli/{ => c}/enc/memory.h | 0 .../external/brotli/{ => c}/enc/metablock.c | 0 .../external/brotli/{ => c}/enc/metablock.h | 0 .../brotli/{ => c}/enc/metablock_inc.h | 0 .../external/brotli/{ => c}/enc/params.h | 0 .../external/brotli/{ => c}/enc/prefix.h | 0 .../external/brotli/{ => c}/enc/quality.h | 0 .../external/brotli/{ => c}/enc/ringbuffer.h | 0 .../external/brotli/{ => c}/enc/state.h | 0 .../external/brotli/{ => c}/enc/static_dict.c | 0 .../external/brotli/{ => c}/enc/static_dict.h | 0 .../brotli/{ => c}/enc/static_dict_lut.h | 0 .../external/brotli/{ => c}/enc/utf8_util.c | 0 .../external/brotli/{ => c}/enc/utf8_util.h | 0 .../external/brotli/{ => c}/enc/write_bits.h | 0 .../brotli/{ => c}/include/brotli/decode.h | 0 .../brotli/{ => c}/include/brotli/encode.h | 0 .../brotli/{ => c}/include/brotli/port.h | 0 .../include/brotli/shared_dictionary.h | 0 .../brotli/{ => c}/include/brotli/types.h | 0 src/native/external/brotli/c/tools/brotli.c | 1319 +++++++++++++++++ src/native/external/brotli/c/tools/brotli.md | 108 ++ .../brotli/compiler_config_setting.bzl | 40 + .../brotli/scripts/libbrotlicommon.pc.in | 11 + .../brotli/scripts/libbrotlidec.pc.in | 12 + .../brotli/scripts/libbrotlienc.pc.in | 12 + src/native/external/brotli/setup.cfg | 5 + src/native/external/brotli/setup.py | 292 ++++ .../CMakeLists.txt | 59 +- .../extra_libs.cmake | 7 - .../CMakeLists-librarymode.txt.template | 2 +- .../Templates/CMakeLists.txt.template | 2 +- src/tasks/AppleAppBuilder/Xcode.cs | 5 +- src/tasks/LibraryBuilder/LibraryBuilder.cs | 9 + 125 files changed, 2929 insertions(+), 77 deletions(-) create mode 100644 src/native/external/brotli/BUILD.bazel create mode 100644 src/native/external/brotli/CHANGELOG.md create mode 100644 src/native/external/brotli/CMakeLists.txt create mode 100644 src/native/external/brotli/CONTRIBUTING.md create mode 100644 src/native/external/brotli/LICENSE create mode 100644 src/native/external/brotli/MANIFEST.in create mode 100644 src/native/external/brotli/README create mode 100644 src/native/external/brotli/README.md create mode 100644 src/native/external/brotli/SECURITY.md create mode 100644 src/native/external/brotli/WORKSPACE.bazel rename src/native/external/brotli/{ => c}/common/constants.c (100%) rename src/native/external/brotli/{ => c}/common/constants.h (100%) rename src/native/external/brotli/{ => c}/common/context.c (100%) rename src/native/external/brotli/{ => c}/common/context.h (100%) rename src/native/external/brotli/{ => c}/common/dictionary.c (100%) rename src/native/external/brotli/{ => c}/common/dictionary.h (100%) rename src/native/external/brotli/{ => c}/common/platform.c (100%) rename src/native/external/brotli/{ => c}/common/platform.h (100%) rename src/native/external/brotli/{ => c}/common/shared_dictionary.c (100%) rename src/native/external/brotli/{ => c}/common/shared_dictionary_internal.h (100%) rename src/native/external/brotli/{ => c}/common/transform.c (100%) rename src/native/external/brotli/{ => c}/common/transform.h (100%) rename src/native/external/brotli/{ => c}/common/version.h (100%) rename src/native/external/brotli/{ => c}/dec/bit_reader.c (100%) rename src/native/external/brotli/{ => c}/dec/bit_reader.h (100%) rename src/native/external/brotli/{ => c}/dec/decode.c (100%) rename src/native/external/brotli/{ => c}/dec/huffman.c (100%) rename src/native/external/brotli/{ => c}/dec/huffman.h (100%) rename src/native/external/brotli/{ => c}/dec/prefix.h (100%) rename src/native/external/brotli/{ => c}/dec/state.c (100%) rename src/native/external/brotli/{ => c}/dec/state.h (100%) rename src/native/external/brotli/{ => c}/enc/backward_references.c (100%) rename src/native/external/brotli/{ => c}/enc/backward_references.h (100%) rename src/native/external/brotli/{ => c}/enc/backward_references_hq.c (100%) rename src/native/external/brotli/{ => c}/enc/backward_references_hq.h (100%) rename src/native/external/brotli/{ => c}/enc/backward_references_inc.h (100%) rename src/native/external/brotli/{ => c}/enc/bit_cost.c (100%) rename src/native/external/brotli/{ => c}/enc/bit_cost.h (100%) rename src/native/external/brotli/{ => c}/enc/bit_cost_inc.h (100%) rename src/native/external/brotli/{ => c}/enc/block_encoder_inc.h (100%) rename src/native/external/brotli/{ => c}/enc/block_splitter.c (100%) rename src/native/external/brotli/{ => c}/enc/block_splitter.h (100%) rename src/native/external/brotli/{ => c}/enc/block_splitter_inc.h (100%) rename src/native/external/brotli/{ => c}/enc/brotli_bit_stream.c (100%) rename src/native/external/brotli/{ => c}/enc/brotli_bit_stream.h (100%) rename src/native/external/brotli/{ => c}/enc/cluster.c (100%) rename src/native/external/brotli/{ => c}/enc/cluster.h (100%) rename src/native/external/brotli/{ => c}/enc/cluster_inc.h (100%) rename src/native/external/brotli/{ => c}/enc/command.c (100%) rename src/native/external/brotli/{ => c}/enc/command.h (100%) rename src/native/external/brotli/{ => c}/enc/compound_dictionary.c (100%) rename src/native/external/brotli/{ => c}/enc/compound_dictionary.h (100%) rename src/native/external/brotli/{ => c}/enc/compress_fragment.c (100%) rename src/native/external/brotli/{ => c}/enc/compress_fragment.h (100%) rename src/native/external/brotli/{ => c}/enc/compress_fragment_two_pass.c (100%) rename src/native/external/brotli/{ => c}/enc/compress_fragment_two_pass.h (100%) rename src/native/external/brotli/{ => c}/enc/dictionary_hash.c (100%) rename src/native/external/brotli/{ => c}/enc/dictionary_hash.h (100%) rename src/native/external/brotli/{ => c}/enc/encode.c (100%) rename src/native/external/brotli/{ => c}/enc/encoder_dict.c (100%) rename src/native/external/brotli/{ => c}/enc/encoder_dict.h (100%) rename src/native/external/brotli/{ => c}/enc/entropy_encode.c (100%) rename src/native/external/brotli/{ => c}/enc/entropy_encode.h (100%) rename src/native/external/brotli/{ => c}/enc/entropy_encode_static.h (100%) rename src/native/external/brotli/{ => c}/enc/fast_log.c (100%) rename src/native/external/brotli/{ => c}/enc/fast_log.h (100%) rename src/native/external/brotli/{ => c}/enc/find_match_length.h (100%) rename src/native/external/brotli/{ => c}/enc/hash.h (100%) rename src/native/external/brotli/{ => c}/enc/hash_composite_inc.h (100%) rename src/native/external/brotli/{ => c}/enc/hash_forgetful_chain_inc.h (100%) rename src/native/external/brotli/{ => c}/enc/hash_longest_match64_inc.h (100%) rename src/native/external/brotli/{ => c}/enc/hash_longest_match_inc.h (100%) rename src/native/external/brotli/{ => c}/enc/hash_longest_match_quickly_inc.h (100%) rename src/native/external/brotli/{ => c}/enc/hash_rolling_inc.h (100%) rename src/native/external/brotli/{ => c}/enc/hash_to_binary_tree_inc.h (100%) rename src/native/external/brotli/{ => c}/enc/histogram.c (100%) rename src/native/external/brotli/{ => c}/enc/histogram.h (100%) rename src/native/external/brotli/{ => c}/enc/histogram_inc.h (100%) rename src/native/external/brotli/{ => c}/enc/literal_cost.c (100%) rename src/native/external/brotli/{ => c}/enc/literal_cost.h (100%) rename src/native/external/brotli/{ => c}/enc/memory.c (100%) rename src/native/external/brotli/{ => c}/enc/memory.h (100%) rename src/native/external/brotli/{ => c}/enc/metablock.c (100%) rename src/native/external/brotli/{ => c}/enc/metablock.h (100%) rename src/native/external/brotli/{ => c}/enc/metablock_inc.h (100%) rename src/native/external/brotli/{ => c}/enc/params.h (100%) rename src/native/external/brotli/{ => c}/enc/prefix.h (100%) rename src/native/external/brotli/{ => c}/enc/quality.h (100%) rename src/native/external/brotli/{ => c}/enc/ringbuffer.h (100%) rename src/native/external/brotli/{ => c}/enc/state.h (100%) rename src/native/external/brotli/{ => c}/enc/static_dict.c (100%) rename src/native/external/brotli/{ => c}/enc/static_dict.h (100%) rename src/native/external/brotli/{ => c}/enc/static_dict_lut.h (100%) rename src/native/external/brotli/{ => c}/enc/utf8_util.c (100%) rename src/native/external/brotli/{ => c}/enc/utf8_util.h (100%) rename src/native/external/brotli/{ => c}/enc/write_bits.h (100%) rename src/native/external/brotli/{ => c}/include/brotli/decode.h (100%) rename src/native/external/brotli/{ => c}/include/brotli/encode.h (100%) rename src/native/external/brotli/{ => c}/include/brotli/port.h (100%) rename src/native/external/brotli/{ => c}/include/brotli/shared_dictionary.h (100%) rename src/native/external/brotli/{ => c}/include/brotli/types.h (100%) create mode 100644 src/native/external/brotli/c/tools/brotli.c create mode 100644 src/native/external/brotli/c/tools/brotli.md create mode 100644 src/native/external/brotli/compiler_config_setting.bzl create mode 100644 src/native/external/brotli/scripts/libbrotlicommon.pc.in create mode 100644 src/native/external/brotli/scripts/libbrotlidec.pc.in create mode 100644 src/native/external/brotli/scripts/libbrotlienc.pc.in create mode 100644 src/native/external/brotli/setup.cfg create mode 100644 src/native/external/brotli/setup.py diff --git a/eng/DotNetBuild.props b/eng/DotNetBuild.props index a202a1bfd723e..f4365bf832631 100644 --- a/eng/DotNetBuild.props +++ b/eng/DotNetBuild.props @@ -90,7 +90,7 @@ +$(UseSystemLibs)+ - $(InnerBuildArgs) --cmakeargs -DCLR_CMAKE_USE_SYSTEM_BROTLI=true + $(InnerBuildArgs) --cmakeargs -DCLR_CMAKE_USE_SYSTEM_BROTLI=true $(InnerBuildArgs) --cmakeargs -DCLR_CMAKE_USE_SYSTEM_LIBUNWIND=true diff --git a/eng/testing/tests.ioslike.targets b/eng/testing/tests.ioslike.targets index a59cce6c49aee..77175724491bd 100644 --- a/eng/testing/tests.ioslike.targets +++ b/eng/testing/tests.ioslike.targets @@ -218,6 +218,12 @@ + + + + + + true + + true libRuntime.WorkstationGC libRuntime.ServerGC @@ -169,6 +171,14 @@ The .NET Foundation licenses this file to you under the MIT license. + + + + + + + + @@ -182,11 +192,6 @@ The .NET Foundation licenses this file to you under the MIT license. - - - - - @@ -211,6 +216,7 @@ The .NET Foundation licenses this file to you under the MIT license. + diff --git a/src/coreclr/nativeaot/BuildIntegration/Microsoft.NETCore.Native.Windows.targets b/src/coreclr/nativeaot/BuildIntegration/Microsoft.NETCore.Native.Windows.targets index 51d1c6002aa14..6c495ec7d06cb 100644 --- a/src/coreclr/nativeaot/BuildIntegration/Microsoft.NETCore.Native.Windows.targets +++ b/src/coreclr/nativeaot/BuildIntegration/Microsoft.NETCore.Native.Windows.targets @@ -48,6 +48,9 @@ The .NET Foundation licenses this file to you under the MIT license. + + + diff --git a/src/installer/pkg/sfx/Microsoft.NETCore.App/Directory.Build.props b/src/installer/pkg/sfx/Microsoft.NETCore.App/Directory.Build.props index 1a2d7ce5782fe..91e1674baccc5 100644 --- a/src/installer/pkg/sfx/Microsoft.NETCore.App/Directory.Build.props +++ b/src/installer/pkg/sfx/Microsoft.NETCore.App/Directory.Build.props @@ -281,6 +281,13 @@ + + + + + + + diff --git a/src/mono/msbuild/android/build/AndroidBuild.targets b/src/mono/msbuild/android/build/AndroidBuild.targets index 917aed8850669..db37ceaf98d0e 100644 --- a/src/mono/msbuild/android/build/AndroidBuild.targets +++ b/src/mono/msbuild/android/build/AndroidBuild.targets @@ -203,14 +203,15 @@ - + diff --git a/src/mono/msbuild/apple/build/AppleBuild.targets b/src/mono/msbuild/apple/build/AppleBuild.targets index 463bcac8622e9..a136da379cced 100644 --- a/src/mono/msbuild/apple/build/AppleBuild.targets +++ b/src/mono/msbuild/apple/build/AppleBuild.targets @@ -10,12 +10,12 @@ - - @@ -196,7 +196,7 @@ <_IsNative>false - <_AotInputAssemblies Include="@(_AssembliesToBundleInternal)" + <_AotInputAssemblies Include="@(_AssembliesToBundleInternal)" Condition="'%(_AssembliesToBundleInternal._InternalForceInterpret)' != 'true'"> $(AotArguments) $(ProcessArguments) @@ -205,7 +205,7 @@ <_AOT_InternalForceInterpretAssemblies Include="@(_AssembliesToBundleInternal->WithMetadataValue('_InternalForceInterpret', 'true'))" /> <_AssembliesToBundleInternal Remove="@(_AssembliesToBundleInternal)" /> - + @@ -228,8 +228,8 @@ <_ExcludeFromAppDir Include="$(_iOSLikeDedupAssembly)" /> - @@ -237,6 +237,7 @@ + @@ -274,7 +275,7 @@ - - - - + + + diff --git a/src/native/libs/System.IO.Compression.Native/CMakeLists.txt b/src/native/libs/System.IO.Compression.Native/CMakeLists.txt index 5fe4bc2e169f6..44408aba360e9 100644 --- a/src/native/libs/System.IO.Compression.Native/CMakeLists.txt +++ b/src/native/libs/System.IO.Compression.Native/CMakeLists.txt @@ -6,7 +6,7 @@ if (NOT CLR_CMAKE_USE_SYSTEM_ZLIB) include(${CLR_SRC_NATIVE_DIR}/external/zlib-ng.cmake) endif() -if(NOT CLR_CMAKE_USE_SYSTEM_BROTLI) +if (NOT CLR_CMAKE_USE_SYSTEM_BROTLI) include(${CLR_SRC_NATIVE_DIR}/external/brotli.cmake) endif() @@ -93,6 +93,15 @@ if (CLR_CMAKE_TARGET_UNIX OR CLR_CMAKE_TARGET_BROWSER OR CLR_CMAKE_TARGET_WASI) target_include_directories(System.IO.Compression.Native-Static PUBLIC ${BROTLI_INCLUDE_DIRS}) target_link_libraries(System.IO.Compression.Native-Static PUBLIC ${BROTLI_LIBRARIES}) + + foreach(BROTLI_LIB ${BROTLI_LIBRARIES}) + # Brotli's build scripts can add some system dependencies like libm + # to BROTLI_LIBRARIES. Only install the libraries that are actually + # defined as CMake targets. + if (TARGET "${BROTLI_LIB}") + install (TARGETS ${BROTLI_LIB} DESTINATION ${STATIC_LIB_DESTINATION} COMPONENT libs) + endif() + endforeach(BROTLI_LIB ${BROTLI_LIBRARIES}) else () set(NATIVE_LIBS_EXTRA) append_extra_compression_libs(NATIVE_LIBS_EXTRA) @@ -180,6 +189,14 @@ else () if(STATIC_LIBS_ONLY) install_static_library(System.IO.Compression.Native.Aot aotsdk nativeaot) install_static_library(System.IO.Compression.Native.Aot.GuardCF aotsdk nativeaot) + foreach(BROTLI_LIB ${BROTLI_LIBRARIES}) + # Brotli's build scripts can add some system dependencies like libm + # to BROTLI_LIBRARIES. Only install the libraries that are actually + # defined as CMake targets. + if (TARGET "${BROTLI_LIB}") + install_static_library(${BROTLI_LIB} aotsdk nativeaot) + endif() + endforeach(BROTLI_LIB ${BROTLI_LIBRARIES}) endif() endif () @@ -188,17 +205,4 @@ if((NOT CLR_CMAKE_USE_SYSTEM_ZLIB) AND STATIC_LIBS_ONLY) install_static_library(zlib aotsdk nativeaot) endif() -if(NOT CLR_CMAKE_USE_SYSTEM_BROTLI) - foreach(BROTLI_LIB ${BROTLI_LIBRARIES}) - # Brotli's build scripts can add some system dependencies like libm - # to BROTLI_LIBRARIES. Only install the libraries that are actually - # defined as CMake targets. - if (TARGET "${BROTLI_LIB}") - if (STATIC_LIBS_ONLY) - install_static_library(${BROTLI_LIB} aotsdk nativeaot) - endif() - endif() - endforeach(BROTLI_LIB ${BROTLI_LIBRARIES}) -endif() - install (TARGETS System.IO.Compression.Native-Static DESTINATION ${STATIC_LIB_DESTINATION} COMPONENT libs) From 4afff60811a3f8adb3ca33fac5916ea21729e630 Mon Sep 17 00:00:00 2001 From: Jeremy Koritzinsky Date: Mon, 11 Nov 2024 15:33:35 -0800 Subject: [PATCH 5/6] Brotli should get pulled from the same place as Compression.Native --- eng/testing/tests.ioslike.targets | 6 ------ 1 file changed, 6 deletions(-) diff --git a/eng/testing/tests.ioslike.targets b/eng/testing/tests.ioslike.targets index 77175724491bd..a59cce6c49aee 100644 --- a/eng/testing/tests.ioslike.targets +++ b/eng/testing/tests.ioslike.targets @@ -218,12 +218,6 @@ - - - - - - Date: Mon, 11 Nov 2024 15:45:52 -0800 Subject: [PATCH 6/6] Fix looking for libbrotlicommon.a on disk to determine if we should use system brotli --- .../BuildIntegration/Microsoft.NETCore.Native.Unix.targets | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/coreclr/nativeaot/BuildIntegration/Microsoft.NETCore.Native.Unix.targets b/src/coreclr/nativeaot/BuildIntegration/Microsoft.NETCore.Native.Unix.targets index 1863514c203c8..73394c175554d 100644 --- a/src/coreclr/nativeaot/BuildIntegration/Microsoft.NETCore.Native.Unix.targets +++ b/src/coreclr/nativeaot/BuildIntegration/Microsoft.NETCore.Native.Unix.targets @@ -31,7 +31,7 @@ The .NET Foundation licenses this file to you under the MIT license. true - true + true libRuntime.WorkstationGC libRuntime.ServerGC