[PATCH] D58533: [hwasan, asan] Intercept vfork.

Petr Hosek via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Wed Feb 27 17:27:15 PST 2019


phosek added a comment.

This broke our builders with the following error:

  [630/630] Linking CXX shared library /b/s/w/ir/k/recipe_cleanup/clangv6gSby/llvm_build_dir/lib/clang/9.0.0/i386-linux-gnu/lib/libclang_rt.asan.so
  FAILED: /b/s/w/ir/k/recipe_cleanup/clangv6gSby/llvm_build_dir/lib/clang/9.0.0/i386-linux-gnu/lib/libclang_rt.asan.so 
  : && /b/s/w/ir/k/recipe_cleanup/clangv6gSby/llvm_build_dir/./bin/clang++ --target=i386-linux-gnu --sysroot=/b/s/w/ir/k/cipd/linux-i386 -fPIC -fPIC -fvisibility-inlines-hidden -Werror=date-time -Werror=unguarded-availability-new -std=c++11 -Wall -Wextra -Wno-unused-parameter -Wwrite-strings -Wcast-qual -Wmissing-field-initializers -Wimplicit-fallthrough -Wcovered-switch-default -Wno-noexcept-type -Wnon-virtual-dtor -Wdelete-non-virtual-dtor -Wstring-conversion -fdiagnostics-color -ffunction-sections -fdata-sections -Wall -std=c++11 -Wno-unused-parameter -O3 -DNDEBUG  -fuse-ld=lld  -Wl,-z,nodelete -Wl,--color-diagnostics   -nodefaultlibs -Wl,--version-script,/b/s/w/ir/k/recipe_cleanup/clangv6gSby/llvm_build_dir/runtimes/runtimes-i386-linux-gnu-bins/compiler-rt/lib/asan/clang_rt.asan-dynamic-i386.vers -shared -Wl,-soname,libclang_rt.asan.so -o /b/s/w/ir/k/recipe_cleanup/clangv6gSby/llvm_build_dir/lib/clang/9.0.0/i386-linux-gnu/lib/libclang_rt.asan.so compiler-rt/lib/interception/CMakeFiles/RTInterception.i386.dir/interception_linux.cc.o compiler-rt/lib/interception/CMakeFiles/RTInterception.i386.dir/interception_mac.cc.o compiler-rt/lib/interception/CMakeFiles/RTInterception.i386.dir/interception_win.cc.o compiler-rt/lib/interception/CMakeFiles/RTInterception.i386.dir/interception_type_test.cc.o compiler-rt/lib/sanitizer_common/CMakeFiles/RTSanitizerCommon.i386.dir/sanitizer_allocator.cc.o compiler-rt/lib/sanitizer_common/CMakeFiles/RTSanitizerCommon.i386.dir/sanitizer_common.cc.o compiler-rt/lib/sanitizer_common/CMakeFiles/RTSanitizerCommon.i386.dir/sanitizer_deadlock_detector1.cc.o compiler-rt/lib/sanitizer_common/CMakeFiles/RTSanitizerCommon.i386.dir/sanitizer_deadlock_detector2.cc.o compiler-rt/lib/sanitizer_common/CMakeFiles/RTSanitizerCommon.i386.dir/sanitizer_errno.cc.o compiler-rt/lib/sanitizer_common/CMakeFiles/RTSanitizerCommon.i386.dir/sanitizer_file.cc.o compiler-rt/lib/sanitizer_common/CMakeFiles/RTSanitizerCommon.i386.dir/sanitizer_flags.cc.o compiler-rt/lib/sanitizer_common/CMakeFiles/RTSanitizerCommon.i386.dir/sanitizer_flag_parser.cc.o compiler-rt/lib/sanitizer_common/CMakeFiles/RTSanitizerCommon.i386.dir/sanitizer_fuchsia.cc.o compiler-rt/lib/sanitizer_common/CMakeFiles/RTSanitizerCommon.i386.dir/sanitizer_libc.cc.o compiler-rt/lib/sanitizer_common/CMakeFiles/RTSanitizerCommon.i386.dir/sanitizer_libignore.cc.o compiler-rt/lib/sanitizer_common/CMakeFiles/RTSanitizerCommon.i386.dir/sanitizer_linux.cc.o compiler-rt/lib/sanitizer_common/CMakeFiles/RTSanitizerCommon.i386.dir/sanitizer_linux_s390.cc.o compiler-rt/lib/sanitizer_common/CMakeFiles/RTSanitizerCommon.i386.dir/sanitizer_mac.cc.o compiler-rt/lib/sanitizer_common/CMakeFiles/RTSanitizerCommon.i386.dir/sanitizer_netbsd.cc.o compiler-rt/lib/sanitizer_common/CMakeFiles/RTSanitizerCommon.i386.dir/sanitizer_openbsd.cc.o compiler-rt/lib/sanitizer_common/CMakeFiles/RTSanitizerCommon.i386.dir/sanitizer_persistent_allocator.cc.o compiler-rt/lib/sanitizer_common/CMakeFiles/RTSanitizerCommon.i386.dir/sanitizer_platform_limits_freebsd.cc.o compiler-rt/lib/sanitizer_common/CMakeFiles/RTSanitizerCommon.i386.dir/sanitizer_platform_limits_linux.cc.o compiler-rt/lib/sanitizer_common/CMakeFiles/RTSanitizerCommon.i386.dir/sanitizer_platform_limits_netbsd.cc.o compiler-rt/lib/sanitizer_common/CMakeFiles/RTSanitizerCommon.i386.dir/sanitizer_platform_limits_openbsd.cc.o compiler-rt/lib/sanitizer_common/CMakeFiles/RTSanitizerCommon.i386.dir/sanitizer_platform_limits_posix.cc.o compiler-rt/lib/sanitizer_common/CMakeFiles/RTSanitizerCommon.i386.dir/sanitizer_platform_limits_solaris.cc.o compiler-rt/lib/sanitizer_common/CMakeFiles/RTSanitizerCommon.i386.dir/sanitizer_posix.cc.o compiler-rt/lib/sanitizer_common/CMakeFiles/RTSanitizerCommon.i386.dir/sanitizer_printf.cc.o compiler-rt/lib/sanitizer_common/CMakeFiles/RTSanitizerCommon.i386.dir/sanitizer_procmaps_common.cc.o compiler-rt/lib/sanitizer_common/CMakeFiles/RTSanitizerCommon.i386.dir/sanitizer_procmaps_bsd.cc.o compiler-rt/lib/sanitizer_common/CMakeFiles/RTSanitizerCommon.i386.dir/sanitizer_procmaps_linux.cc.o compiler-rt/lib/sanitizer_common/CMakeFiles/RTSanitizerCommon.i386.dir/sanitizer_procmaps_mac.cc.o compiler-rt/lib/sanitizer_common/CMakeFiles/RTSanitizerCommon.i386.dir/sanitizer_procmaps_solaris.cc.o compiler-rt/lib/sanitizer_common/CMakeFiles/RTSanitizerCommon.i386.dir/sanitizer_rtems.cc.o compiler-rt/lib/sanitizer_common/CMakeFiles/RTSanitizerCommon.i386.dir/sanitizer_solaris.cc.o compiler-rt/lib/sanitizer_common/CMakeFiles/RTSanitizerCommon.i386.dir/sanitizer_stoptheworld_mac.cc.o compiler-rt/lib/sanitizer_common/CMakeFiles/RTSanitizerCommon.i386.dir/sanitizer_suppressions.cc.o compiler-rt/lib/sanitizer_common/CMakeFiles/RTSanitizerCommon.i386.dir/sanitizer_tls_get_addr.cc.o compiler-rt/lib/sanitizer_common/CMakeFiles/RTSanitizerCommon.i386.dir/sanitizer_thread_registry.cc.o compiler-rt/lib/sanitizer_common/CMakeFiles/RTSanitizerCommon.i386.dir/sanitizer_type_traits.cc.o compiler-rt/lib/sanitizer_common/CMakeFiles/RTSanitizerCommon.i386.dir/sanitizer_win.cc.o compiler-rt/lib/sanitizer_common/CMakeFiles/RTSanitizerCommon.i386.dir/sanitizer_linux_x86_64.S.o compiler-rt/lib/sanitizer_common/CMakeFiles/RTSanitizerCommon.i386.dir/sanitizer_linux_mips64.S.o compiler-rt/lib/sanitizer_common/CMakeFiles/RTSanitizerCommon.i386.dir/sanitizer_termination.cc.o compiler-rt/lib/sanitizer_common/CMakeFiles/RTSanitizerCommonLibc.i386.dir/sanitizer_common_libcdep.cc.o compiler-rt/lib/sanitizer_common/CMakeFiles/RTSanitizerCommonLibc.i386.dir/sanitizer_allocator_checks.cc.o compiler-rt/lib/sanitizer_common/CMakeFiles/RTSanitizerCommonLibc.i386.dir/sanitizer_linux_libcdep.cc.o compiler-rt/lib/sanitizer_common/CMakeFiles/RTSanitizerCommonLibc.i386.dir/sanitizer_mac_libcdep.cc.o compiler-rt/lib/sanitizer_common/CMakeFiles/RTSanitizerCommonLibc.i386.dir/sanitizer_posix_libcdep.cc.o compiler-rt/lib/sanitizer_common/CMakeFiles/RTSanitizerCommonLibc.i386.dir/sanitizer_stoptheworld_linux_libcdep.cc.o compiler-rt/lib/sanitizer_common/CMakeFiles/RTSanitizerCommonCoverage.i386.dir/sancov_flags.cc.o compiler-rt/lib/sanitizer_common/CMakeFiles/RTSanitizerCommonCoverage.i386.dir/sanitizer_coverage_fuchsia.cc.o compiler-rt/lib/sanitizer_common/CMakeFiles/RTSanitizerCommonCoverage.i386.dir/sanitizer_coverage_libcdep_new.cc.o compiler-rt/lib/sanitizer_common/CMakeFiles/RTSanitizerCommonCoverage.i386.dir/sanitizer_coverage_win_sections.cc.o compiler-rt/lib/sanitizer_common/CMakeFiles/RTSanitizerCommonSymbolizer.i386.dir/sanitizer_allocator_report.cc.o compiler-rt/lib/sanitizer_common/CMakeFiles/RTSanitizerCommonSymbolizer.i386.dir/sanitizer_stackdepot.cc.o compiler-rt/lib/sanitizer_common/CMakeFiles/RTSanitizerCommonSymbolizer.i386.dir/sanitizer_stacktrace.cc.o compiler-rt/lib/sanitizer_common/CMakeFiles/RTSanitizerCommonSymbolizer.i386.dir/sanitizer_stacktrace_libcdep.cc.o compiler-rt/lib/sanitizer_common/CMakeFiles/RTSanitizerCommonSymbolizer.i386.dir/sanitizer_stacktrace_printer.cc.o compiler-rt/lib/sanitizer_common/CMakeFiles/RTSanitizerCommonSymbolizer.i386.dir/sanitizer_stacktrace_sparc.cc.o compiler-rt/lib/sanitizer_common/CMakeFiles/RTSanitizerCommonSymbolizer.i386.dir/sanitizer_symbolizer.cc.o compiler-rt/lib/sanitizer_common/CMakeFiles/RTSanitizerCommonSymbolizer.i386.dir/sanitizer_symbolizer_libbacktrace.cc.o compiler-rt/lib/sanitizer_common/CMakeFiles/RTSanitizerCommonSymbolizer.i386.dir/sanitizer_symbolizer_libcdep.cc.o compiler-rt/lib/sanitizer_common/CMakeFiles/RTSanitizerCommonSymbolizer.i386.dir/sanitizer_symbolizer_mac.cc.o compiler-rt/lib/sanitizer_common/CMakeFiles/RTSanitizerCommonSymbolizer.i386.dir/sanitizer_symbolizer_markup.cc.o compiler-rt/lib/sanitizer_common/CMakeFiles/RTSanitizerCommonSymbolizer.i386.dir/sanitizer_symbolizer_posix_libcdep.cc.o compiler-rt/lib/sanitizer_common/CMakeFiles/RTSanitizerCommonSymbolizer.i386.dir/sanitizer_symbolizer_report.cc.o compiler-rt/lib/sanitizer_common/CMakeFiles/RTSanitizerCommonSymbolizer.i386.dir/sanitizer_symbolizer_win.cc.o compiler-rt/lib/sanitizer_common/CMakeFiles/RTSanitizerCommonSymbolizer.i386.dir/sanitizer_unwind_linux_libcdep.cc.o compiler-rt/lib/sanitizer_common/CMakeFiles/RTSanitizerCommonSymbolizer.i386.dir/sanitizer_unwind_win.cc.o compiler-rt/lib/lsan/CMakeFiles/RTLSanCommon.i386.dir/lsan_common.cc.o compiler-rt/lib/lsan/CMakeFiles/RTLSanCommon.i386.dir/lsan_common_linux.cc.o compiler-rt/lib/lsan/CMakeFiles/RTLSanCommon.i386.dir/lsan_common_mac.cc.o compiler-rt/lib/ubsan/CMakeFiles/RTUbsan.i386.dir/ubsan_diag.cc.o compiler-rt/lib/ubsan/CMakeFiles/RTUbsan.i386.dir/ubsan_init.cc.o compiler-rt/lib/ubsan/CMakeFiles/RTUbsan.i386.dir/ubsan_flags.cc.o compiler-rt/lib/ubsan/CMakeFiles/RTUbsan.i386.dir/ubsan_handlers.cc.o compiler-rt/lib/ubsan/CMakeFiles/RTUbsan.i386.dir/ubsan_monitor.cc.o compiler-rt/lib/ubsan/CMakeFiles/RTUbsan.i386.dir/ubsan_value.cc.o compiler-rt/lib/asan/CMakeFiles/RTAsan_dynamic.i386.dir/asan_allocator.cc.o compiler-rt/lib/asan/CMakeFiles/RTAsan_dynamic.i386.dir/asan_activation.cc.o compiler-rt/lib/asan/CMakeFiles/RTAsan_dynamic.i386.dir/asan_debugging.cc.o compiler-rt/lib/asan/CMakeFiles/RTAsan_dynamic.i386.dir/asan_descriptions.cc.o compiler-rt/lib/asan/CMakeFiles/RTAsan_dynamic.i386.dir/asan_errors.cc.o compiler-rt/lib/asan/CMakeFiles/RTAsan_dynamic.i386.dir/asan_fake_stack.cc.o compiler-rt/lib/asan/CMakeFiles/RTAsan_dynamic.i386.dir/asan_flags.cc.o compiler-rt/lib/asan/CMakeFiles/RTAsan_dynamic.i386.dir/asan_fuchsia.cc.o compiler-rt/lib/asan/CMakeFiles/RTAsan_dynamic.i386.dir/asan_globals.cc.o compiler-rt/lib/asan/CMakeFiles/RTAsan_dynamic.i386.dir/asan_globals_win.cc.o compiler-rt/lib/asan/CMakeFiles/RTAsan_dynamic.i386.dir/asan_interceptors.cc.o compiler-rt/lib/asan/CMakeFiles/RTAsan_dynamic.i386.dir/asan_interceptors_memintrinsics.cc.o compiler-rt/lib/asan/CMakeFiles/RTAsan_dynamic.i386.dir/asan_linux.cc.o compiler-rt/lib/asan/CMakeFiles/RTAsan_dynamic.i386.dir/asan_mac.cc.o compiler-rt/lib/asan/CMakeFiles/RTAsan_dynamic.i386.dir/asan_malloc_linux.cc.o compiler-rt/lib/asan/CMakeFiles/RTAsan_dynamic.i386.dir/asan_malloc_mac.cc.o compiler-rt/lib/asan/CMakeFiles/RTAsan_dynamic.i386.dir/asan_malloc_win.cc.o compiler-rt/lib/asan/CMakeFiles/RTAsan_dynamic.i386.dir/asan_memory_profile.cc.o compiler-rt/lib/asan/CMakeFiles/RTAsan_dynamic.i386.dir/asan_poisoning.cc.o compiler-rt/lib/asan/CMakeFiles/RTAsan_dynamic.i386.dir/asan_posix.cc.o compiler-rt/lib/asan/CMakeFiles/RTAsan_dynamic.i386.dir/asan_premap_shadow.cc.o compiler-rt/lib/asan/CMakeFiles/RTAsan_dynamic.i386.dir/asan_report.cc.o compiler-rt/lib/asan/CMakeFiles/RTAsan_dynamic.i386.dir/asan_rtems.cc.o compiler-rt/lib/asan/CMakeFiles/RTAsan_dynamic.i386.dir/asan_rtl.cc.o compiler-rt/lib/asan/CMakeFiles/RTAsan_dynamic.i386.dir/asan_shadow_setup.cc.o compiler-rt/lib/asan/CMakeFiles/RTAsan_dynamic.i386.dir/asan_stack.cc.o compiler-rt/lib/asan/CMakeFiles/RTAsan_dynamic.i386.dir/asan_stats.cc.o compiler-rt/lib/asan/CMakeFiles/RTAsan_dynamic.i386.dir/asan_suppressions.cc.o compiler-rt/lib/asan/CMakeFiles/RTAsan_dynamic.i386.dir/asan_thread.cc.o compiler-rt/lib/asan/CMakeFiles/RTAsan_dynamic.i386.dir/asan_win.cc.o compiler-rt/lib/asan/CMakeFiles/RTAsan_dynamic.i386.dir/asan_interceptors_vfork.S.o compiler-rt/lib/asan/CMakeFiles/RTAsan_dynamic.i386.dir/asan_new_delete.cc.o compiler-rt/lib/asan/CMakeFiles/RTAsan_dynamic_version_script_dummy.i386.dir/dummy.cc.o compiler-rt/lib/ubsan/CMakeFiles/RTUbsan_cxx.i386.dir/ubsan_handlers_cxx.cc.o compiler-rt/lib/ubsan/CMakeFiles/RTUbsan_cxx.i386.dir/ubsan_type_hash.cc.o compiler-rt/lib/ubsan/CMakeFiles/RTUbsan_cxx.i386.dir/ubsan_type_hash_itanium.cc.o compiler-rt/lib/ubsan/CMakeFiles/RTUbsan_cxx.i386.dir/ubsan_type_hash_win.cc.o -L/b/s/w/ir/k/recipe_cleanup/clangv6gSby/llvm_build_dir/lib/clang/9.0.0/i386-linux-gnu/lib  -L/b/s/w/ir/k/cipd/linux-i386/usr/lib/gcc/i586-linux-gnu/4.9  -L/b/s/w/ir/k/cipd/linux-i386/usr/lib/i386-linux-gnu  -L/b/s/w/ir/k/cipd/linux-i386/lib/i386-linux-gnu  -L/b/s/w/ir/k/cipd/linux-i386/usr/lib  -L/b/s/w/ir/k/cipd/linux-i386/lib -Wl,-rpath,"\$ORIGIN/../lib:/b/s/w/ir/k/recipe_cleanup/clangv6gSby/llvm_build_dir/./lib" /b/s/w/ir/k/recipe_cleanup/clangv6gSby/llvm_build_dir/lib/clang/9.0.0/i386-linux-gnu/lib/libunwind.a /b/s/w/ir/k/recipe_cleanup/clangv6gSby/llvm_build_dir/lib/clang/9.0.0/i386-linux-gnu/lib/libc++abi.a /b/s/w/ir/k/recipe_cleanup/clangv6gSby/llvm_build_dir/lib/clang/9.0.0/i386-linux-gnu/lib/libclang_rt.builtins.a -lc -ldl -lrt -lm -lpthread -lc && :
  ld.lld: error: can't create dynamic relocation R_386_32 against symbol: __interception::real_vfork in readonly segment; recompile object files with -fPIC or pass '-Wl,-z,notext' to allow text relocations in the output
  >>> defined in compiler-rt/lib/asan/CMakeFiles/RTAsan_dynamic.i386.dir/asan_interceptors.cc.o
  >>> referenced by sanitizer_common_interceptors_vfork_i386.inc.S:17 (/b/s/w/ir/k/llvm-project/compiler-rt/lib/asan/../sanitizer_common/sanitizer_common_interceptors_vfork_i386.inc.S:17)
  >>>               compiler-rt/lib/asan/CMakeFiles/RTAsan_dynamic.i386.dir/asan_interceptors_vfork.S.o:(vfork)
  
  ld.lld: error: relocation R_386_PC32 cannot be used against symbol __asan_handle_vfork; recompile with -fPIC
  >>> defined in compiler-rt/lib/asan/CMakeFiles/RTAsan_dynamic.i386.dir/asan_rtl.cc.o
  >>> referenced by sanitizer_common_interceptors_vfork_i386.inc.S:34 (/b/s/w/ir/k/llvm-project/compiler-rt/lib/asan/../sanitizer_common/sanitizer_common_interceptors_vfork_i386.inc.S:34)
  >>>               compiler-rt/lib/asan/CMakeFiles/RTAsan_dynamic.i386.dir/asan_interceptors_vfork.S.o:(vfork)
  clang-9: error: linker command failed with exit code 1 (use -v to see invocation)
  ninja: build stopped: subcommand failed.

The full log can be seen here <https://logs.chromium.org/logs/fuchsia/buildbucket/cr-buildbucket.appspot.com/8920335372413375984/+/steps/clang/0/steps/build/0/stdout>


Repository:
  rCRT Compiler Runtime

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D58533/new/

https://reviews.llvm.org/D58533





More information about the llvm-commits mailing list