gn build: Create regular archives for the sanitizer runtimes.

We'll need to do this eventually if we create an installable package.
For now, this lets me use the archives to build Android, whose build
system wants to copy the archives to another location.

Differential Revision: https://reviews.llvm.org/D57607

llvm-svn: 352907
This commit is contained in:
Peter Collingbourne 2019-02-01 20:34:43 +00:00
parent 251e1488e1
commit a18761ab9e
4 changed files with 18 additions and 3 deletions

View File

@ -136,6 +136,14 @@ config("no_rtti") {
}
}
# To make an archive that can be distributed, you need to remove this config and
# set complete_static_lib.
config("thin_archive") {
if (current_os != "win" && current_os != "mac") {
arflags = [ "-T" ]
}
}
config("llvm_code") {
include_dirs = [
"//llvm/include",

View File

@ -6,6 +6,7 @@ shared_binary_target_configs = [
"//llvm/utils/gn/build:compiler_defaults",
"//llvm/utils/gn/build:llvm_code",
"//llvm/utils/gn/build:no_rtti",
"//llvm/utils/gn/build:thin_archive",
"//llvm/utils/gn/build:warn_covered_switch_default",
]

View File

@ -50,7 +50,7 @@ template("unix_toolchain") {
# Remove the output file first so that ar doesn't try to modify the
# existing file.
command =
"rm -f {{output}} && $ar rcsDT {{arflags}} {{output}} {{inputs}}"
"rm -f {{output}} && $ar rcsD {{arflags}} {{output}} {{inputs}}"
}
description = "AR {{output}}"
outputs = [

View File

@ -74,7 +74,10 @@ static_library("hwasan") {
output_dir = crt_current_out_dir
output_name = "clang_rt.hwasan-$crt_current_target"
complete_static_lib = true
configs -= [ "//llvm/utils/gn/build:llvm_code" ]
configs -= [
"//llvm/utils/gn/build:llvm_code",
"//llvm/utils/gn/build:thin_archive",
]
configs += [ "//llvm/utils/gn/build:crt_code" ]
deps = [
":sources",
@ -85,7 +88,10 @@ static_library("hwasan_cxx") {
output_dir = crt_current_out_dir
output_name = "clang_rt.hwasan_cxx-$crt_current_target"
complete_static_lib = true
configs -= [ "//llvm/utils/gn/build:llvm_code" ]
configs -= [
"//llvm/utils/gn/build:llvm_code",
"//llvm/utils/gn/build:thin_archive",
]
configs += [ "//llvm/utils/gn/build:crt_code" ]
deps = [
":cxx_sources",