aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorGravatar hlopko <hlopko@google.com>2018-02-23 08:52:08 -0800
committerGravatar Copybara-Service <copybara-piper@google.com>2018-02-23 08:53:36 -0800
commitf98a7a2fedb3e714cef1038dcb85f83731150246 (patch)
treeca657f7ac90978b25d315852875f14ce5856ad2c
parent5061b090f4e680996685ac71a7f4ebfb36c33544 (diff)
Put @loader_path, not $ORIGIN into rpath flags on mac
Fixes 4480. RELNOTES: None. PiperOrigin-RevId: 186774229
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/cpp/CppActionConfigs.java10
-rwxr-xr-xtools/cpp/osx_cc_wrapper.sh2
-rw-r--r--tools/cpp/osx_cc_wrapper.sh.tpl2
-rw-r--r--tools/osx/crosstool/CROSSTOOL.tpl20
4 files changed, 20 insertions, 14 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/rules/cpp/CppActionConfigs.java b/src/main/java/com/google/devtools/build/lib/rules/cpp/CppActionConfigs.java
index a12e21ddad..0ed940b78b 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/cpp/CppActionConfigs.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/cpp/CppActionConfigs.java
@@ -583,16 +583,22 @@ public class CppActionConfigs {
" flag_group {",
" iterate_over: 'runtime_library_search_directories'",
" flag_group {",
- // TODO(b/27153401): This should probably be @loader_path on osx.
+
ifTrue(
supportsEmbeddedRuntimes,
" expand_if_all_available: 'is_cc_test_link_action'",
+ // TODO(b/27153401): This should probably be @loader_path on osx.
" flag: ",
" '-Wl,-rpath,$EXEC_ORIGIN/%{runtime_library_search_directories}'",
" }",
" flag_group {",
" expand_if_all_available: 'is_not_cc_test_link_action'"),
- " flag: '-Wl,-rpath,$ORIGIN/%{runtime_library_search_directories}'",
+ ifLinux(
+ platform,
+ " flag: '-Wl,-rpath,$ORIGIN/%{runtime_library_search_directories}'"),
+ ifMac(
+ platform,
+ " flag: '-Wl,-rpath,@loader_path/%{runtime_library_search_directories}'"),
" }",
" }",
" }",
diff --git a/tools/cpp/osx_cc_wrapper.sh b/tools/cpp/osx_cc_wrapper.sh
index 800bc05508..207bcefd78 100755
--- a/tools/cpp/osx_cc_wrapper.sh
+++ b/tools/cpp/osx_cc_wrapper.sh
@@ -42,7 +42,7 @@ for i in "$@"; do
LIBS="${BASH_REMATCH[1]} $LIBS"
elif [[ "$i" =~ ^-L(.*)$ ]]; then
LIB_DIRS="${BASH_REMATCH[1]} $LIB_DIRS"
- elif [[ "$i" =~ ^-Wl,-rpath,\$ORIGIN/(.*)$ ]]; then
+ elif [[ "$i" =~ ^-Wl,-rpath,\@loader_path/(.*)$ ]]; then
RPATHS="${BASH_REMATCH[1]} ${RPATHS}"
elif [[ "$i" = "-o" ]]; then
# output is coming
diff --git a/tools/cpp/osx_cc_wrapper.sh.tpl b/tools/cpp/osx_cc_wrapper.sh.tpl
index 2df827a689..4c85cd9b6b 100644
--- a/tools/cpp/osx_cc_wrapper.sh.tpl
+++ b/tools/cpp/osx_cc_wrapper.sh.tpl
@@ -41,7 +41,7 @@ for i in "$@"; do
LIBS="${BASH_REMATCH[1]} $LIBS"
elif [[ "$i" =~ ^-L(.*)$ ]]; then
LIB_DIRS="${BASH_REMATCH[1]} $LIB_DIRS"
- elif [[ "$i" =~ ^-Wl,-rpath,\$ORIGIN/(.*)$ ]]; then
+ elif [[ "$i" =~ ^-Wl,-rpath,\@loader_path/(.*)$ ]]; then
RPATHS="${BASH_REMATCH[1]} ${RPATHS}"
elif [[ "$i" = "-o" ]]; then
# output is coming
diff --git a/tools/osx/crosstool/CROSSTOOL.tpl b/tools/osx/crosstool/CROSSTOOL.tpl
index 8499e0096b..3e8153e6e3 100644
--- a/tools/osx/crosstool/CROSSTOOL.tpl
+++ b/tools/osx/crosstool/CROSSTOOL.tpl
@@ -353,7 +353,7 @@ toolchain {
action: "c++-link-pic-static-library"
action: "c++-link-alwayslink-pic-static-library"
flag_group {
- flag: "-Wl,-rpath,$ORIGIN/%{runtime_library_search_directories}"
+ flag: "-Wl,-rpath,@loader_path/%{runtime_library_search_directories}"
iterate_over: "runtime_library_search_directories"
}
expand_if_all_available: "runtime_library_search_directories"
@@ -2062,7 +2062,7 @@ toolchain {
action: "c++-link-pic-static-library"
action: "c++-link-alwayslink-pic-static-library"
flag_group {
- flag: "-Wl,-rpath,$ORIGIN/%{runtime_library_search_directories}"
+ flag: "-Wl,-rpath,@loader_path/%{runtime_library_search_directories}"
iterate_over: "runtime_library_search_directories"
}
expand_if_all_available: "runtime_library_search_directories"
@@ -3778,7 +3778,7 @@ toolchain {
action: "c++-link-pic-static-library"
action: "c++-link-alwayslink-pic-static-library"
flag_group {
- flag: "-Wl,-rpath,$ORIGIN/%{runtime_library_search_directories}"
+ flag: "-Wl,-rpath,@loader_path/%{runtime_library_search_directories}"
iterate_over: "runtime_library_search_directories"
}
expand_if_all_available: "runtime_library_search_directories"
@@ -5497,7 +5497,7 @@ toolchain {
action: "c++-link-pic-static-library"
action: "c++-link-alwayslink-pic-static-library"
flag_group {
- flag: "-Wl,-rpath,$ORIGIN/%{runtime_library_search_directories}"
+ flag: "-Wl,-rpath,@loader_path/%{runtime_library_search_directories}"
iterate_over: "runtime_library_search_directories"
}
expand_if_all_available: "runtime_library_search_directories"
@@ -7243,7 +7243,7 @@ toolchain {
action: "c++-link-pic-static-library"
action: "c++-link-alwayslink-pic-static-library"
flag_group {
- flag: "-Wl,-rpath,$ORIGIN/%{runtime_library_search_directories}"
+ flag: "-Wl,-rpath,@loader_path/%{runtime_library_search_directories}"
iterate_over: "runtime_library_search_directories"
}
expand_if_all_available: "runtime_library_search_directories"
@@ -8959,7 +8959,7 @@ toolchain {
action: "c++-link-pic-static-library"
action: "c++-link-alwayslink-pic-static-library"
flag_group {
- flag: "-Wl,-rpath,$ORIGIN/%{runtime_library_search_directories}"
+ flag: "-Wl,-rpath,@loader_path/%{runtime_library_search_directories}"
iterate_over: "runtime_library_search_directories"
}
expand_if_all_available: "runtime_library_search_directories"
@@ -10663,7 +10663,7 @@ toolchain {
action: "c++-link-pic-static-library"
action: "c++-link-alwayslink-pic-static-library"
flag_group {
- flag: "-Wl,-rpath,$ORIGIN/%{runtime_library_search_directories}"
+ flag: "-Wl,-rpath,@loader_path/%{runtime_library_search_directories}"
iterate_over: "runtime_library_search_directories"
}
expand_if_all_available: "runtime_library_search_directories"
@@ -12370,7 +12370,7 @@ toolchain {
action: "c++-link-pic-static-library"
action: "c++-link-alwayslink-pic-static-library"
flag_group {
- flag: "-Wl,-rpath,$ORIGIN/%{runtime_library_search_directories}"
+ flag: "-Wl,-rpath,@loader_path/%{runtime_library_search_directories}"
iterate_over: "runtime_library_search_directories"
}
expand_if_all_available: "runtime_library_search_directories"
@@ -14104,7 +14104,7 @@ toolchain {
action: "c++-link-pic-static-library"
action: "c++-link-alwayslink-pic-static-library"
flag_group {
- flag: "-Wl,-rpath,$ORIGIN/%{runtime_library_search_directories}"
+ flag: "-Wl,-rpath,@loader_path/%{runtime_library_search_directories}"
iterate_over: "runtime_library_search_directories"
}
expand_if_all_available: "runtime_library_search_directories"
@@ -15811,7 +15811,7 @@ toolchain {
action: "c++-link-pic-static-library"
action: "c++-link-alwayslink-pic-static-library"
flag_group {
- flag: "-Wl,-rpath,$ORIGIN/%{runtime_library_search_directories}"
+ flag: "-Wl,-rpath,@loader_path/%{runtime_library_search_directories}"
iterate_over: "runtime_library_search_directories"
}
expand_if_all_available: "runtime_library_search_directories"