diff options
author | 2018-02-23 08:52:08 -0800 | |
---|---|---|
committer | 2018-02-23 08:53:36 -0800 | |
commit | f98a7a2fedb3e714cef1038dcb85f83731150246 (patch) | |
tree | ca657f7ac90978b25d315852875f14ce5856ad2c | |
parent | 5061b090f4e680996685ac71a7f4ebfb36c33544 (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.java | 10 | ||||
-rwxr-xr-x | tools/cpp/osx_cc_wrapper.sh | 2 | ||||
-rw-r--r-- | tools/cpp/osx_cc_wrapper.sh.tpl | 2 | ||||
-rw-r--r-- | tools/osx/crosstool/CROSSTOOL.tpl | 20 |
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" |