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"`
|
VariantIsStatic bool `blueprint:"mutated"`
|
||||||
VariantIsStaticBinary 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{} {
|
func (linker *baseLinker) props() []interface{} {
|
||||||
return []interface{}{&linker.Properties, &linker.dynamicProperties}
|
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 {
|
if flags.Clang {
|
||||||
flags.LdFlags = append(flags.LdFlags, toolchain.ToolchainClangLdflags())
|
flags.LdFlags = append(flags.LdFlags, toolchain.ToolchainClangLdflags())
|
||||||
} else {
|
} else {
|
||||||
@@ -1781,6 +1800,16 @@ type testLinker struct {
|
|||||||
Properties TestLinkerProperties
|
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{} {
|
func (test *testLinker) props() []interface{} {
|
||||||
return append(test.binaryLinker.props(), &test.Properties)
|
return append(test.binaryLinker.props(), &test.Properties)
|
||||||
}
|
}
|
||||||
|
@@ -57,14 +57,10 @@ var (
|
|||||||
|
|
||||||
darwinX86Ldflags = []string{
|
darwinX86Ldflags = []string{
|
||||||
"-m32",
|
"-m32",
|
||||||
"-Wl,-rpath,@loader_path/../lib",
|
|
||||||
"-Wl,-rpath,@loader_path/lib",
|
|
||||||
}
|
}
|
||||||
|
|
||||||
darwinX8664Ldflags = []string{
|
darwinX8664Ldflags = []string{
|
||||||
"-m64",
|
"-m64",
|
||||||
"-Wl,-rpath,@loader_path/../lib64",
|
|
||||||
"-Wl,-rpath,@loader_path/lib64",
|
|
||||||
}
|
}
|
||||||
|
|
||||||
darwinClangCflags = append(clangFilterUnknownCflags(darwinCflags), []string{
|
darwinClangCflags = append(clangFilterUnknownCflags(darwinCflags), []string{
|
||||||
|
@@ -56,14 +56,10 @@ var (
|
|||||||
|
|
||||||
linuxX86Ldflags = []string{
|
linuxX86Ldflags = []string{
|
||||||
"-m32",
|
"-m32",
|
||||||
`-Wl,-rpath,\$$ORIGIN/../lib`,
|
|
||||||
`-Wl,-rpath,\$$ORIGIN/lib`,
|
|
||||||
}
|
}
|
||||||
|
|
||||||
linuxX8664Ldflags = []string{
|
linuxX8664Ldflags = []string{
|
||||||
"-m64",
|
"-m64",
|
||||||
`-Wl,-rpath,\$$ORIGIN/../lib64`,
|
|
||||||
`-Wl,-rpath,\$$ORIGIN/lib64`,
|
|
||||||
}
|
}
|
||||||
|
|
||||||
linuxClangCflags = append(clangFilterUnknownCflags(linuxCflags), []string{
|
linuxClangCflags = append(clangFilterUnknownCflags(linuxCflags), []string{
|
||||||
|
Reference in New Issue
Block a user