[fixincludes] Fix macOS 10.12 <AvailabilityInternal.h> and <os/trace.h> (PR sanitizer/78267)

Jack Howarth howarth.at.gcc@gmail.com
Mon Nov 14 18:56:00 GMT 2016


Rainer,
    Unfortunately this permutation still fails to bootstrap on darwin15...

libtool: compile:
/sw/src/fink.build/gcc7-7.0.0-1/darwin_objdir/./gcc/xgcc
-shared-libgcc -B/sw/src/fink.build/gcc7-7.0.0-1/darwin_objdir/./gcc
-nostdinc++ -L/sw/src/fink.build/gcc7-7.0.0-1/darwin_objdir/x86_64-apple-darwin15.6.0/libstdc++-v3/src
-L/sw/src/fink.build/gcc7-7.0.0-1/darwin_objdir/x86_64-apple-darwin15.6.0/libstdc++-v3/src/.libs
-L/sw/src/fink.build/gcc7-7.0.0-1/darwin_objdir/x86_64-apple-darwin15.6.0/libstdc++-v3/libsupc++/.libs
-B/sw/lib/gcc7/x86_64-apple-darwin15.6.0/bin/
-B/sw/lib/gcc7/x86_64-apple-darwin15.6.0/lib/ -isystem
/sw/lib/gcc7/x86_64-apple-darwin15.6.0/include -isystem
/sw/lib/gcc7/x86_64-apple-darwin15.6.0/sys-include -D_GNU_SOURCE
-D_DEBUG -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS
-D__STDC_LIMIT_MACROS -DHAVE_RPC_XDR_H=0 -DHAVE_TIRPC_RPC_XDR_H=0 -I.
-I../../../../gcc-7-20161114/libsanitizer/sanitizer_common -I.. -I
../../../../gcc-7-20161114/libsanitizer/include -isystem
../../../../gcc-7-20161114/libsanitizer/include/system -Wall -W
-Wno-unused-parameter -Wwrite-strings -pedantic -Wno-long-long -fPIC
-fno-builtin -fno-exceptions -fno-rtti -fomit-frame-pointer
-funwind-tables -fvisibility=hidden -Wno-variadic-macros
-I../../libstdc++-v3/include
-I../../libstdc++-v3/include/x86_64-apple-darwin15.6.0
-I../../../../gcc-7-20161114/libsanitizer/../libstdc++-v3/libsupc++
-std=gnu++11 -g -O2 -MT sanitizer_mac.lo -MD -MP -MF
.deps/sanitizer_mac.Tpo -c
../../../../gcc-7-20161114/libsanitizer/sanitizer_common/sanitizer_mac.cc
 -fno-common -DPIC -o .libs/sanitizer_mac.o
../../../../gcc-7-20161114/libsanitizer/sanitizer_common/sanitizer_mac.cc:497:0:
warning: ignoring #pragma clang diagnostic [-Wunknown-pragmas]
       os_trace("Address Sanitizer reported a failure.");

../../../../gcc-7-20161114/libsanitizer/sanitizer_common/sanitizer_mac.cc:497:0:
warning: ignoring #pragma clang diagnostic [-Wunknown-pragmas]
../../../../gcc-7-20161114/libsanitizer/sanitizer_common/sanitizer_mac.cc:497:0:
warning: ignoring #pragma clang diagnostic [-Wunknown-pragmas]
../../../../gcc-7-20161114/libsanitizer/sanitizer_common/sanitizer_mac.cc:500:0:
warning: ignoring #pragma clang diagnostic [-Wunknown-pragmas]
       os_trace("Undefined Behavior Sanitizer reported a failure.");

../../../../gcc-7-20161114/libsanitizer/sanitizer_common/sanitizer_mac.cc:500:0:
warning: ignoring #pragma clang diagnostic [-Wunknown-pragmas]
../../../../gcc-7-20161114/libsanitizer/sanitizer_common/sanitizer_mac.cc:500:0:
warning: ignoring #pragma clang diagnostic [-Wunknown-pragmas]
../../../../gcc-7-20161114/libsanitizer/sanitizer_common/sanitizer_mac.cc:503:0:
warning: ignoring #pragma clang diagnostic [-Wunknown-pragmas]
       os_trace("Thread Sanitizer reported a failure.");

../../../../gcc-7-20161114/libsanitizer/sanitizer_common/sanitizer_mac.cc:503:0:
warning: ignoring #pragma clang diagnostic [-Wunknown-pragmas]
../../../../gcc-7-20161114/libsanitizer/sanitizer_common/sanitizer_mac.cc:503:0:
warning: ignoring #pragma clang diagnostic [-Wunknown-pragmas]
../../../../gcc-7-20161114/libsanitizer/sanitizer_common/sanitizer_mac.cc:505:0:
warning: ignoring #pragma clang diagnostic [-Wunknown-pragmas]
       os_trace("Sanitizer tool reported a failure.");

../../../../gcc-7-20161114/libsanitizer/sanitizer_common/sanitizer_mac.cc:505:0:
warning: ignoring #pragma clang diagnostic [-Wunknown-pragmas]
../../../../gcc-7-20161114/libsanitizer/sanitizer_common/sanitizer_mac.cc:505:0:
warning: ignoring #pragma clang diagnostic [-Wunknown-pragmas]
../../../../gcc-7-20161114/libsanitizer/sanitizer_common/sanitizer_mac.cc:508:0:
warning: ignoring #pragma clang diagnostic [-Wunknown-pragmas]
       os_trace("Consult syslog for more information.");

../../../../gcc-7-20161114/libsanitizer/sanitizer_common/sanitizer_mac.cc:508:0:
warning: ignoring #pragma clang diagnostic [-Wunknown-pragmas]
../../../../gcc-7-20161114/libsanitizer/sanitizer_common/sanitizer_mac.cc:508:0:
warning: ignoring #pragma clang diagnostic [-Wunknown-pragmas]
In file included from
../../../../gcc-7-20161114/libsanitizer/sanitizer_common/sanitizer_mac.cc:39:0:
../../../../gcc-7-20161114/libsanitizer/sanitizer_common/sanitizer_mac.cc:
In function ‘void __sanitizer::LogFullErrorReport(const char*)’:
../../../../gcc-7-20161114/libsanitizer/sanitizer_common/sanitizer_mac.cc:497:7:
error: ‘_Static_assert’ was not declared in this scope
       os_trace("Address Sanitizer reported a failure.");
       ^
../../../../gcc-7-20161114/libsanitizer/sanitizer_common/sanitizer_mac.cc:497:7:
note: suggested alternative: ‘__cpp_static_assert’
../../../../gcc-7-20161114/libsanitizer/sanitizer_common/sanitizer_mac.cc:497:7:
error: ‘_os_trace_with_buffer’ was not declared in this scope
       os_trace("Address Sanitizer reported a failure.");
       ^
../../../../gcc-7-20161114/libsanitizer/sanitizer_common/sanitizer_mac.cc:497:7:
note: suggested alternative: ‘os_trace_with_payload’
../../../../gcc-7-20161114/libsanitizer/sanitizer_common/sanitizer_mac.cc:500:7:
error: ‘_Static_assert’ was not declared in this scope
       os_trace("Undefined Behavior Sanitizer reported a failure.");
       ^
../../../../gcc-7-20161114/libsanitizer/sanitizer_common/sanitizer_mac.cc:500:7:
note: suggested alternative: ‘__cpp_static_assert’
../../../../gcc-7-20161114/libsanitizer/sanitizer_common/sanitizer_mac.cc:500:7:
error: ‘_os_trace_with_buffer’ was not declared in this scope
       os_trace("Undefined Behavior Sanitizer reported a failure.");
       ^
../../../../gcc-7-20161114/libsanitizer/sanitizer_common/sanitizer_mac.cc:500:7:
note: suggested alternative: ‘os_trace_with_payload’
../../../../gcc-7-20161114/libsanitizer/sanitizer_common/sanitizer_mac.cc:503:7:
error: ‘_Static_assert’ was not declared in this scope
       os_trace("Thread Sanitizer reported a failure.");
       ^
../../../../gcc-7-20161114/libsanitizer/sanitizer_common/sanitizer_mac.cc:503:7:
note: suggested alternative: ‘__cpp_static_assert’
../../../../gcc-7-20161114/libsanitizer/sanitizer_common/sanitizer_mac.cc:503:7:
error: ‘_os_trace_with_buffer’ was not declared in this scope
       os_trace("Thread Sanitizer reported a failure.");
       ^
../../../../gcc-7-20161114/libsanitizer/sanitizer_common/sanitizer_mac.cc:503:7:
note: suggested alternative: ‘os_trace_with_payload’
../../../../gcc-7-20161114/libsanitizer/sanitizer_common/sanitizer_mac.cc:505:7:
error: ‘_Static_assert’ was not declared in this scope
       os_trace("Sanitizer tool reported a failure.");
       ^
../../../../gcc-7-20161114/libsanitizer/sanitizer_common/sanitizer_mac.cc:505:7:
note: suggested alternative: ‘__cpp_static_assert’
../../../../gcc-7-20161114/libsanitizer/sanitizer_common/sanitizer_mac.cc:505:7:
error: ‘_os_trace_with_buffer’ was not declared in this scope
       os_trace("Sanitizer tool reported a failure.");
       ^
../../../../gcc-7-20161114/libsanitizer/sanitizer_common/sanitizer_mac.cc:505:7:
note: suggested alternative: ‘os_trace_with_payload’
../../../../gcc-7-20161114/libsanitizer/sanitizer_common/sanitizer_mac.cc:508:7:
error: ‘_Static_assert’ was not declared in this scope
       os_trace("Consult syslog for more information.");
       ^
../../../../gcc-7-20161114/libsanitizer/sanitizer_common/sanitizer_mac.cc:508:7:
note: suggested alternative: ‘__cpp_static_assert’
../../../../gcc-7-20161114/libsanitizer/sanitizer_common/sanitizer_mac.cc:508:7:
error: ‘_os_trace_with_buffer’ was not declared in this scope
       os_trace("Consult syslog for more information.");
       ^
../../../../gcc-7-20161114/libsanitizer/sanitizer_common/sanitizer_mac.cc:508:7:
note: suggested alternative: ‘os_trace_with_payload’
make[4]: *** [sanitizer_mac.lo] Error 1
make[3]: *** [all-recursive] Error 1
make[2]: *** [all] Error 2
make[1]: *** [all-target-libsanitizer] Error 2
make: *** [all] Error 2

     Jack

On Mon, Nov 14, 2016 at 9:11 AM, Rainer Orth
<ro@cebitec.uni-bielefeld.de> wrote:
> Hi Jack,
>
>>  > On darwin15, the proposed patch is insufficient to restore the bootstrap
>>  > (after running genfixes in the fixincludes directory) unless I also apply
>>  > the previously proposed change...
>>
>>  no wonder: it's only been tested on darwin16. Care to explain what
>>  error you're seeing?
>>
>> The failure that I see on darwin15 using your proposed patches and executing
>> genfixes in fixincludes before the build is...
>
> the actual errors are ...
>
>> In file included from
>> ../../../../gcc-7-20161113/libsanitizer/sanitizer_common/sanitizer_mac.cc:39:0:
>> /sw/src/fink.build/gcc7-7.0.0-1/darwin_objdir/gcc/include-fixed/os/trace.h:56:47:
>> error: attributes are not allowed on a function-definition
>> _os_trace_verify_printf(const char *msg, ...) __attribute__((format(printf, 1, 2)))
>> ^~~~~~~~~~~~~
>
> I've added a new fix to just remove that attribute.  One could try and
> add a declaration with the attribute if need be, but I've avoid that
> trouble for now.
>
>> /sw/src/fink.build/gcc7-7.0.0-1/darwin_objdir/gcc/include-fixed/os/trace.h:715:109:
>> error: ‘os_trace_payload_t’ has not been declared
>> _os_trace_with_buffer(void *dso, const char *message, uint8_t type, const void
>> *buffer, size_t buffer_size, os_trace_payload_ payload);
>> ^~~~~~~~~~~~~~~~~
>
> This one isn't caught so far because 10.11 has
>
> __OSX_AVAILABLE(10.10) __IOS_AVAILABLE(8.0) __WATCHOS_AVAILABLE(1.0) __TVOS_AVAILABLE(9.0)
>
> instead of
>
> __API_AVAILABLE(macosx(10.12), ios(10.0), watchos(3.0), tvos(10.0))
>
> I've updated the corresponding fix to deal with this variation and
> augmented the testcase accordingly.
>
> Hopefully the new patch works for you.
>
>         Rainer
>
> --
> -----------------------------------------------------------------------------
> Rainer Orth, Center for Biotechnology, Bielefeld University
>
>



More information about the Gcc-patches mailing list