@@ -439,12 +439,15 @@ def generateClrallEvents(eventNodes, allTemplates, target_cpp, runtimeFlavor, is
439439
440440 if runtimeFlavor .coreclr or write_xplatheader or runtimeFlavor .nativeaot :
441441 if not is_host_windows :
442- # native AOT does not support non-windows eventing other than via event pipe
442+ # native AOT and browser/wasi do not support non-windows eventing other than via event pipe
443443 if not runtimeFlavor .nativeaot :
444- clrallEvents .append (" || (XplatEventLogger" +
444+ clrallEvents .append ("\n #if !defined(HOST_BROWSER) && !defined(HOST_WASI)\n " )
445+ clrallEvents .append (" || (XplatEventLogger" +
445446 ("::" if target_cpp else "_" ) +
446447 "IsEventLoggingEnabled() && EventXplatEnabled" +
447- eventName + "());}\n \n " )
448+ eventName + "())\n " )
449+ clrallEvents .append ("#endif // !HOST_BROWSER && !HOST_WASI\n " )
450+ clrallEvents .append (";}\n \n " )
448451 else :
449452 clrallEvents .append (";}\n \n " )
450453 else :
@@ -865,11 +868,18 @@ def generatePlatformIndependentFiles(sClrEtwAllMan, incDir, etmDummyFile, extern
865868 dotnet_trace_context_typedef_unix = """
866869#if !defined(DOTNET_TRACE_CONTEXT_DEF)
867870#define DOTNET_TRACE_CONTEXT_DEF
871+ #if defined(HOST_BROWSER) || defined(HOST_WASI)
872+ typedef struct _DOTNET_TRACE_CONTEXT
873+ {
874+ EVENTPIPE_TRACE_CONTEXT EventPipeProvider;
875+ } DOTNET_TRACE_CONTEXT, *PDOTNET_TRACE_CONTEXT;
876+ #else
868877typedef struct _DOTNET_TRACE_CONTEXT
869878{
870879 EVENTPIPE_TRACE_CONTEXT EventPipeProvider;
871880 PLTTNG_TRACE_CONTEXT LttngProvider;
872881} DOTNET_TRACE_CONTEXT, *PDOTNET_TRACE_CONTEXT;
882+ #endif
873883#endif // DOTNET_TRACE_CONTEXT_DEF
874884"""
875885
@@ -894,7 +904,9 @@ def generatePlatformIndependentFiles(sClrEtwAllMan, incDir, etmDummyFile, extern
894904""" )
895905 if not is_host_windows and not runtimeFlavor .nativeaot :
896906 Clrproviders .write (eventpipe_trace_context_typedef ) # define EVENTPIPE_TRACE_CONTEXT
907+ Clrproviders .write ("#if !defined(HOST_BROWSER) && !defined(HOST_WASI)\n " )
897908 Clrproviders .write (lttng_trace_context_typedef ) # define LTTNG_TRACE_CONTEXT
909+ Clrproviders .write ("#endif // !HOST_BROWSER && !HOST_WASI\n " )
898910 Clrproviders .write (dotnet_trace_context_typedef_unix + "\n " )
899911
900912 allProviders = []
@@ -910,7 +922,9 @@ def generatePlatformIndependentFiles(sClrEtwAllMan, incDir, etmDummyFile, extern
910922 eventpipeProviderCtxName = providerSymbol + "_EVENTPIPE_Context"
911923 Clrproviders .write ('__attribute__((weak)) EVENTPIPE_TRACE_CONTEXT ' + eventpipeProviderCtxName + ' = { W("' + providerName + '"), 0, false, 0 };\n ' )
912924 lttngProviderCtxName = providerSymbol + "_LTTNG_Context"
925+ Clrproviders .write ('#if !defined(HOST_BROWSER) && !defined(HOST_WASI)\n ' )
913926 Clrproviders .write ('__attribute__((weak)) LTTNG_TRACE_CONTEXT ' + lttngProviderCtxName + ' = { W("' + providerName + '"), 0, false, 0 };\n ' )
927+ Clrproviders .write ('#endif // !HOST_BROWSER && !HOST_WASI\n ' )
914928
915929 Clrproviders .write ("// Keywords\n " );
916930 for keywordNode in providerNode .getElementsByTagName ('keyword' ):
@@ -934,10 +948,12 @@ def generatePlatformIndependentFiles(sClrEtwAllMan, incDir, etmDummyFile, extern
934948
935949 # define and initialize runtime providers' DOTNET_TRACE_CONTEXT depending on the platform
936950 if not is_host_windows and not runtimeFlavor .nativeaot :
951+ Clrproviders .write ('#if !defined(HOST_BROWSER) && !defined(HOST_WASI)\n ' )
937952 Clrproviders .write ('#define NB_PROVIDERS ' + str (nbProviders ) + '\n ' )
938953 Clrproviders .write (('constexpr ' if target_cpp else 'static const ' ) + 'LTTNG_TRACE_CONTEXT * ALL_LTTNG_PROVIDERS_CONTEXT[NB_PROVIDERS] = { ' )
939954 Clrproviders .write (', ' .join (allProviders ))
940955 Clrproviders .write (' };\n ' )
956+ Clrproviders .write ('#endif // !HOST_BROWSER && !HOST_WASI\n ' )
941957
942958
943959 clreventpipewriteevents = os .path .join (incDir , "clreventpipewriteevents.h" )
0 commit comments