LSan is not enabled on Android, see
https://github.com/google/sanitizers/issues/379
It's kind of on our TODO list, but I can not say when we might finally
get to it.


On Wed, Oct 4, 2017 at 2:48 PM, 'Primiano Tucci' via address-sanitizer
<address-sanitizer@googlegroups.com> wrote:
> Hi.
> I am starting a new project in Android land and setting up test coverage
> with sanitizers.
> I wrote a meta-test to make sure that the sanitizers are actually shouting
> when there is a violation. Almost everything is working as expected (read:
> failing-as-intened). The only exception is LSan on Android (N, armv7), where
> both LSAN_Leak* tests silently succeed.
> The same test with the same build configuration fails as expected on Linux.
> Likewise, the ASan test fails as expected on Android.
> I am 90% sure this is me doing something wrong but can't tell what.
> I looked at the assembly and this doesn't see to be a case of clang
> outsmarting the test code (i.e. the generated code actually has two leaking
> malloc calls)
> I am using the compiler toolchain (clang) and sanitizers lib from latest
> Android's NDK (r15c), targeting their libcxx/cxxabi.
>
>
> Repro steps:
> git checkout https://android.googlesource.com/platform/external/perfetto
> build/install-build-deps  # will download ndk and emulators
> gn gen out/android_lsan/ --args="is_lsan=true target_os=\"android\""
> ninja -C out/android_lsan/ sanitizers_unittests
> build/run_android_emulator &
> build/run_android_test out/android_lsan sanitizers_unittests
>
> These are the compiler flag used while building:
> /s/perfetto/buildtools/ndk/toolchains/llvm/prebuilt/linux-x86_64/bin/clang++
> -MMD -MF obj/libtracing/sanitizers_unittests.sanitizers_unittest.o.d
> -DLEAK_SANITIZER -DGTEST_LANG_CXX11=1 -I../..
> -I../../buildtools/googletest/googletest/include
> -I../../buildtools/googletest/googlemock/include -gline-tables-only
> -funwind-tables -fstrict-aliasing -fstack-protector -fPIC -Wa,--noexecstack
> -Wformat -Wall -Werror -march=armv7-a -mfpu=neon -mthumb
> -isystem/s/perfetto/buildtools/ndk/platforms/android-21/arch-arm/usr/include
> --sysroot=/s/perfetto/buildtools/ndk/platforms/android-21/arch-arm -DANDROID
> --target=arm-linux-androideabi -Wextra -Wno-missing-field-initializers
> -Weverything -Wno-c++98-compat -Wno-c++98-compat-pedantic
> -Wno-gnu-include-next -Wno-gnu-statement-expression -Wno-padded
> -Wno-reserved-id-macro -Wno-unused-parameter -Wno-unknown-warning-option
> -fno-exceptions -fno-rtti -fno-omit-frame-pointer
> -fsanitize-blacklist=../../build/sanitizers/blacklist.txt -fsanitize=leak
> -fPIE -Wno-deprecated -Wno-global-constructors -Wno-missing-noreturn
> -Wno-shift-sign-overflow -Wno-undef -Wno-used-but-marked-unused
> -Wno-weak-vtables -fno-omit-frame-pointer -fsanitize=leak -std=c++11
> -I/s/perfetto/buildtools/ndk/sources/cxx-stl/llvm-libc++/include
> -I/s/perfetto/buildtools/ndk/sources/android/support/include
> -I/s/perfetto/buildtools/ndk/sources/cxx-stl/llvm-libc++abi/include -c
> ../../libtracing/sanitizers_unittest.cc -o
> obj/libtracing/sanitizers_unittests.sanitizers_unittest.o
>
> And this when linking
> /s/perfetto/buildtools/ndk/toolchains/llvm/prebuilt/linux-x86_64/bin/clang++
> -Wl,-z,nocopyreloc -gcc-toolchain
> /s/perfetto/buildtools/ndk/toolchains/arm-linux-androideabi-4.9/prebuilt/linux-x86_64
> --sysroot=/s/perfetto/buildtools/ndk/platforms/android-21/arch-arm
> --target=arm-linux-androideabi -Wl,--exclude-libs,libunwind.a
> -Wl,--exclude-libs,libgcc.a -Wl,--exclude-libs,libc++_static.a
> -Wl,--build-id -Wl,--no-undefined -Wl,-z,noexecstack -Wl,-z,relro -Wl,-z,now
> -Wl,--warn-shared-textrel -Wl,--fatal-warnings -fPIE -pie -fsanitize=leak
> -L../../buildtools/ndk/sources/cxx-stl/llvm-libc++/libs/armeabi-v7a
> -L../../buildtools/ndk/platforms/android-21/arch-arm/usr/lib
> obj/libtracing/sanitizers_unittests.sanitizers_unittest.o
> obj/buildtools/googletest/googletest/src/gtest.gtest-all.o
> obj/buildtools/googletest/googletest/src/gtest_main.gtest_main.o  -llog
> -lgcc -lc++_static -lc++abi -landroid_support -o sanitizers_unittests
>
> --
> You received this message because you are subscribed to the Google Groups
> "address-sanitizer" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to address-sanitizer+unsubscr...@googlegroups.com.
> For more options, visit https://groups.google.com/d/optout.

-- 
You received this message because you are subscribed to the Google Groups 
"address-sanitizer" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to address-sanitizer+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to