[PATCH] D131969: [gn build] build libclang_rt.ubsan_osx_dynamic.dylib on mac
Nico Weber via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Tue Aug 16 08:00:06 PDT 2022
thakis created this revision.
thakis added a reviewer: aeubanks.
Herald added a subscriber: Enna1.
Herald added a project: All.
thakis requested review of this revision.
Herald added a project: LLVM.
https://reviews.llvm.org/D131969
Files:
llvm/utils/gn/secondary/compiler-rt/lib/BUILD.gn
llvm/utils/gn/secondary/compiler-rt/lib/ubsan/BUILD.gn
Index: llvm/utils/gn/secondary/compiler-rt/lib/ubsan/BUILD.gn
===================================================================
--- llvm/utils/gn/secondary/compiler-rt/lib/ubsan/BUILD.gn
+++ llvm/utils/gn/secondary/compiler-rt/lib/ubsan/BUILD.gn
@@ -1,10 +1,14 @@
import("//compiler-rt/target.gni")
group("ubsan") {
- deps = [
- ":ubsan_standalone",
- ":ubsan_standalone_cxx",
- ]
+ if (current_os == "mac") {
+ deps = [ ":ubsan_shared_library" ]
+ } else {
+ deps = [
+ ":ubsan_standalone",
+ ":ubsan_standalone_cxx",
+ ]
+ }
}
source_set("sources") {
@@ -86,8 +90,50 @@
]
}
-# FIXME: Make ubsan_standalone work on mac.
-if (current_os != "mac") {
+if (current_os == "mac") {
+ shared_library("ubsan_shared_library") {
+ output_dir = crt_current_out_dir
+ output_name = "clang_rt.ubsan_osx_dynamic"
+ deps = [
+ ":cxx_sources",
+ ":sources",
+ ":standalone_sources",
+ "//compiler-rt/lib/interception:sources",
+ "//compiler-rt/lib/sanitizer_common:sources",
+ ]
+ if (current_os == "win") {
+ deps += [
+ ":weak_interception",
+ "//compiler-rt/lib/sanitizer_common:weak_interception",
+ "//compiler-rt/lib/ubsan:weak_interception",
+ ]
+ }
+ # The -U flags below correspond to the add_weak_symbols() calls in CMake.
+ ldflags = [
+ "-lc++",
+ "-lc++abi",
+
+ # ubsan
+ "-Wl,-U,___ubsan_default_options",
+
+ # sanitizer_common
+ "-Wl,-U,___sanitizer_free_hook",
+ "-Wl,-U,___sanitizer_malloc_hook",
+ "-Wl,-U,___sanitizer_report_error_summary",
+ "-Wl,-U,___sanitizer_sandbox_on_notify",
+ "-Wl,-U,___sanitizer_symbolize_code",
+ "-Wl,-U,___sanitizer_symbolize_data",
+ "-Wl,-U,___sanitizer_symbolize_demangle",
+ "-Wl,-U,___sanitizer_symbolize_flush",
+ "-Wl,-U,___sanitizer_symbolize_set_demangle",
+ "-Wl,-U,___sanitizer_symbolize_set_inline_frames",
+
+ # FIXME: better
+ "-Wl,-install_name, at rpath/libclang_rt.ubsan_osx_dynamic.dylib",
+ ]
+ # FIXME: -Wl,-rpath
+ }
+} else {
static_library("ubsan_standalone") {
output_dir = crt_current_out_dir
output_name = "clang_rt.ubsan_standalone$crt_current_target_suffix"
Index: llvm/utils/gn/secondary/compiler-rt/lib/BUILD.gn
===================================================================
--- llvm/utils/gn/secondary/compiler-rt/lib/BUILD.gn
+++ llvm/utils/gn/secondary/compiler-rt/lib/BUILD.gn
@@ -6,11 +6,11 @@
if (current_os == "linux") {
deps += [ "//compiler-rt/lib/msan" ]
}
- if (current_os == "linux" || current_os == "android") {
- deps += [
- "//compiler-rt/lib/ubsan",
- "//compiler-rt/lib/ubsan_minimal",
- ]
+ if (current_os == "android" || current_os == "linux" || current_os == "mac") {
+ deps += [ "//compiler-rt/lib/ubsan" ]
+ }
+ if (current_os == "android" || current_os == "linux") {
+ deps += [ "//compiler-rt/lib/ubsan_minimal" ]
}
if (current_os != "win" && current_os != "baremetal") {
deps += [ "//compiler-rt/lib/asan" ]
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D131969.453016.patch
Type: text/x-patch
Size: 3082 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20220816/a98c9ead/attachment.bin>
More information about the llvm-commits
mailing list