diff --git a/cc/cc.go b/cc/cc.go
index 56655b9..3b3128f 100644
--- a/cc/cc.go
+++ b/cc/cc.go
@@ -1086,9 +1086,17 @@
 		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 @@
 		}
 	}
 
+	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 @@
 	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)
 }
diff --git a/cc/x86_darwin_host.go b/cc/x86_darwin_host.go
index 87e50b0..559a9a5 100644
--- a/cc/x86_darwin_host.go
+++ b/cc/x86_darwin_host.go
@@ -57,14 +57,10 @@
 
 	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{
diff --git a/cc/x86_linux_host.go b/cc/x86_linux_host.go
index e05d2a5..e33862d 100644
--- a/cc/x86_linux_host.go
+++ b/cc/x86_linux_host.go
@@ -56,14 +56,10 @@
 
 	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{
