Add missing files to LLVM's Build.gn
MCWasmObjectTargetWriter and TargetIntrinsicInfo never appear in the
file. ARMTargetStreamer is declared on all platforms so move it from
the ARM-only target to the shared target.
Bug: chromium:971333
Change-Id: I04229323af68e5b4d24a1d5ad6524c96460108eb
Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/32428
Tested-by: Saman Sami <samans@chromium.org>
Reviewed-by: Nicolas Capens <nicolascapens@google.com>
diff --git a/src/swiftshader.gni b/src/swiftshader.gni
index 01efa20..f4b67fa 100644
--- a/src/swiftshader.gni
+++ b/src/swiftshader.gni
@@ -5,6 +5,16 @@
# This file contains configs that need to be added or removed to all
# SwiftShader libraries
+import("//build_overrides/build.gni")
+
+if (build_with_chromium) {
+ import("//build/config/sanitizers/sanitizers.gni")
+} else {
+ declare_args() {
+ is_ubsan_vptr = false
+ }
+}
+
configs_to_add = []
configs_to_delete = []
diff --git a/third_party/llvm-7.0/BUILD.gn b/third_party/llvm-7.0/BUILD.gn
index cc0c8f7..6fc8607 100644
--- a/third_party/llvm-7.0/BUILD.gn
+++ b/third_party/llvm-7.0/BUILD.gn
@@ -269,6 +269,7 @@
"llvm/lib/MC/MCSymbolELF.cpp",
"llvm/lib/MC/MCTargetOptions.cpp",
"llvm/lib/MC/MCValue.cpp",
+ "llvm/lib/MC/MCWasmObjectTargetWriter.cpp",
"llvm/lib/MC/MCWasmStreamer.cpp",
"llvm/lib/MC/MCWin64EH.cpp",
"llvm/lib/MC/MCWinCOFFStreamer.cpp",
@@ -295,11 +296,19 @@
"llvm/lib/Object/WasmObjectFile.cpp",
"llvm/lib/Object/WindowsResource.cpp",
"llvm/lib/ProfileData/InstrProf.cpp",
+ "llvm/lib/Target/TargetIntrinsicInfo.cpp",
"llvm/lib/Target/TargetLoweringObjectFile.cpp",
"llvm/lib/Target/TargetMachine.cpp",
"stubs/Stubs.cpp",
]
+ # This class is declared on all platforms but only used on ARM. UBSanVPtr
+ # builds require that all declared classes have a definition even if they're
+ # not used.
+ if (is_ubsan_vptr) {
+ sources += [ "llvm/lib/Target/ARM/MCTargetDesc/ARMTargetStreamer.cpp" ]
+ }
+
configs = [ ":swiftshader_llvm_private_config" ]
include_dirs = llvm_include_dirs
@@ -409,7 +418,6 @@
"llvm/lib/Target/ARM/MCTargetDesc/ARMWinCOFFObjectWriter.cpp",
"llvm/lib/Target/ARM/MCTargetDesc/ARMMCAsmInfo.cpp",
"llvm/lib/Target/ARM/MCTargetDesc/ARMMCCodeEmitter.cpp",
- "llvm/lib/Target/ARM/MCTargetDesc/ARMTargetStreamer.cpp",
"llvm/lib/Target/ARM/MCTargetDesc/ARMMachORelocationInfo.cpp",
"llvm/lib/Target/ARM/MCTargetDesc/ARMMCExpr.cpp",
"llvm/lib/Target/ARM/MCTargetDesc/ARMELFObjectWriter.cpp",
@@ -462,6 +470,11 @@
"llvm/lib/Target/ARM/ARMOptimizeBarriersPass.cpp",
]
+ # When is_ubsan_vptr is true, this file is added to swiftshader_llvm instead.
+ if (!is_ubsan_vptr) {
+ sources += [ "llvm/lib/Target/ARM/MCTargetDesc/ARMTargetStreamer.cpp" ]
+ }
+
configs = [ ":swiftshader_llvm_private_config" ]
include_dirs = llvm_include_dirs