This is an archive of the discontinued LLVM Phabricator instance.

Support LLVM_USE_LINKER and LLVM_ENABLE_LLD in compiler-rt
Changes PlannedPublic

Authored by vitalybuka on Dec 15 2021, 11:18 AM.

Details

Reviewers
fmayer
Group Reviewers
Restricted Project
Summary

Diff Detail

Event Timeline

vitalybuka created this revision.Dec 15 2021, 11:18 AM
vitalybuka requested review of this revision.Dec 15 2021, 11:18 AM
Herald added a project: Restricted Project. · View Herald TranscriptDec 15 2021, 11:18 AM
Herald added a subscriber: Restricted Project. · View Herald Transcript
vitalybuka added a reviewer: Restricted Project.Dec 15 2021, 11:19 AM
vitalybuka edited the summary of this revision. (Show Details)
fmayer added a subscriber: fmayer.Dec 15 2021, 11:25 AM
fmayer added inline comments.
compiler-rt/CMakeLists.txt
633–634

nit: elseif(LLVM_USE_LINKER)?

vitalybuka marked an inline comment as done.

elseif

fmayer accepted this revision.Dec 15 2021, 12:05 PM
This revision is now accepted and ready to land.Dec 15 2021, 12:05 PM

Doesn't fix the issue https://github.com/llvm/llvm-project/issues/42339

[ 44%] Linking CXX shared library /root/llvm-project/build-llvm/lib/clang/14.0.0/lib/x86_64-unknown-linux-gnu/libclang_rt.hwasan.so
cd /root/llvm-project/build-llvm/runtimes/runtimes-bins/compiler-rt/lib/hwasan && /usr/bin/cmake -E cmake_link_script CMakeFiles/clang_rt.hwasan-dynamic-x86_64.dir/link.txt --verbose=1
/root/llvm-project/build-llvm/./bin/clang++ --target=x86_64-unknown-linux-gnu -fPIC  -fPIC -fno-semantic-interposition -fvisibility-inlines-hidden -Werror=date-time -Werror=unguarded-availability-new -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 -Wsuggest-override -Wno-comment -Wstring-conversion -Wmisleading-indentation -Wall -std=c++14 -Wno-unused-parameter -g  -m64 -nodefaultlibs -Wl,-z,text -nostdlib++ -Wl,--version-script,/root/llvm-project/build-llvm/runtimes/runtimes-bins/compiler-rt/lib/hwasan/clang_rt.hwasan-dynamic-x86_64.vers -Wl,-rpath-link,/root/llvm-project/build-llvm/./lib   -Wl,-z,defs -Wl,-z,nodelete -shared -Wl,-soname,libclang_rt.hwasan.so -o /root/llvm-project/build-llvm/lib/clang/14.0.0/lib/x86_64-unknown-linux-gnu/libclang_rt.hwasan.so CMakeFiles/RTHwasan_dynamic.x86_64.dir/hwasan.cpp.o CMakeFiles/RTHwasan_dynamic.x86_64.dir/hwasan_allocator.cpp.o CMakeFiles/RTHwasan_dynamic.x86_64.dir/hwasan_allocation_functions.cpp.o CMakeFiles/RTHwasan_dynamic.x86_64.dir/hwasan_dynamic_shadow.cpp.o CMakeFiles/RTHwasan_dynamic.x86_64.dir/hwasan_exceptions.cpp.o CMakeFiles/RTHwasan_dynamic.x86_64.dir/hwasan_fuchsia.cpp.o CMakeFiles/RTHwasan_dynamic.x86_64.dir/hwasan_globals.cpp.o CMakeFiles/RTHwasan_dynamic.x86_64.dir/hwasan_interceptors.cpp.o CMakeFiles/RTHwasan_dynamic.x86_64.dir/hwasan_interceptors_vfork.S.o CMakeFiles/RTHwasan_dynamic.x86_64.dir/hwasan_linux.cpp.o CMakeFiles/RTHwasan_dynamic.x86_64.dir/hwasan_memintrinsics.cpp.o CMakeFiles/RTHwasan_dynamic.x86_64.dir/hwasan_poisoning.cpp.o CMakeFiles/RTHwasan_dynamic.x86_64.dir/hwasan_report.cpp.o CMakeFiles/RTHwasan_dynamic.x86_64.dir/hwasan_setjmp_aarch64.S.o CMakeFiles/RTHwasan_dynamic.x86_64.dir/hwasan_setjmp_x86_64.S.o CMakeFiles/RTHwasan_dynamic.x86_64.dir/hwasan_tag_mismatch_aarch64.S.o CMakeFiles/RTHwasan_dynamic.x86_64.dir/hwasan_thread.cpp.o CMakeFiles/RTHwasan_dynamic.x86_64.dir/hwasan_thread_list.cpp.o CMakeFiles/RTHwasan_dynamic.x86_64.dir/hwasan_type_test.cpp.o CMakeFiles/RTHwasan_dynamic.x86_64.dir/hwasan_new_delete.cpp.o ../interception/CMakeFiles/RTInterception.x86_64.dir/interception_linux.cpp.o ../interception/CMakeFiles/RTInterception.x86_64.dir/interception_mac.cpp.o ../interception/CMakeFiles/RTInterception.x86_64.dir/interception_win.cpp.o ../interception/CMakeFiles/RTInterception.x86_64.dir/interception_type_test.cpp.o ../sanitizer_common/CMakeFiles/RTSanitizerCommon.x86_64.dir/sanitizer_allocator.cpp.o ../sanitizer_common/CMakeFiles/RTSanitizerCommon.x86_64.dir/sanitizer_common.cpp.o ../sanitizer_common/CMakeFiles/RTSanitizerCommon.x86_64.dir/sanitizer_deadlock_detector1.cpp.o ../sanitizer_common/CMakeFiles/RTSanitizerCommon.x86_64.dir/sanitizer_deadlock_detector2.cpp.o ../sanitizer_common/CMakeFiles/RTSanitizerCommon.x86_64.dir/sanitizer_errno.cpp.o ../sanitizer_common/CMakeFiles/RTSanitizerCommon.x86_64.dir/sanitizer_file.cpp.o ../sanitizer_common/CMakeFiles/RTSanitizerCommon.x86_64.dir/sanitizer_flags.cpp.o ../sanitizer_common/CMakeFiles/RTSanitizerCommon.x86_64.dir/sanitizer_flag_parser.cpp.o ../sanitizer_common/CMakeFiles/RTSanitizerCommon.x86_64.dir/sanitizer_fuchsia.cpp.o ../sanitizer_common/CMakeFiles/RTSanitizerCommon.x86_64.dir/sanitizer_libc.cpp.o ../sanitizer_common/CMakeFiles/RTSanitizerCommon.x86_64.dir/sanitizer_libignore.cpp.o ../sanitizer_common/CMakeFiles/RTSanitizerCommon.x86_64.dir/sanitizer_linux.cpp.o ../sanitizer_common/CMakeFiles/RTSanitizerCommon.x86_64.dir/sanitizer_linux_s390.cpp.o ../sanitizer_common/CMakeFiles/RTSanitizerCommon.x86_64.dir/sanitizer_mac.cpp.o ../sanitizer_common/CMakeFiles/RTSanitizerCommon.x86_64.dir/sanitizer_mutex.cpp.o ../sanitizer_common/CMakeFiles/RTSanitizerCommon.x86_64.dir/sanitizer_netbsd.cpp.o ../sanitizer_common/CMakeFiles/RTSanitizerCommon.x86_64.dir/sanitizer_platform_limits_freebsd.cpp.o ../sanitizer_common/CMakeFiles/RTSanitizerCommon.x86_64.dir/sanitizer_platform_limits_linux.cpp.o ../sanitizer_common/CMakeFiles/RTSanitizerCommon.x86_64.dir/sanitizer_platform_limits_netbsd.cpp.o ../sanitizer_common/CMakeFiles/RTSanitizerCommon.x86_64.dir/sanitizer_platform_limits_posix.cpp.o ../sanitizer_common/CMakeFiles/RTSanitizerCommon.x86_64.dir/sanitizer_platform_limits_solaris.cpp.o ../sanitizer_common/CMakeFiles/RTSanitizerCommon.x86_64.dir/sanitizer_posix.cpp.o ../sanitizer_common/CMakeFiles/RTSanitizerCommon.x86_64.dir/sanitizer_printf.cpp.o ../sanitizer_common/CMakeFiles/RTSanitizerCommon.x86_64.dir/sanitizer_procmaps_common.cpp.o ../sanitizer_common/CMakeFiles/RTSanitizerCommon.x86_64.dir/sanitizer_procmaps_bsd.cpp.o ../sanitizer_common/CMakeFiles/RTSanitizerCommon.x86_64.dir/sanitizer_procmaps_fuchsia.cpp.o ../sanitizer_common/CMakeFiles/RTSanitizerCommon.x86_64.dir/sanitizer_procmaps_linux.cpp.o ../sanitizer_common/CMakeFiles/RTSanitizerCommon.x86_64.dir/sanitizer_procmaps_mac.cpp.o ../sanitizer_common/CMakeFiles/RTSanitizerCommon.x86_64.dir/sanitizer_procmaps_solaris.cpp.o ../sanitizer_common/CMakeFiles/RTSanitizerCommon.x86_64.dir/sanitizer_solaris.cpp.o ../sanitizer_common/CMakeFiles/RTSanitizerCommon.x86_64.dir/sanitizer_stoptheworld_fuchsia.cpp.o ../sanitizer_common/CMakeFiles/RTSanitizerCommon.x86_64.dir/sanitizer_stoptheworld_mac.cpp.o ../sanitizer_common/CMakeFiles/RTSanitizerCommon.x86_64.dir/sanitizer_suppressions.cpp.o ../sanitizer_common/CMakeFiles/RTSanitizerCommon.x86_64.dir/sanitizer_tls_get_addr.cpp.o ../sanitizer_common/CMakeFiles/RTSanitizerCommon.x86_64.dir/sanitizer_thread_registry.cpp.o ../sanitizer_common/CMakeFiles/RTSanitizerCommon.x86_64.dir/sanitizer_type_traits.cpp.o ../sanitizer_common/CMakeFiles/RTSanitizerCommon.x86_64.dir/sanitizer_win.cpp.o ../sanitizer_common/CMakeFiles/RTSanitizerCommon.x86_64.dir/sanitizer_termination.cpp.o ../sanitizer_common/CMakeFiles/RTSanitizerCommonLibc.x86_64.dir/sanitizer_common_libcdep.cpp.o ../sanitizer_common/CMakeFiles/RTSanitizerCommonLibc.x86_64.dir/sanitizer_allocator_checks.cpp.o ../sanitizer_common/CMakeFiles/RTSanitizerCommonLibc.x86_64.dir/sanitizer_linux_libcdep.cpp.o ../sanitizer_common/CMakeFiles/RTSanitizerCommonLibc.x86_64.dir/sanitizer_mac_libcdep.cpp.o ../sanitizer_common/CMakeFiles/RTSanitizerCommonLibc.x86_64.dir/sanitizer_posix_libcdep.cpp.o ../sanitizer_common/CMakeFiles/RTSanitizerCommonLibc.x86_64.dir/sanitizer_stoptheworld_linux_libcdep.cpp.o ../sanitizer_common/CMakeFiles/RTSanitizerCommonLibc.x86_64.dir/sanitizer_stoptheworld_netbsd_libcdep.cpp.o ../sanitizer_common/CMakeFiles/RTSanitizerCommonCoverage.x86_64.dir/sancov_flags.cpp.o ../sanitizer_common/CMakeFiles/RTSanitizerCommonCoverage.x86_64.dir/sanitizer_coverage_fuchsia.cpp.o ../sanitizer_common/CMakeFiles/RTSanitizerCommonCoverage.x86_64.dir/sanitizer_coverage_libcdep_new.cpp.o ../sanitizer_common/CMakeFiles/RTSanitizerCommonCoverage.x86_64.dir/sanitizer_coverage_win_sections.cpp.o ../sanitizer_common/CMakeFiles/RTSanitizerCommonSymbolizer.x86_64.dir/sanitizer_allocator_report.cpp.o ../sanitizer_common/CMakeFiles/RTSanitizerCommonSymbolizer.x86_64.dir/sanitizer_chained_origin_depot.cpp.o ../sanitizer_common/CMakeFiles/RTSanitizerCommonSymbolizer.x86_64.dir/sanitizer_stack_store.cpp.o ../sanitizer_common/CMakeFiles/RTSanitizerCommonSymbolizer.x86_64.dir/sanitizer_stackdepot.cpp.o ../sanitizer_common/CMakeFiles/RTSanitizerCommonSymbolizer.x86_64.dir/sanitizer_stacktrace.cpp.o ../sanitizer_common/CMakeFiles/RTSanitizerCommonSymbolizer.x86_64.dir/sanitizer_stacktrace_libcdep.cpp.o ../sanitizer_common/CMakeFiles/RTSanitizerCommonSymbolizer.x86_64.dir/sanitizer_stacktrace_printer.cpp.o ../sanitizer_common/CMakeFiles/RTSanitizerCommonSymbolizer.x86_64.dir/sanitizer_stacktrace_sparc.cpp.o ../sanitizer_common/CMakeFiles/RTSanitizerCommonSymbolizer.x86_64.dir/sanitizer_symbolizer.cpp.o ../sanitizer_common/CMakeFiles/RTSanitizerCommonSymbolizer.x86_64.dir/sanitizer_symbolizer_libbacktrace.cpp.o ../sanitizer_common/CMakeFiles/RTSanitizerCommonSymbolizer.x86_64.dir/sanitizer_symbolizer_libcdep.cpp.o ../sanitizer_common/CMakeFiles/RTSanitizerCommonSymbolizer.x86_64.dir/sanitizer_symbolizer_mac.cpp.o ../sanitizer_common/CMakeFiles/RTSanitizerCommonSymbolizer.x86_64.dir/sanitizer_symbolizer_markup.cpp.o ../sanitizer_common/CMakeFiles/RTSanitizerCommonSymbolizer.x86_64.dir/sanitizer_symbolizer_posix_libcdep.cpp.o ../sanitizer_common/CMakeFiles/RTSanitizerCommonSymbolizer.x86_64.dir/sanitizer_symbolizer_report.cpp.o ../sanitizer_common/CMakeFiles/RTSanitizerCommonSymbolizer.x86_64.dir/sanitizer_symbolizer_win.cpp.o ../sanitizer_common/CMakeFiles/RTSanitizerCommonSymbolizer.x86_64.dir/sanitizer_unwind_linux_libcdep.cpp.o ../sanitizer_common/CMakeFiles/RTSanitizerCommonSymbolizer.x86_64.dir/sanitizer_unwind_win.cpp.o ../ubsan/CMakeFiles/RTUbsan.x86_64.dir/ubsan_diag.cpp.o ../ubsan/CMakeFiles/RTUbsan.x86_64.dir/ubsan_init.cpp.o ../ubsan/CMakeFiles/RTUbsan.x86_64.dir/ubsan_flags.cpp.o ../ubsan/CMakeFiles/RTUbsan.x86_64.dir/ubsan_handlers.cpp.o ../ubsan/CMakeFiles/RTUbsan.x86_64.dir/ubsan_monitor.cpp.o ../ubsan/CMakeFiles/RTUbsan.x86_64.dir/ubsan_value.cpp.o ../ubsan/CMakeFiles/RTUbsan_cxx.x86_64.dir/ubsan_handlers_cxx.cpp.o ../ubsan/CMakeFiles/RTUbsan_cxx.x86_64.dir/ubsan_type_hash.cpp.o ../ubsan/CMakeFiles/RTUbsan_cxx.x86_64.dir/ubsan_type_hash_itanium.cpp.o ../ubsan/CMakeFiles/RTUbsan_cxx.x86_64.dir/ubsan_type_hash_win.cpp.o CMakeFiles/RTHwasan_dynamic_version_script_dummy.x86_64.dir/dummy.cpp.o -Wl,-rpath,"\$ORIGIN/../lib:/root/llvm-project/build-llvm/./lib" -lstdc++ -lgcc_s -lc -ldl -lrt -lm -lpthread 
/usr/bin/ld: CMakeFiles/RTHwasan_dynamic.x86_64.dir/hwasan.cpp.o: relocation R_X86_64_PC32 against undefined symbol `__ehdr_start' can not be used when making a shared object; recompile with -fPIC
/usr/bin/ld: final link failed: nonrepresentable section on output

on trunk