This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Bug sanitizer/80953] Support libsanitizer on Solaris


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

Maxim Ostapenko <m.ostapenko at samsung dot com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |m.ostapenko at samsung dot com

--- Comment #6 from Maxim Ostapenko <m.ostapenko at samsung dot com> ---
(In reply to Rainer Orth from comment #5)
> Created attachment 41484 [details]
> Merge libsanitizer from compiler-rt r304722
> 
> I've now completed a merge of llvm r304722 into gcc trunk libsanitizer. 
> Most of
> it was straightforward, but a couple of issues may save others work:
> 
> * Two bugs in sanitizer_common/sanitizer_symbolizer_libbacktrace.cc have
> already
>   been reported upstream: https://reviews.llvm.org/D33933
> 
> * In libubsan, __ubsan_handle_type_mismatch has been renamed to
>   __ubsan_handle_type_mismatch_v1, and likewise for
> __ubsan_handle_type_mismatch_abort__ubsan_handle_type_mismatch_v1_abort
> 
>   The sanitizer.def and ubsan.c changes reflect this.  Worse, however, 
>   the former uptr Alignment member of ubsan/ubsan_handlers.h was changed to
>   unsigned char LogAlignment.  This needs a corresponding gcc change to pass
>   log2(align) instead of just align.
> 
> * Many (all) */float-cast-overflow-*.c tests FAILed initially because of a
>   message change:
> 
>   runtime error: value -133 is outside the range of representable values of
> type 'signed char'
> 
>   lost the leading "value"
> 
> With these gcc side changes, testresults on x86_64-pc-linux-gnu are identical
> to those with current gcc trunk, with the exception of
> 
> +FAIL: c-c++-common/asan/pr63888.c   -O2  execution test
> +FAIL: c-c++-common/asan/pr63888.c   -O2 -flto  execution test
> +FAIL: c-c++-common/asan/pr63888.c   -O2 -flto -flto-partition=none 
> execution t
> est
> +FAIL: c-c++-common/asan/pr63888.c   -O3 -g  execution test
> +FAIL: c-c++-common/asan/pr63888.c   -Os  execution test
> 
> I get here
> 
> =================================================================
> ==4734==ERROR: AddressSanitizer: odr-violation (0x0000004009e0):
>   [1] size=12 'CSWTCH.1'
> /vol/gcc/src/hg/trunk/solaris-asan/gcc/testsuite/c-c++-common/asan/pr63888.c:
> 8:3
>   [2] size=12 'CSWTCH.3'
> /vol/gcc/src/hg/trunk/solaris-asan/gcc/testsuite/c-c++-common/asan/pr63888.c:
> 21:3
> These globals were registered at these points:
>   [1]:
>     #0 0x7f2c9c48fb88 in __asan_register_globals
> /vol/gcc/src/hg/trunk/solaris-asan/libsanitizer/asan/asan_globals.cc:356
>     #1 0x40097c in __libc_csu_init
> (/var/scratch/gcc/gcc-8.0.0-20170531/4.10.10-gcc-gas-gld-asan/gcc/testsuite/
> gcc17/pr63888.exe+0x40097c)
> 
>   [2]:
>     #0 0x7f2c9c48fb88 in __asan_register_globals
> /vol/gcc/src/hg/trunk/solaris-asan/libsanitizer/asan/asan_globals.cc:356
>     #1 0x40097c in __libc_csu_init
> (/var/scratch/gcc/gcc-8.0.0-20170531/4.10.10-gcc-gas-gld-asan/gcc/testsuite/
> gcc17/pr63888.exe+0x40097c)
> 
> ==4734==HINT: if you don't care about these errors you may set
> ASAN_OPTIONS=detect_odr_violation=0
> SUMMARY: AddressSanitizer: odr-violation: global 'CSWTCH.1' at
> /vol/gcc/src/hg/trunk/solaris-asan/gcc/testsuite/c-c++-common/asan/pr63888.c:
> 8:3
> ==4734==ABORTING
> 
> Someone who knows that code way better needs to look into this.
> 
>   Rainer

For ODR violation bug we have a local patch in libsanitizer. Could you check
whether you applied all local patches listed in libsanitizer/LOCAL_PATCHES
file?

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]