From 810ade785eddae75e8c0f147f45012a1b8e8287a Mon Sep 17 00:00:00 2001 From: Tom Deseyn Date: Tue, 25 Mar 2025 10:32:23 +0100 Subject: [PATCH 1/4] Make lttng-ust an optional dependency. --- eng/DotNetBuild.props | 11 ++++++----- src/coreclr/clr.featuredefines.props | 2 +- src/coreclr/clrdefinitions.cmake | 4 ++-- src/coreclr/clrfeatures.cmake | 7 +++++++ src/coreclr/pal/src/configure.cmake | 2 +- src/coreclr/pal/src/eventprovider/CMakeLists.txt | 2 +- src/coreclr/runtime.proj | 1 + 7 files changed, 19 insertions(+), 10 deletions(-) diff --git a/eng/DotNetBuild.props b/eng/DotNetBuild.props index 81d4d6792a1098..f0e3efa2bf8797 100644 --- a/eng/DotNetBuild.props +++ b/eng/DotNetBuild.props @@ -112,13 +112,14 @@ $(InnerBuildArgs) /p:GitHubRepositoryName=$(GitHubRepositoryName) - +$(UseSystemLibs)+ - $(InnerBuildArgs) --cmakeargs -DCLR_CMAKE_USE_SYSTEM_BROTLI=true - $(InnerBuildArgs) --cmakeargs -DCLR_CMAKE_USE_SYSTEM_LIBUNWIND=true + +$(UseSystemLibs) + $(InnerBuildArgs) --cmakeargs -DCLR_CMAKE_USE_SYSTEM_BROTLI=true + $(InnerBuildArgs) --cmakeargs -DCLR_CMAKE_USE_SYSTEM_LIBUNWIND=true - $(InnerBuildArgs) --cmakeargs -DCLR_CMAKE_USE_SYSTEM_RAPIDJSON=true - $(InnerBuildArgs) --cmakeargs -DCLR_CMAKE_USE_SYSTEM_ZLIB=true + $(InnerBuildArgs) --cmakeargs -DCLR_CMAKE_USE_SYSTEM_RAPIDJSON=true + $(InnerBuildArgs) --cmakeargs -DCLR_CMAKE_USE_SYSTEM_ZLIB=true + $(InnerBuildArgs) /p:FeatureXplatEventSource=false $(InnerBuildArgs) /p:NetCoreAppToolCurrentVersion=$(NetCoreAppToolCurrentVersion) diff --git a/src/coreclr/clr.featuredefines.props b/src/coreclr/clr.featuredefines.props index 17ed60b5f8deca..5dd3516f862372 100644 --- a/src/coreclr/clr.featuredefines.props +++ b/src/coreclr/clr.featuredefines.props @@ -6,7 +6,7 @@ - true + true true diff --git a/src/coreclr/clrdefinitions.cmake b/src/coreclr/clrdefinitions.cmake index 550ce70a14ef7a..6df63f17471db8 100644 --- a/src/coreclr/clrdefinitions.cmake +++ b/src/coreclr/clrdefinitions.cmake @@ -115,9 +115,9 @@ endif(FEATURE_GDBJIT_LANGID_CS) if(FEATURE_GDBJIT_SYMTAB) add_definitions(-DFEATURE_GDBJIT_SYMTAB) endif(FEATURE_GDBJIT_SYMTAB) -if(CLR_CMAKE_TARGET_LINUX) +if(FEATURE_EVENTSOURCE_XPLAT) add_definitions(-DFEATURE_EVENTSOURCE_XPLAT) -endif(CLR_CMAKE_TARGET_LINUX) +endif(FEATURE_EVENTSOURCE_XPLAT) # NetBSD doesn't implement this feature if(NOT CLR_CMAKE_TARGET_NETBSD AND NOT CLR_CMAKE_TARGET_ARCH_WASM) add_definitions(-DFEATURE_HIJACK) diff --git a/src/coreclr/clrfeatures.cmake b/src/coreclr/clrfeatures.cmake index 6bb761a8e0e2f8..efff324c01fbee 100644 --- a/src/coreclr/clrfeatures.cmake +++ b/src/coreclr/clrfeatures.cmake @@ -9,6 +9,13 @@ if(NOT DEFINED FEATURE_EVENT_TRACE) endif() endif(NOT DEFINED FEATURE_EVENT_TRACE) +if(NOT DEFINED FEATURE_EVENTSOURCE_XPLAT) + if (CLR_CMAKE_HOST_LINUX AND NOT CLR_CMAKE_DISABLE_XPLAT_EVENTSOURCE) + # To actually disable FEATURE_EVENTSOURCE_XPLAT, also change clr.featuredefines.props + set(FEATURE_EVENTSOURCE_XPLAT 1) + endif() +endif(NOT DEFINED FEATURE_EVENTSOURCE_XPLAT) + if(NOT DEFINED FEATURE_PERFTRACING AND FEATURE_EVENT_TRACE) set(FEATURE_PERFTRACING 1) endif(NOT DEFINED FEATURE_PERFTRACING AND FEATURE_EVENT_TRACE) diff --git a/src/coreclr/pal/src/configure.cmake b/src/coreclr/pal/src/configure.cmake index 55d3f47ff46748..5dd56c1748dbdc 100644 --- a/src/coreclr/pal/src/configure.cmake +++ b/src/coreclr/pal/src/configure.cmake @@ -942,7 +942,7 @@ elseif(CLR_CMAKE_TARGET_BROWSER) set(HAVE_SCHED_OTHER_ASSIGNABLE 0) else() # Anything else is Linux # LTTNG is not available on Android, so don't error out - if(NOT HAVE_LTTNG_TRACEPOINT_H AND NOT CLR_CMAKE_TARGET_ANDROID AND FEATURE_EVENT_TRACE) + if(FEATURE_EVENTSOURCE_XPLAT AND NOT HAVE_LTTNG_TRACEPOINT_H) unset(HAVE_LTTNG_TRACEPOINT_H CACHE) message(FATAL_ERROR "Cannot find liblttng-ust-dev. Try installing liblttng-ust-dev (or the appropriate packages for your platform)") endif() diff --git a/src/coreclr/pal/src/eventprovider/CMakeLists.txt b/src/coreclr/pal/src/eventprovider/CMakeLists.txt index 76bbf56e8e114c..ae7b58bb9fd076 100644 --- a/src/coreclr/pal/src/eventprovider/CMakeLists.txt +++ b/src/coreclr/pal/src/eventprovider/CMakeLists.txt @@ -1,6 +1,6 @@ set(EVENT_MANIFEST ${VM_DIR}/ClrEtwAll.man) -if(CLR_CMAKE_HOST_LINUX AND NOT CLR_CMAKE_HOST_ANDROID) +if(FEATURE_EVENTSOURCE_XPLAT) add_subdirectory(lttngprovider) else() add_subdirectory(dummyprovider) diff --git a/src/coreclr/runtime.proj b/src/coreclr/runtime.proj index 9da9af3cc09923..3299f20116de00 100644 --- a/src/coreclr/runtime.proj +++ b/src/coreclr/runtime.proj @@ -51,6 +51,7 @@ <_CoreClrBuildArg Include="-cmakeargs "-DCLR_DOTNET_HOST_PATH=$(DOTNET_HOST_PATH)"" /> <_CoreClrBuildArg Condition="'$(HasCdacBuildTool)' == 'true'" Include="-cmakeargs "-DCDAC_BUILD_TOOL_BINARY_PATH=$(RuntimeBinDir)cdac-build-tool\cdac-build-tool.dll"" /> <_CoreClrBuildArg Condition="'$(_IcuDir)' != ''" Include="-cmakeargs "-DCLR_CMAKE_ICU_DIR=$(_IcuDir)"" /> + <_CoreClrBuildArg Condition="'$(FeatureXplatEventSource)' == 'false'" Include="-cmakeargs "-DCLR_CMAKE_DISABLE_XPLAT_EVENTSOURCE=1"" /> From b8b1ac7739294574c31224bd47c84a8149250509 Mon Sep 17 00:00:00 2001 From: Tom Deseyn Date: Tue, 25 Mar 2025 11:20:51 +0100 Subject: [PATCH 2/4] Fix android build. --- src/coreclr/clrfeatures.cmake | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/coreclr/clrfeatures.cmake b/src/coreclr/clrfeatures.cmake index efff324c01fbee..c9d963fe1822cd 100644 --- a/src/coreclr/clrfeatures.cmake +++ b/src/coreclr/clrfeatures.cmake @@ -10,7 +10,7 @@ if(NOT DEFINED FEATURE_EVENT_TRACE) endif(NOT DEFINED FEATURE_EVENT_TRACE) if(NOT DEFINED FEATURE_EVENTSOURCE_XPLAT) - if (CLR_CMAKE_HOST_LINUX AND NOT CLR_CMAKE_DISABLE_XPLAT_EVENTSOURCE) + if (CLR_CMAKE_TARGET_LINUX AND NOT CLR_CMAKE_DISABLE_XPLAT_EVENTSOURCE) # To actually disable FEATURE_EVENTSOURCE_XPLAT, also change clr.featuredefines.props set(FEATURE_EVENTSOURCE_XPLAT 1) endif() From 8a67ed1c7bc4e2b3ce6de60208c93a7fabb36f2c Mon Sep 17 00:00:00 2001 From: Tom Deseyn Date: Tue, 25 Mar 2025 11:56:31 +0100 Subject: [PATCH 3/4] Fix android build... --- src/coreclr/clrfeatures.cmake | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/coreclr/clrfeatures.cmake b/src/coreclr/clrfeatures.cmake index c9d963fe1822cd..98b42354e0aa58 100644 --- a/src/coreclr/clrfeatures.cmake +++ b/src/coreclr/clrfeatures.cmake @@ -10,7 +10,7 @@ if(NOT DEFINED FEATURE_EVENT_TRACE) endif(NOT DEFINED FEATURE_EVENT_TRACE) if(NOT DEFINED FEATURE_EVENTSOURCE_XPLAT) - if (CLR_CMAKE_TARGET_LINUX AND NOT CLR_CMAKE_DISABLE_XPLAT_EVENTSOURCE) + if (CLR_CMAKE_TARGET_LINUX AND NOT CLR_CMAKE_TARGET_ANDROID AND NOT CLR_CMAKE_DISABLE_XPLAT_EVENTSOURCE) # To actually disable FEATURE_EVENTSOURCE_XPLAT, also change clr.featuredefines.props set(FEATURE_EVENTSOURCE_XPLAT 1) endif() From 32df04248ee6374a0dd2b3dc18f29ac9f74e5660 Mon Sep 17 00:00:00 2001 From: Tom Deseyn Date: Tue, 25 Mar 2025 17:23:26 +0100 Subject: [PATCH 4/4] Remove CLR_CMAKE_DISABLE_XPLAT_EVENTSOURCE=1. --- src/coreclr/clrfeatures.cmake | 2 +- src/coreclr/runtime.proj | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/coreclr/clrfeatures.cmake b/src/coreclr/clrfeatures.cmake index 98b42354e0aa58..19b53e6ed268af 100644 --- a/src/coreclr/clrfeatures.cmake +++ b/src/coreclr/clrfeatures.cmake @@ -10,7 +10,7 @@ if(NOT DEFINED FEATURE_EVENT_TRACE) endif(NOT DEFINED FEATURE_EVENT_TRACE) if(NOT DEFINED FEATURE_EVENTSOURCE_XPLAT) - if (CLR_CMAKE_TARGET_LINUX AND NOT CLR_CMAKE_TARGET_ANDROID AND NOT CLR_CMAKE_DISABLE_XPLAT_EVENTSOURCE) + if (CLR_CMAKE_TARGET_LINUX AND NOT CLR_CMAKE_TARGET_ANDROID) # To actually disable FEATURE_EVENTSOURCE_XPLAT, also change clr.featuredefines.props set(FEATURE_EVENTSOURCE_XPLAT 1) endif() diff --git a/src/coreclr/runtime.proj b/src/coreclr/runtime.proj index 3299f20116de00..a5ef3e0169b426 100644 --- a/src/coreclr/runtime.proj +++ b/src/coreclr/runtime.proj @@ -51,7 +51,7 @@ <_CoreClrBuildArg Include="-cmakeargs "-DCLR_DOTNET_HOST_PATH=$(DOTNET_HOST_PATH)"" /> <_CoreClrBuildArg Condition="'$(HasCdacBuildTool)' == 'true'" Include="-cmakeargs "-DCDAC_BUILD_TOOL_BINARY_PATH=$(RuntimeBinDir)cdac-build-tool\cdac-build-tool.dll"" /> <_CoreClrBuildArg Condition="'$(_IcuDir)' != ''" Include="-cmakeargs "-DCLR_CMAKE_ICU_DIR=$(_IcuDir)"" /> - <_CoreClrBuildArg Condition="'$(FeatureXplatEventSource)' == 'false'" Include="-cmakeargs "-DCLR_CMAKE_DISABLE_XPLAT_EVENTSOURCE=1"" /> + <_CoreClrBuildArg Condition="'$(FeatureXplatEventSource)' == 'false'" Include="-cmakeargs "-DFEATURE_EVENTSOURCE_XPLAT=0"" />