From 97dfba0c248674b1d0d9f4b89b4287249d78262a Mon Sep 17 00:00:00 2001 From: Zhuowei Zhang Date: Thu, 17 Dec 2015 23:48:09 -0500 Subject: [PATCH] android: do not add rpaths when linking the dynamic linker doesn't understand them and spams warnings. --- cmake/modules/AddSwift.cmake | 2 +- lib/Driver/ToolChains.cpp | 16 +++++++++------- 2 files changed, 10 insertions(+), 8 deletions(-) diff --git a/cmake/modules/AddSwift.cmake b/cmake/modules/AddSwift.cmake index a3ec10f55ea34..14a5b68c6a524 100644 --- a/cmake/modules/AddSwift.cmake +++ b/cmake/modules/AddSwift.cmake @@ -911,7 +911,7 @@ function(_add_swift_library_single target name) set_target_properties("${target}" PROPERTIES INSTALL_NAME_DIR "${install_name_dir}") - elseif("${CMAKE_SYSTEM_NAME}" STREQUAL "Linux") + elseif("${CMAKE_SYSTEM_NAME}" STREQUAL "Linux" AND NOT "${SWIFTLIB_SINGLE_SDK}" STREQUAL "ANDROID") set_target_properties("${target}" PROPERTIES INSTALL_RPATH "$ORIGIN:/usr/lib/swift/linux") diff --git a/lib/Driver/ToolChains.cpp b/lib/Driver/ToolChains.cpp index 3e2b0689bdcc1..58ea181d96537 100644 --- a/lib/Driver/ToolChains.cpp +++ b/lib/Driver/ToolChains.cpp @@ -1033,15 +1033,17 @@ toolchains::Linux::constructInvocation(const LinkJobAction &job, Arguments.push_back("-lgcc"); Arguments.push_back("-lc"); + } else { + // rpaths are not supported on Android. + + // FIXME: We probably shouldn't be adding an rpath here unless we know ahead + // of time the standard library won't be copied. + Arguments.push_back("-Xlinker"); + Arguments.push_back("-rpath"); + Arguments.push_back("-Xlinker"); + Arguments.push_back(context.Args.MakeArgString(RuntimeLibPath)); } - // FIXME: We probably shouldn't be adding an rpath here unless we know ahead - // of time the standard library won't be copied. - Arguments.push_back("-Xlinker"); - Arguments.push_back("-rpath"); - Arguments.push_back("-Xlinker"); - Arguments.push_back(context.Args.MakeArgString(RuntimeLibPath)); - // Always add the stdlib Arguments.push_back("-lswiftCore");