Hi, I first searched the related patches, then tested them on 3.9. I wrote the message without trying them on 3.8, I did not know if the first patch is required. Why didn't you run 'quilt push -a' before committing them? 😁
Am 11.11.2016 5:07 nachm. schrieb "Sylvestre Ledru" <s...@mozilla.com>: > 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=24e2b1ce >>>>>>> de1952d7d4411a3cafd25dd8593dab9f >>>>>>> [2] https://llvm.org/bugs/show_bug.cgi?id=27310 >>>>>>> [3] >>>>>>> https://github.com/llvm-mirror/compiler-rt/commit/827ea206c1 >>>>>>> 078fc7c7da287984a7ba4563390589 >>>>>>> [4] >>>>>>> https://github.com/llvm-mirror/compiler-rt/commit/570ee9dd7a >>>>>>> 6f90b0370a86535cbde6738d0ccf67 >>>>>>> >>>>>>> 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-lin >>>>>>>> ux-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 >>>>>>>> >>>>>>> >>> >>> >