> On 17 Jun 2019, at 09:07, Jonathan Wakely <jwak...@redhat.com> wrote:
> 
> On 16/06/19 20:58 +0200, Jakub Jelinek wrote:
>> On Sun, Jun 16, 2019 at 07:54:42PM +0100, Iain Sandoe wrote:
>>> So, I guess, unless Jonathan has plans to add 
>>> __cxa_rethrow_primary_exception
>>> during the 10 time-frame, it’s correct to exclude the symbol anyway and we 
>>> should
>>> bump the so version and apply trunk.
>> 
>> I don't understand why they've added it, it should be called
>> std::rethrow_exception and that is how it is called in libstdc++.
> 
> std::rethrow_exception was new in C++11, so maybe they wanted to be
> able to use it in C++03 code as well? (Just a guess).
> 
>>> Actually, because the way in which interposing works for Darwin is 
>>> different, the only
>>> symbol change in the library on Darwin is removing an "undefined dynamic 
>>> lookup".
>>> So, for back-ports, I can could up with some Darwin-specific Makefike 
>>> change that
>>> only adds the ASAN_HAS_CXA_RETHROW_PRIMARY_EXCEPTION=0 for Darwin.
>>> 
>>> So - OK for trunk with a bumped soname?
>> 
>> Yes.

this is what I applied.
Iain

2019-06-18  Iain Sandoe  <i...@sandoe.co.uk>

        PR libsanitizer/87880
        * asan/asan_interceptors.h:
        (ASAN_INTERCEPT___CXA_RETHROW_PRIMARY_EXCEPTION): New.
        * asan/Makefile.am (DEFS): Add 
        ASAN_HAS_CXA_RETHROW_PRIMARY_EXCEPTION, defined to 0.
        * asan/Makefile.in: Regenerated.
        * asan/libtool-version: Bump version.


diff --git a/libsanitizer/asan/Makefile.am b/libsanitizer/asan/Makefile.am
index 867240d..b18ab2a 100644
--- a/libsanitizer/asan/Makefile.am
+++ b/libsanitizer/asan/Makefile.am
@@ -3,7 +3,7 @@ AM_CPPFLAGS = -I $(top_srcdir)/include -I $(top_srcdir)
# May be used by toolexeclibdir.
gcc_version := $(shell @get_gcc_base_ver@ $(top_srcdir)/../gcc/BASE-VER)

-DEFS = -D_GNU_SOURCE -D_DEBUG -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS 
-D__STDC_LIMIT_MACROS -DASAN_HAS_EXCEPTIONS=1 -DASAN_NEEDS_SEGV=1 
-DCAN_SANITIZE_UB=0
+DEFS = -D_GNU_SOURCE -D_DEBUG -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS 
-D__STDC_LIMIT_MACROS -DASAN_HAS_EXCEPTIONS=1 -DASAN_NEEDS_SEGV=1 
-DCAN_SANITIZE_UB=0 -DASAN_HAS_CXA_RETHROW_PRIMARY_EXCEPTION=0
if USING_MAC_INTERPOSE
DEFS += -DMAC_INTERPOSE_FUNCTIONS -DMISSING_BLOCKS_SUPPORT
endif
diff --git a/libsanitizer/asan/asan_interceptors.h 
b/libsanitizer/asan/asan_interceptors.h
index b599ebb..beb1dc9 100644
--- a/libsanitizer/asan/asan_interceptors.h
+++ b/libsanitizer/asan/asan_interceptors.h
@@ -79,7 +79,12 @@ void InitializePlatformInterceptors();
#if ASAN_HAS_EXCEPTIONS && !SANITIZER_WINDOWS && !SANITIZER_SOLARIS && \
    !SANITIZER_NETBSD
# define ASAN_INTERCEPT___CXA_THROW 1
-# define ASAN_INTERCEPT___CXA_RETHROW_PRIMARY_EXCEPTION 1
+# if ! defined(ASAN_HAS_CXA_RETHROW_PRIMARY_EXCEPTION) \
+     || ASAN_HAS_CXA_RETHROW_PRIMARY_EXCEPTION
+#   define ASAN_INTERCEPT___CXA_RETHROW_PRIMARY_EXCEPTION 1
+# else
+#   define ASAN_INTERCEPT___CXA_RETHROW_PRIMARY_EXCEPTION 0
+# endif
# if defined(_GLIBCXX_SJLJ_EXCEPTIONS) || (SANITIZER_IOS && defined(__arm__))
#  define ASAN_INTERCEPT__UNWIND_SJLJ_RAISEEXCEPTION 1
# else
diff --git a/libsanitizer/asan/libtool-version 
b/libsanitizer/asan/libtool-version
index e3138f3..c509757 100644
--- a/libsanitizer/asan/libtool-version
+++ b/libsanitizer/asan/libtool-version
@@ -3,4 +3,4 @@
# a separate file so that version updates don't involve re-running
# automake.
# CURRENT:REVISION:AGE
-5:0:0
+6:0:0

Reply via email to