[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:41:02 PST 2019


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/389426e8/attachment.html>


More information about the llvm-commits mailing list