Move runpaths out of global ldflags
am: d30e610
* commit 'd30e610ef24425596d1787755b6f952bb04b6c1d':
Move runpaths out of global ldflags
Change-Id: I6a486e2c3582b295dabb3585733dc013186a07d3
This commit is contained in:
31
cc/cc.go
31
cc/cc.go
@@ -1086,9 +1086,17 @@ type baseLinker struct {
|
||||
VariantIsStatic bool `blueprint:"mutated"`
|
||||
VariantIsStaticBinary bool `blueprint:"mutated"`
|
||||
}
|
||||
|
||||
runPaths []string
|
||||
}
|
||||
|
||||
func (linker *baseLinker) begin(ctx BaseModuleContext) {}
|
||||
func (linker *baseLinker) begin(ctx BaseModuleContext) {
|
||||
if ctx.toolchain().Is64Bit() {
|
||||
linker.runPaths = []string{"../lib64", "lib64"}
|
||||
} else {
|
||||
linker.runPaths = []string{"../lib", "lib"}
|
||||
}
|
||||
}
|
||||
|
||||
func (linker *baseLinker) props() []interface{} {
|
||||
return []interface{}{&linker.Properties, &linker.dynamicProperties}
|
||||
@@ -1152,6 +1160,17 @@ func (linker *baseLinker) flags(ctx ModuleContext, flags Flags) Flags {
|
||||
}
|
||||
}
|
||||
|
||||
if ctx.Host() && !linker.static() {
|
||||
rpath_prefix := `\$$ORIGIN/`
|
||||
if ctx.Darwin() {
|
||||
rpath_prefix = "@loader_path/"
|
||||
}
|
||||
|
||||
for _, rpath := range linker.runPaths {
|
||||
flags.LdFlags = append(flags.LdFlags, "-Wl,-rpath,"+rpath_prefix+rpath)
|
||||
}
|
||||
}
|
||||
|
||||
if flags.Clang {
|
||||
flags.LdFlags = append(flags.LdFlags, toolchain.ToolchainClangLdflags())
|
||||
} else {
|
||||
@@ -1781,6 +1800,16 @@ type testLinker struct {
|
||||
Properties TestLinkerProperties
|
||||
}
|
||||
|
||||
func (test *testLinker) begin(ctx BaseModuleContext) {
|
||||
test.binaryLinker.begin(ctx)
|
||||
|
||||
runpath := "../../lib"
|
||||
if ctx.toolchain().Is64Bit() {
|
||||
runpath += "64"
|
||||
}
|
||||
test.runPaths = append([]string{runpath}, test.runPaths...)
|
||||
}
|
||||
|
||||
func (test *testLinker) props() []interface{} {
|
||||
return append(test.binaryLinker.props(), &test.Properties)
|
||||
}
|
||||
|
@@ -57,14 +57,10 @@ var (
|
||||
|
||||
darwinX86Ldflags = []string{
|
||||
"-m32",
|
||||
"-Wl,-rpath,@loader_path/../lib",
|
||||
"-Wl,-rpath,@loader_path/lib",
|
||||
}
|
||||
|
||||
darwinX8664Ldflags = []string{
|
||||
"-m64",
|
||||
"-Wl,-rpath,@loader_path/../lib64",
|
||||
"-Wl,-rpath,@loader_path/lib64",
|
||||
}
|
||||
|
||||
darwinClangCflags = append(clangFilterUnknownCflags(darwinCflags), []string{
|
||||
|
@@ -56,14 +56,10 @@ var (
|
||||
|
||||
linuxX86Ldflags = []string{
|
||||
"-m32",
|
||||
`-Wl,-rpath,\$$ORIGIN/../lib`,
|
||||
`-Wl,-rpath,\$$ORIGIN/lib`,
|
||||
}
|
||||
|
||||
linuxX8664Ldflags = []string{
|
||||
"-m64",
|
||||
`-Wl,-rpath,\$$ORIGIN/../lib64`,
|
||||
`-Wl,-rpath,\$$ORIGIN/lib64`,
|
||||
}
|
||||
|
||||
linuxClangCflags = append(clangFilterUnknownCflags(linuxCflags), []string{
|
||||
|
Reference in New Issue
Block a user