From: Peter Collingbourne Date: Tue, 15 Jan 2019 08:14:38 +0000 (+0000) Subject: gn build: Make a couple of improvements to the unix toolchain. X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=5f4130f544a9bd3591505a8de69a57277a19bec8;p=llvm gn build: Make a couple of improvements to the unix toolchain. Add an asm tool (will be required for building sanitizer_common on x64) and set a soname for DSOs so that anything that links against them gets the correct DT_NEEDED. Differential Revision: https://reviews.llvm.org/D56705 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@351167 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/utils/gn/build/toolchain/BUILD.gn b/utils/gn/build/toolchain/BUILD.gn index 61c0418cacd..7a2e584c3a4 100644 --- a/utils/gn/build/toolchain/BUILD.gn +++ b/utils/gn/build/toolchain/BUILD.gn @@ -39,6 +39,16 @@ template("unix_toolchain") { ] } + tool("asm") { + depfile = "{{output}}.d" + command = "$cc -MMD -MF $depfile -o {{output}} -c {{source}} {{defines}} {{include_dirs}} {{asmflags}} $target_cflags" + depsformat = "gcc" + description = "ASM {{output}}" + outputs = [ + "{{source_out_dir}}/{{target_output_name}}.{{source_name_part}}.o", + ] + } + tool("alink") { if (current_os == "mac") { command = "libtool -static -no_warning_for_no_symbols {{arflags}} -o {{output}} {{inputs}}" @@ -62,7 +72,7 @@ template("unix_toolchain") { command = "$ld -shared {{ldflags}} -o $outfile {{libs}} {{inputs}} $target_ldflags" default_output_extension = ".dylib" } else { - command = "$ld -shared {{ldflags}} -Wl,-z,defs -o $outfile {{libs}} {{inputs}} $target_ldflags" + command = "$ld -shared {{ldflags}} -Wl,-z,defs -Wl,-soname,{{target_output_name}}{{output_extension}} -o $outfile {{libs}} {{inputs}} $target_ldflags" default_output_extension = ".so" } description = "SOLINK $outfile" @@ -80,7 +90,7 @@ template("unix_toolchain") { command = "$ld -shared {{ldflags}} -Wl,-flat_namespace -Wl,-undefined,suppress -o $outfile {{libs}} {{inputs}} $target_ldflags" default_output_extension = ".dylib" } else { - command = "$ld -shared {{ldflags}} -o $outfile {{libs}} {{inputs}} $target_ldflags" + command = "$ld -shared {{ldflags}} -Wl,-soname,{{target_output_name}}{{output_extension}} -o $outfile {{libs}} {{inputs}} $target_ldflags" default_output_extension = ".so" } description = "SOLINK $outfile"