On 07/11/16 12:20, Jakub Jelinek wrote:
On Mon, Nov 07, 2016 at 12:14:39PM +0300, Maxim Ostapenko wrote:
libubsan is definitely compatible.
Nice.

For libtsan we have several changes:

1) Several interceptors (34 of them) were added and __interceptor_lstat{64}
were removed.
That is bad, I think we need to readd those and perhaps just do what
lstat*/stat* do.  Weren't we solving the same thing a year ago on some other
symbol?

Yeah, that was __tls_get_addr. Actually, *stat interceptors were moved from tsan to common, but it seems that lstat/lstat64 were missed. This should be fixed upstream, I suppose.

2) __interceptor_strchr has change in its parameters type:
__interceptor_strchr(char*, int) -> __interceptor_strchr(const char*, int)
That is not a big deal, the function is extern "C".

3) tsan's internal type __tsan::ReportDesc has several changes, but it seems
that this doesn't introduce ABI incompatibility with compiler side.
If __tsan::ReportDesc is not defined in publicly installed headers, I think
we are fine.

I don't see __tsan::ReportDesc in any tsan interface header:

$ grep -nr ReportDesc libsanitizer/tsan/tsan_interface*
$

But since tsan has weak

SANITIZER_WEAK_CXX_DEFAULT_IMPL
bool OnReport(const ReportDesc *rep, bool suppressed {
...
}

that can be overwritten by C++ application (in debugging purposes though), is it OK to not change libtsan version?


        Jakub




Reply via email to