<div dir="ltr">Thanks. <div>Looking...</div></div><div class="gmail_extra"><br><div class="gmail_quote">On Thu, Nov 9, 2017 at 7:06 PM, Vedant Kumar <span dir="ltr"><<a href="mailto:vsk@apple.com" target="_blank">vsk@apple.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Hi Vitaly,<br>
<br>
This breaks the ASan build on Darwin. Could you take a look?<br>
<br>
/Users/vk/src/llvm.org-master/<wbr>llvm/projects/compiler-rt/lib/<wbr>sanitizer_common/sanitizer_<wbr>mac.cc:188:40: warning: cast from 'const void *' to 'sigaction *' drops const qualifier [-Wcast-qual]<br>
                   (struct sigaction *)act, (struct sigaction *)oldact);<br>
                                       ^<br>
1 warning generated.<br>
/Users/vk/src/llvm.org-master/<wbr>llvm/projects/compiler-rt/lib/<wbr>sanitizer_common/sanitizer_<wbr>mac.cc:188:40: warning: cast from 'const void *' to 'sigaction *' drops const qualifier [-Wcast-qual]<br>
                   (struct sigaction *)act, (struct sigaction *)oldact);<br>
                                       ^<br>
1 warning generated.<br>
/Users/vk/src/llvm.org-master/<wbr>llvm/projects/compiler-rt/lib/<wbr>sanitizer_common/sanitizer_<wbr>mac.cc:188:40: warning: cast from 'const void *' to 'sigaction *' drops const qualifier [-Wcast-qual]<br>
                   (struct sigaction *)act, (struct sigaction *)oldact);<br>
                                       ^<br>
1 warning generated.<br>
[62/98] Building CXX object projects/compiler-rt/lib/<wbr>ubsan/CMakeFiles/RTUbsan.osx.<wbr>dir/ubsan_type_hash.cc.o<br>
clang: warning: argument unused during compilation: '-fcxx-modules' [-Wunused-command-line-<wbr>argument]<br>
clang: warning: argument unused during compilation: '-fcxx-modules' [-Wunused-command-line-<wbr>argument]<br>
[63/98] Building CXX object projects/compiler-rt/lib/<wbr>ubsan/CMakeFiles/RTUbsan.osx.<wbr>dir/ubsan_type_hash_win.cc.o<br>
clang: warning: argument unused during compilation: '-fcxx-modules' [-Wunused-command-line-<wbr>argument]<br>
clang: warning: argument unused during compilation: '-fcxx-modules' [-Wunused-command-line-<wbr>argument]<br>
[64/98] Building CXX object projects/compiler-rt/lib/ub...<wbr>CMakeFiles/RTUbsan.osx.dir/<wbr>ubsan_type_hash_itanium.cc.o<br>
clang: warning: argument unused during compilation: '-fcxx-modules' [-Wunused-command-line-<wbr>argument]<br>
clang: warning: argument unused during compilation: '-fcxx-modules' [-Wunused-command-line-<wbr>argument]<br>
[65/98] Building CXX object projects/compiler-rt/lib/<wbr>ubsan/CMakeFiles/RTUbsan.osx.<wbr>dir/ubsan_handlers_cxx.cc.o<br>
clang: warning: argument unused during compilation: '-fcxx-modules' [-Wunused-command-line-<wbr>argument]<br>
clang: warning: argument unused during compilation: '-fcxx-modules' [-Wunused-command-line-<wbr>argument]<br>
[66/98] Building CXX object projects/compiler-rt/lib/<wbr>ubsan/CMakeFiles/RTUbsan.osx.<wbr>dir/ubsan_diag.cc.o<br>
clang: warning: argument unused during compilation: '-fcxx-modules' [-Wunused-command-line-<wbr>argument]<br>
clang: warning: argument unused during compilation: '-fcxx-modules' [-Wunused-command-line-<wbr>argument]<br>
[67/98] Building CXX object projects/compiler-rt/lib/asan/<wbr>CMakeFiles/RTAsan_dynamic.osx.<wbr>dir/asan_fuchsia.cc.o<br>
clang: warning: argument unused during compilation: '-fcxx-modules' [-Wunused-command-line-<wbr>argument]<br>
clang: warning: argument unused during compilation: '-fcxx-modules' [-Wunused-command-line-<wbr>argument]<br>
[68/98] Building CXX object projects/compiler-rt/lib/as...<wbr>/CMakeFiles/RTAsan_dynamic.<wbr>osx.dir/asan_activation.cc.o<br>
clang: warning: argument unused during compilation: '-fcxx-modules' [-Wunused-command-line-<wbr>argument]<br>
clang: warning: argument unused during compilation: '-fcxx-modules' [-Wunused-command-line-<wbr>argument]<br>
[69/98] Building CXX object projects/compiler-rt/lib/<wbr>ubsan/CMakeFiles/RTUbsan.osx.<wbr>dir/ubsan_handlers.cc.o<br>
clang: warning: argument unused during compilation: '-fcxx-modules' [-Wunused-command-line-<wbr>argument]<br>
clang: warning: argument unused during compilation: '-fcxx-modules' [-Wunused-command-line-<wbr>argument]<br>
[70/98] Building CXX object projects/compiler-rt/lib/asan/<wbr>CMakeFiles/RTAsan_dynamic.osx.<wbr>dir/asan_errors.cc.o<br>
FAILED: projects/compiler-rt/lib/asan/<wbr>CMakeFiles/RTAsan_dynamic.osx.<wbr>dir/asan_errors.cc.o<br>
/Applications/Xcode.app/<wbr>Contents/Developer/Toolchains/<wbr>XcodeDefault.xctoolchain/usr/<wbr>bin/c++   -DASAN_DYNAMIC=1 -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -Iprojects/compiler-rt/lib/<wbr>asan -I/Users/vk/src/<br>
llvm.org-master/llvm/projects/<wbr>compiler-rt/lib/asan -I/usr/include/libxml2 -Iinclude -I/Users/vk/src/llvm.org-<wbr>master/llvm/include -I/Users/vk/src/llvm.org-<wbr>master/llvm/projects/compiler-<wbr>rt/lib/asan/.. -fPIC -fvisibility-inlines-hi<br>
dden -Werror=date-time -Werror=unguarded-<wbr>availability-new -std=c++11 -fmodules -fmodules-cache-path=/Volumes/<wbr>Builds/llvm.org-master-R/<wbr>module.cache -fcxx-modules -Wall -W -Wno-unused-parameter -Wwrite-strings -Wcast-qual -Wmissin<br>
g-field-initializers -pedantic -Wno-long-long -Wcovered-switch-default -Wnon-virtual-dtor -Wdelete-non-virtual-dtor -Wstring-conversion -fcolor-diagnostics -Wall -std=c++11 -Wno-unused-parameter -O3 -DNDEBUG -arch i386 -arch x86<br>
_64 -arch x86_64h     -fPIC -fvisibility-inlines-hidden -Werror=date-time -Werror=unguarded-<wbr>availability-new -std=c++11 -fmodules -fmodules-cache-path=/Volumes/<wbr>Builds/llvm.org-master-R/<wbr>module.cache -fcxx-modules -Wall -W -Wno-un<br>
used-parameter -Wwrite-strings -Wcast-qual -Wmissing-field-initializers -pedantic -Wno-long-long -Wcovered-switch-default -Wnon-virtual-dtor -Wdelete-non-virtual-dtor -Wstring-conversion -fcolor-diagnostics -Wall -std=c++11 -Wno<br>
-unused-parameter -stdlib=libc++ -mmacosx-version-min=10.9 -isysroot /Applications/Xcode.app/<wbr>Contents/Developer/Platforms/<wbr>MacOSX.platform/Developer/<wbr>SDKs/MacOSX10.13.Internal.sdk -fPIC -fno-builtin -fno-exceptions -funwind-tables<br>
 -fno-stack-protector -fno-sanitize=safe-stack -fvisibility=hidden -fvisibility-inlines-hidden -fno-lto -O3 -gline-tables-only -fno-modules -Wno-gnu -Wno-variadic-macros -Wno-c99-extensions -Wno-non-virtual-dtor -fno-rtti -ftls-<br>
model=initial-exec -MD -MT projects/compiler-rt/lib/asan/<wbr>CMakeFiles/RTAsan_dynamic.osx.<wbr>dir/asan_errors.cc.o -MF projects/compiler-rt/lib/asan/<wbr>CMakeFiles/RTAsan_dynamic.osx.<wbr>dir/asan_errors.cc.o.d -o projects/compiler-rt/lib/asan/<br>
CMakeFiles/RTAsan_dynamic.osx.<wbr>dir/asan_errors.cc.o -c /Users/vk/src/llvm.org-master/<wbr>llvm/projects/compiler-rt/lib/<wbr>asan/asan_errors.cc<br>
clang: warning: argument unused during compilation: '-fcxx-modules' [-Wunused-command-line-<wbr>argument]<br>
clang: warning: argument unused during compilation: '-fcxx-modules' [-Wunused-command-line-<wbr>argument]<br>
In file included from /Users/vk/src/llvm.org-master/<wbr>llvm/projects/compiler-rt/lib/<wbr>asan/asan_errors.cc:16:<br>
/Applications/Xcode.app/<wbr>Contents/Developer/Platforms/<wbr>MacOSX.platform/Developer/<wbr>SDKs/MacOSX10.13.Internal.sdk/<wbr>usr/include/signal.h:84:5: error: conflicting types for 'sigaction'<br>
int     sigaction(int, const struct sigaction * __restrict,<br>
        ^<br>
/Users/vk/src/llvm.org-master/<wbr>llvm/projects/compiler-rt/lib/<wbr>asan/asan_interceptors.h:113:<wbr>19: note: previous declaration is here<br>
DECLARE_REAL(int, sigaction, int signum,<br>
                  ^<br>
1 error generated.<br>
<br>
thanks,<br>
vedant<br>
<div class="HOEnZb"><div class="h5"><br>
> On Nov 9, 2017, at 2:48 PM, Vitaly Buka via llvm-commits <<a href="mailto:llvm-commits@lists.llvm.org">llvm-commits@lists.llvm.org</a>> wrote:<br>
><br>
> Author: vitalybuka<br>
> Date: Thu Nov  9 14:48:54 2017<br>
> New Revision: 317843<br>
><br>
> URL: <a href="http://llvm.org/viewvc/llvm-project?rev=317843&view=rev" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-<wbr>project?rev=317843&view=rev</a><br>
> Log:<br>
> [sanitizer] Allow sanitizers to redefine implementation of signal interceptors<br>
><br>
> Reviewers: eugenis<br>
><br>
> Subscribers: llvm-commits, kubamracek<br>
><br>
> Differential Revision: <a href="https://reviews.llvm.org/D39870" rel="noreferrer" target="_blank">https://reviews.llvm.org/<wbr>D39870</a><br>
><br>
> Modified:<br>
>    compiler-rt/trunk/lib/asan/<wbr>asan_interceptors.h<br>
>    compiler-rt/trunk/lib/<wbr>sanitizer_common/sanitizer_<wbr>signal_interceptors.inc<br>
><br>
> Modified: compiler-rt/trunk/lib/asan/<wbr>asan_interceptors.h<br>
> URL: <a href="http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/asan/asan_interceptors.h?rev=317843&r1=317842&r2=317843&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-<wbr>project/compiler-rt/trunk/lib/<wbr>asan/asan_interceptors.h?rev=<wbr>317843&r1=317842&r2=317843&<wbr>view=diff</a><br>
> ==============================<wbr>==============================<wbr>==================<br>
> --- compiler-rt/trunk/lib/asan/<wbr>asan_interceptors.h (original)<br>
> +++ compiler-rt/trunk/lib/asan/<wbr>asan_interceptors.h Thu Nov  9 14:48:54 2017<br>
> @@ -19,6 +19,10 @@<br>
> #include "interception/interception.h"<br>
> #include "sanitizer_common/sanitizer_<wbr>platform_interceptors.h"<br>
><br>
> +namespace __sanitizer {<br>
> +struct __sanitizer_sigaction;<br>
> +}<br>
> +<br>
> namespace __asan {<br>
><br>
> void InitializeAsanInterceptors();<br>
> @@ -106,8 +110,9 @@ DECLARE_REAL(char*, strncpy, char *to, c<br>
> DECLARE_REAL(uptr, strnlen, const char *s, uptr maxlen)<br>
> DECLARE_REAL(char*, strstr, const char *s1, const char *s2)<br>
> struct sigaction;<br>
> -DECLARE_REAL(int, sigaction, int signum, const struct sigaction *act,<br>
> -                             struct sigaction *oldact)<br>
> +DECLARE_REAL(int, sigaction, int signum,<br>
> +             const __sanitizer::__sanitizer_<wbr>sigaction *act,<br>
> +             __sanitizer::__sanitizer_<wbr>sigaction *oldact)<br>
><br>
> #if !SANITIZER_MAC<br>
> #define ASAN_INTERCEPT_FUNC(name)                                        \<br>
><br>
> Modified: compiler-rt/trunk/lib/<wbr>sanitizer_common/sanitizer_<wbr>signal_interceptors.inc<br>
> URL: <a href="http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/sanitizer_common/sanitizer_signal_interceptors.inc?rev=317843&r1=317842&r2=317843&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-<wbr>project/compiler-rt/trunk/lib/<wbr>sanitizer_common/sanitizer_<wbr>signal_interceptors.inc?rev=<wbr>317843&r1=317842&r2=317843&<wbr>view=diff</a><br>
> ==============================<wbr>==============================<wbr>==================<br>
> --- compiler-rt/trunk/lib/<wbr>sanitizer_common/sanitizer_<wbr>signal_interceptors.inc (original)<br>
> +++ compiler-rt/trunk/lib/<wbr>sanitizer_common/sanitizer_<wbr>signal_interceptors.inc Thu Nov  9 14:48:54 2017<br>
> @@ -18,10 +18,24 @@<br>
><br>
> using namespace __sanitizer;<br>
><br>
> +namespace __sanitizer {<br>
> +struct __sanitizer_sigaction;<br>
> +}<br>
> +<br>
> +#ifndef SIGNAL_INTERCEPTOR_SIGNAL_IMPL<br>
> +#define SIGNAL_INTERCEPTOR_SIGNAL_<wbr>IMPL(func, signum, handler) \<br>
> +  { return REAL(func)(signum, handler); }<br>
> +#endif<br>
> +<br>
> +#ifndef SIGNAL_INTERCEPTOR_SIGACTION_<wbr>IMPL<br>
> +#define SIGNAL_INTERCEPTOR_SIGACTION_<wbr>IMPL(signum, act, oldact) \<br>
> +  { return REAL(sigaction)(signum, act, oldact); }<br>
> +#endif<br>
> +<br>
> #if SANITIZER_INTERCEPT_BSD_SIGNAL<br>
> -INTERCEPTOR(void *, bsd_signal, int signum, void *handler) {<br>
> +INTERCEPTOR(void *, bsd_signal, int signum, uptr handler) {<br>
>   if (GetHandleSignalMode(signum) == kHandleSignalExclusive) return 0;<br>
> -  return REAL(bsd_signal)(signum, handler);<br>
> +  SIGNAL_INTERCEPTOR_SIGNAL_<wbr>IMPL(bsd_signal, signum, handler);<br>
> }<br>
> #define INIT_BSD_SIGNAL COMMON_INTERCEPT_FUNCTION(bsd_<wbr>signal)<br>
> #else  // SANITIZER_INTERCEPT_BSD_SIGNAL<br>
> @@ -29,23 +43,23 @@ INTERCEPTOR(void *, bsd_signal, int sign<br>
> #endif  // SANITIZER_INTERCEPT_BSD_SIGNAL<br>
><br>
> #if SANITIZER_INTERCEPT_SIGNAL_<wbr>AND_SIGACTION<br>
> -INTERCEPTOR(void *, signal, int signum, void *handler) {<br>
> +INTERCEPTOR(void *, signal, int signum, uptr handler) {<br>
>   if (GetHandleSignalMode(signum) == kHandleSignalExclusive) return nullptr;<br>
> -  return REAL(signal)(signum, handler);<br>
> +  SIGNAL_INTERCEPTOR_SIGNAL_<wbr>IMPL(signal, signum, handler);<br>
> }<br>
> #define INIT_SIGNAL COMMON_INTERCEPT_FUNCTION(<wbr>signal)<br>
><br>
> -INTERCEPTOR(int, sigaction, int signum, const struct sigaction *act,<br>
> -            struct sigaction *oldact) {<br>
> +INTERCEPTOR(int, sigaction, int signum, const __sanitizer_sigaction *act,<br>
> +            __sanitizer_sigaction *oldact) {<br>
>   if (GetHandleSignalMode(signum) == kHandleSignalExclusive) return 0;<br>
> -  return REAL(sigaction)(signum, act, oldact);<br>
> +  SIGNAL_INTERCEPTOR_SIGACTION_<wbr>IMPL(signum, act, oldact);<br>
> }<br>
> #define INIT_SIGACTION COMMON_INTERCEPT_FUNCTION(<wbr>sigaction)<br>
><br>
> namespace __sanitizer {<br>
> int real_sigaction(int signum, const void *act, void *oldact) {<br>
> -  return REAL(sigaction)(signum, (const struct sigaction *)act,<br>
> -                         (struct sigaction *)oldact);<br>
> +  return REAL(sigaction)(signum, (const __sanitizer_sigaction *)act,<br>
> +                         (__sanitizer_sigaction *)oldact);<br>
> }<br>
> }  // namespace __sanitizer<br>
> #else  // SANITIZER_INTERCEPT_SIGNAL_<wbr>AND_SIGACTION<br>
><br>
><br>
> ______________________________<wbr>_________________<br>
> llvm-commits mailing list<br>
> <a href="mailto:llvm-commits@lists.llvm.org">llvm-commits@lists.llvm.org</a><br>
> <a href="http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits" rel="noreferrer" target="_blank">http://lists.llvm.org/cgi-bin/<wbr>mailman/listinfo/llvm-commits</a><br>
<br>
</div></div></blockquote></div><br></div>