[compiler-rt] r355236 - [sanitizers] Don't use Windows Trace Logging on MinGW

Vlad Tsyrklevich via llvm-commits llvm-commits at lists.llvm.org
Fri Mar 1 16:46:25 PST 2019


Sigh, I misread the buildbot interface. Volodymyr your change did bring the
Linux build back to life. I've reverted my original revert in r355251,
sorry for the churn.

On Fri, Mar 1, 2019 at 4:41 PM Vlad Tsyrklevich <vlad at tsyrklevich.net>
wrote:

> I've reverted both of these changes in r355250. The sanitizer build fails
> on Linux and I have other failures to investigate. (For what it's worth
> Volodymyr, I took a brief look and it was unclear to me if either were
> correct. The Linux build was failing before and after your change.)
>
> On Fri, Mar 1, 2019 at 4:07 PM Volodymyr Sapsai via llvm-commits <
> llvm-commits at lists.llvm.org> wrote:
>
>> Martin, I’ve made a small fix in r355244. See inline for more details
>>
>> > On Mar 1, 2019, at 14:30, Martin Storsjo via llvm-commits <
>> llvm-commits at lists.llvm.org> wrote:
>> >
>> > Author: mstorsjo
>> > Date: Fri Mar  1 14:30:14 2019
>> > New Revision: 355236
>> >
>> > URL: http://llvm.org/viewvc/llvm-project?rev=355236&view=rev
>> > Log:
>> > [sanitizers] Don't use Windows Trace Logging on MinGW
>> >
>> > mingw-w64 currently is lacking the headers for this feature.
>> >
>> > Make the include lowercase at the same time. We consistently
>> > use lowercase for windows header includes, as windows itself is
>> > case insensitive, the SDK headers (in general, not necessarily
>> > considering this particular header) aren't consistent among themselves
>> > about what the proper canonical capitalization for headers are,
>> > and MinGW uses all lowercase names for the headers (as it is often
>> > used on case sensitive filesystems).
>> >
>> > In case mingw-w64 later gets this header, we can revert this
>> > (but keep the include lowercased).
>> >
>> > Differential Revision: https://reviews.llvm.org/D58765
>> >
>> > Modified:
>> >    compiler-rt/trunk/lib/sanitizer_common/sanitizer_common.h
>> >    compiler-rt/trunk/lib/sanitizer_common/sanitizer_win.cc
>> >
>> > Modified: compiler-rt/trunk/lib/sanitizer_common/sanitizer_common.h
>> > URL:
>> http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/sanitizer_common/sanitizer_common.h?rev=355236&r1=355235&r2=355236&view=diff
>> >
>> ==============================================================================
>> > --- compiler-rt/trunk/lib/sanitizer_common/sanitizer_common.h (original)
>> > +++ compiler-rt/trunk/lib/sanitizer_common/sanitizer_common.h Fri Mar
>> 1 14:30:14 2019
>> > @@ -804,7 +804,13 @@ enum AndroidApiLevel {
>> >
>> > void WriteToSyslog(const char *buffer);
>> >
>> > -#if SANITIZER_MAC || SANITIZER_WINDOWS
>> > +#if defined(SANITIZER_WINDOWS) && defined(_MSC_VER)
>> > +#define SANITIZER_WIN_TRACE 1
>> > +#else
>> > +#define SANITIZER_WIN_TRACE 0
>> > +#endif
>> > +
>> > +#if SANITIZER_LINUX || SANITIZER_WIN_TRACE
>> I think changing SANITIZER_MAC to SANITIZER_LINUX was a mistake and was
>> copy-pasted from the part of the file below. But I can be wrong and maybe
>> we need #if SANITIZER_MAC || SANITIZER_LINUX || SANITIZER_WIN_TRACE
>>
>> > void LogFullErrorReport(const char *buffer);
>> > #else
>> > INLINE void LogFullErrorReport(const char *buffer) {}
>> > @@ -818,7 +824,7 @@ INLINE void WriteOneLineToSyslog(const c
>> > INLINE void LogMessageOnPrintf(const char *str) {}
>> > #endif
>> >
>> > -#if SANITIZER_LINUX || SANITIZER_WINDOWS
>> > +#if SANITIZER_LINUX || SANITIZER_WIN_TRACE
>> > // Initialize Android logging. Any writes before this are silently lost.
>> > void AndroidLogInit();
>> > void SetAbortMessage(const char *);
>> >
>> > Modified: compiler-rt/trunk/lib/sanitizer_common/sanitizer_win.cc
>> > URL:
>> http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/sanitizer_common/sanitizer_win.cc?rev=355236&r1=355235&r2=355236&view=diff
>> >
>> ==============================================================================
>> > --- compiler-rt/trunk/lib/sanitizer_common/sanitizer_win.cc (original)
>> > +++ compiler-rt/trunk/lib/sanitizer_common/sanitizer_win.cc Fri Mar  1
>> 14:30:14 2019
>> > @@ -20,7 +20,6 @@
>> > #include <io.h>
>> > #include <psapi.h>
>> > #include <stdlib.h>
>> > -#include <TraceLoggingProvider.h>
>> >
>> > #include "sanitizer_common.h"
>> > #include "sanitizer_file.h"
>> > @@ -32,6 +31,8 @@
>> > #if defined(PSAPI_VERSION) && PSAPI_VERSION == 1
>> > #pragma comment(lib, "psapi")
>> > #endif
>> > +#if SANITIZER_WIN_TRACE
>> > +#include <traceloggingprovider.h>
>> > //  Windows trace logging provider init
>> > #pragma comment(lib, "advapi32.lib")
>> > TRACELOGGING_DECLARE_PROVIDER(g_asan_provider);
>> > @@ -39,6 +40,9 @@ TRACELOGGING_DECLARE_PROVIDER(g_asan_pro
>> > TRACELOGGING_DEFINE_PROVIDER(g_asan_provider,
>> "AddressSanitizerLoggingProvider",
>> >                              (0x6c6c766d, 0x3846, 0x4e6a, 0xa4, 0xfb,
>> 0x5b,
>> >                               0x53, 0x0b, 0xd0, 0xf3, 0xfa));
>> > +#else
>> > +#define TraceLoggingUnregister(x)
>> > +#endif
>> >
>> > // A macro to tell the compiler that this part of the code cannot be
>> reached,
>> > // if the compiler supports this feature. Since we're using this in
>> > @@ -1080,6 +1084,7 @@ u32 GetNumberOfCPUs() {
>> >   return sysinfo.dwNumberOfProcessors;
>> > }
>> >
>> > +#if SANITIZER_WIN_TRACE
>> > // TODO(mcgov): Rename this project-wide to PlatformLogInit
>> > void AndroidLogInit(void) {
>> >   HRESULT hr = TraceLoggingRegister(g_asan_provider);
>> > @@ -1103,6 +1108,7 @@ void LogFullErrorReport(const char *buff
>> >                       TraceLoggingValue(buffer, "AsanReportContents"));
>> >   }
>> > }
>> > +#endif // SANITIZER_WIN_TRACE
>> >
>> > }  // namespace __sanitizer
>> >
>> >
>> >
>> > _______________________________________________
>> > llvm-commits mailing list
>> > llvm-commits at lists.llvm.org
>> > https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits
>>
>> _______________________________________________
>> llvm-commits mailing list
>> llvm-commits at lists.llvm.org
>> https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20190301/552119c9/attachment.html>


More information about the llvm-commits mailing list