Yeah, my bad. Why did you included the third patch btw?

thanks again


Le 11/11/2016 à 17:02, Norbert Lange a écrit :
Hi, you messed up the order, look in the series file from the attachment.
You only need those two patches (in this order), third is already
included in 3.8.1:

upstream-msan-prevent-initialization-failure.diff
upstream-asan-msan-fix-reallocation-logic.diff

if you want you can refresh them with quilt, but they apply cleanly
for me (with some other linenumbers)

2016-11-11 16:23 GMT+01:00 Sylvestre Ledru <s...@mozilla.com>:
I could apply upstream-msan-prevent-initialization-failure.diff  to 3.8 but
not the two others, could you share yours?
Thanks
S


Le 11/11/2016 à 09:52, Norbert Lange a écrit :
The same 2 patches also apply to toolchain 3.8.1-15 (with some
offsets), but I haven`t testing building it

2016-11-11 1:25 GMT+01:00 Norbert Lange <nolang...@gmail.com>:
BTW. make check-sanitizer would have likely found this issue, might
want to enable it?
I believe it knows which sanitizers should work

2016-11-11 0:46 GMT+01:00 Norbert Lange <nolang...@gmail.com>:
Tags: patch


Hi,

I got it working, seems that from the 3 related patched, one is already
applied.
The attached archive is the 3 patches and a edited "series" file,
it should be painless for you to integrate it into the debian/patches
directory for 3.9

I did not try with 3.8 yet (possibly more difficult), building llvm
takes quite a while.

Kind Regards,
Norbert

2016-11-09 11:04 GMT+01:00 Norbert Lange <nolang...@gmail.com>:
Hi,

researched a bit further and the same compiled programm will run fine
on debian jessie.
I tracked it down to being caused by a newer glibc version [1][2],
apparently during loading of shared libs, glibc can now allocate
memory which messes up sanitzers (mostly in more subtile ways than the
memory sanitizer).

The result is, that if stretch will ship with the current glibc, clang
and gcc (I dont think its patched there either), then the sanitizers
won`t be usable.
1) revert the fix in glibc. Would have the advantage that "sanitized"
binaries compiled from current and older clang/gcc versions will work
2) adopt the fixed from upstream [3][4] (possibly more) into clang
(and possibly gcc).
or maybe both?

Kind Regards,
Norbert

PS. shouldn`t the testsuite catch these bugs?

[1]
https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=24e2b1cede1952d7d4411a3cafd25dd8593dab9f
[2] https://llvm.org/bugs/show_bug.cgi?id=27310
[3]
https://github.com/llvm-mirror/compiler-rt/commit/827ea206c1078fc7c7da287984a7ba4563390589
[4]
https://github.com/llvm-mirror/compiler-rt/commit/570ee9dd7a6f90b0370a86535cbde6738d0ccf67

2016-10-31 21:43 GMT+01:00 Norbert Lange <nolang...@gmail.com>:
On Mon, 31 Oct 2016 08:38:21 +0100 Sylvestre Ledru
<sylves...@debian.org> wrote:
Le 31/10/2016 à 00:39, Norbert Lange a écrit :
Package: clang-3.9
Version: 1:3.9-2
Severity: normal

Dear Maintainer,

The memory sanitizer is unusable as it segfaults during
initialization.
To reproduce:
echo 'int main() { return 0; }' >/tmp/test.c
clang -fsanitize=memory -o test test.c
can you try with clang-3.9 instead?
Same thing, output:

$ clang-3.9 -fsanitize=memory -o test test.c -v
clang version 3.9.0-2 (tags/RELEASE_390/final)
Target: x86_64-pc-linux-gnu
Thread model: posix
InstalledDir: /usr/bin
Found candidate GCC installation: /usr/bin/../lib/gcc/i686-linux-gnu/6
Found candidate GCC installation:
/usr/bin/../lib/gcc/i686-linux-gnu/6.2.0
Found candidate GCC installation:
/usr/bin/../lib/gcc/x86_64-linux-gnu/5
Found candidate GCC installation:
/usr/bin/../lib/gcc/x86_64-linux-gnu/5.4.1
Found candidate GCC installation:
/usr/bin/../lib/gcc/x86_64-linux-gnu/6
Found candidate GCC installation:
/usr/bin/../lib/gcc/x86_64-linux-gnu/6.2.0
Found candidate GCC installation: /usr/lib/gcc/i686-linux-gnu/6
Found candidate GCC installation: /usr/lib/gcc/i686-linux-gnu/6.2.0
Found candidate GCC installation: /usr/lib/gcc/x86_64-linux-gnu/5
Found candidate GCC installation: /usr/lib/gcc/x86_64-linux-gnu/5.4.1
Found candidate GCC installation: /usr/lib/gcc/x86_64-linux-gnu/6
Found candidate GCC installation: /usr/lib/gcc/x86_64-linux-gnu/6.2.0
Selected GCC installation: /usr/bin/../lib/gcc/x86_64-linux-gnu/6.2.0
Candidate multilib: .;@m64
Candidate multilib: 32;@m32
Candidate multilib: x32;@mx32
Selected multilib: .;@m64
   "/usr/lib/llvm-3.9/bin/clang" -cc1 -triple x86_64-pc-linux-gnu
-emit-obj -mrelax-all -disable-free -disable-llvm-verifier
-discard-value-names -main-file-name test.c -mrelocation-model static
-mthread-model posix -mdisable-fp-elim -fmath-errno -masm-verbose
-mconstructor-aliases -munwind-tables -fuse-init-array -target-cpu
x86-64 -v -dwarf-column-info -debugger-tuning=gdb -resource-dir
/usr/lib/llvm-3.9/bin/../lib/clang/3.9.0 -internal-isystem
/usr/local/include -internal-isystem
/usr/lib/llvm-3.9/bin/../lib/clang/3.9.0/include
-internal-externc-isystem /usr/include/x86_64-linux-gnu
-internal-externc-isystem /include -internal-externc-isystem
/usr/include -fdebug-compilation-dir /tmp -ferror-limit 19
-fmessage-length 135 -fsanitize=memory

-fsanitize-blacklist=/usr/lib/llvm-3.9/bin/../lib/clang/3.9.0/msan_blacklist.txt
-fno-assume-sane-operator-new -fobjc-runtime=gcc
-fdiagnostics-show-option -fcolor-diagnostics -o /tmp/test-2d4d2c.o -x
c test.c
clang -cc1 version 3.9.0 based upon LLVM 3.9.0 default target
x86_64-pc-linux-gnu
ignoring nonexistent directory "/include"
#include "..." search starts here:
#include <...> search starts here:
   /usr/local/include
   /usr/lib/llvm-3.9/bin/../lib/clang/3.9.0/include
   /usr/include/x86_64-linux-gnu
   /usr/include
End of search list.
   "/usr/bin/ld" --hash-style=both --eh-frame-hdr -m elf_x86_64
-dynamic-linker /lib64/ld-linux-x86-64.so.2 -o test

/usr/bin/../lib/gcc/x86_64-linux-gnu/6.2.0/../../../x86_64-linux-gnu/crt1.o

/usr/bin/../lib/gcc/x86_64-linux-gnu/6.2.0/../../../x86_64-linux-gnu/crti.o
/usr/bin/../lib/gcc/x86_64-linux-gnu/6.2.0/crtbegin.o
-L/usr/bin/../lib/gcc/x86_64-linux-gnu/6.2.0
-L/usr/bin/../lib/gcc/x86_64-linux-gnu/6.2.0/../../../x86_64-linux-gnu
-L/lib/x86_64-linux-gnu -L/lib/../lib64 -L/usr/lib/x86_64-linux-gnu
-L/usr/bin/../lib/gcc/x86_64-linux-gnu/6.2.0/../../..
-L/usr/lib/llvm-3.9/bin/../lib -L/lib -L/usr/lib -whole-archive

/usr/lib/llvm-3.9/bin/../lib/clang/3.9.0/lib/linux/libclang_rt.msan-x86_64.a
-no-whole-archive

--dynamic-list=/usr/lib/llvm-3.9/bin/../lib/clang/3.9.0/lib/linux/libclang_rt.msan-x86_64.a.syms
/tmp/test-2d4d2c.o --no-as-needed -lpthread -lrt -lm -ldl -lgcc
--as-needed -lgcc_s --no-as-needed -lc -lgcc --as-needed -lgcc_s
--no-as-needed /usr/bin/../lib/gcc/x86_64-linux-gnu/6.2.0/crtend.o

/usr/bin/../lib/gcc/x86_64-linux-gnu/6.2.0/../../../x86_64-linux-gnu/crtn.o



Reply via email to