Fix LTTng build for build environments with older liblttng-ust-dev (#27273) (#27294)
authorSung Yoon Whang <suwhang@microsoft.com>
Mon, 21 Oct 2019 23:04:28 +0000 (16:04 -0700)
committerGitHub <noreply@github.com>
Mon, 21 Oct 2019 23:04:28 +0000 (16:04 -0700)
* Fix macro redefinition to use XplatEventLogger instead of simply writing FALSE

* Fix linker error

* undo newline changes

* Some changes to comment

* Move wrapper export from eventpipe.cpp to eventtrace.cpp

src/scripts/genLttngProvider.py
src/vm/eventtrace.cpp

index 38fca2d..393ca3f 100644 (file)
@@ -546,7 +546,10 @@ def generateLttngFiles(etwmanifest,eventprovider_directory, dryRun):
                 lttngimpl_file.write("#include \"" + lttngevntheadershortname + "\"\n\n")
 
                 lttngimpl_file.write("""#ifndef tracepoint_enabled
-#define tracepoint_enabled(provider, name) FALSE
+
+extern "C" bool XplatEventLoggerIsEnabled();
+
+#define tracepoint_enabled(provider, name) XplatEventLoggerIsEnabled()
 #define do_tracepoint tracepoint
 #endif
 
index f5f6389..ec09400 100644 (file)
@@ -7543,3 +7543,11 @@ bool EventPipeHelper::IsEnabled(DOTNET_TRACE_CONTEXT Context, UCHAR Level, ULONG
     return false;
 }
 #endif // FEATURE_PERFTRACING
+
+#if defined(FEATURE_PAL)  && defined(FEATURE_PERFTRACING)
+// This is a wrapper method for LTTng. See https://github.com/dotnet/coreclr/pull/27273 for details.
+extern "C" bool XplatEventLoggerIsEnabled()
+{
+    return XplatEventLogger::IsEventLoggingEnabled();
+}
+#endif // FEATURE_PAL && FEATURE_PERFTRACING