https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78267

--- Comment #44 from Maxim Ostapenko <m.ostapenko at samsung dot com> ---
(In reply to Jack Howarth from comment #41)
> (In reply to r...@cebitec.uni-bielefeld.de from comment #39)
> > > --- Comment #36 from Jack Howarth <howarth.at.gcc at gmail dot com> ---
> > > Created attachment 40044 [details]
> > >   --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=40044&action=edit
> > > fixincludes trace.h generated in stage 1
> > >
> > > fixincludes trace.h generated in stage 1 on darwin15 using
> > > https://gcc.gnu.org/ml/gcc-patches/2016-11/msg01045.html
> > 
> > So the fix has worked as expected/designed.  Good to have the confirmation.
> > 
> >     Rainer
> 
> I see the problem now. Your proposed fix from
> https://gcc.gnu.org/ml/gcc-patches/2016-11/msg01045.html simply is simply
> insufficient in the absence of the change proposed in Comment 33...
> 
> 2016-11-14  Jack Howarth  <howarth.at....@gmail.com>
> 
> libsanitizer/
> 
>       PR sanitizer/78267
>       * sanitizer_common/sanitizer_mac.cc: Include <os/trace.h> only if
>       compiler supports blocks extension.
> 
> 
> Index: libsanitizer/sanitizer_common/sanitizer_mac.cc
> ===================================================================
> --- libsanitizer/sanitizer_common/sanitizer_mac.cc    (revision 242387)
> +++ libsanitizer/sanitizer_common/sanitizer_mac.cc    (working copy)
> @@ -34,7 +34,7 @@
>  extern char **environ;
>  #endif
>  
> -#if defined(__has_include) && __has_include(<os/trace.h>)
> +#if defined(__has_include) && __has_include(<os/trace.h>) &&
> defined(__BLOCKS__)
>  #define SANITIZER_OS_TRACE 1
>  #include <os/trace.h>
>  #else
> 
> Otherwise the definition of SANITIZER_OS_TRACE results in
> libsanitizer/sanitizer_common/sanitizer_mac.cc making calls to os_trace().

This is probably insufficient, we would have errors with /usr/include/asl.h
(see comment #10 for error messages) on darwin16. Shouldn't we ifdef out asl
stuff too in this case?

Reply via email to