Skip to content

Commit 6a0a199

Browse files
authored
Merge pull request #7777 from gonzalolarralde/master
2 parents 9a29edf + 6890579 commit 6a0a199

File tree

3 files changed

+18
-11
lines changed

3 files changed

+18
-11
lines changed

CMakeLists.txt

Lines changed: 15 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -800,6 +800,21 @@ endif()
800800
# Should we cross-compile the standard library for Android?
801801
is_sdk_requested(ANDROID swift_build_android)
802802
if(swift_build_android AND NOT "${SWIFT_ANDROID_NDK_PATH}" STREQUAL "")
803+
# Get the prebuilt suffix to create the correct toolchain path when using the NDK
804+
if("${CMAKE_SYSTEM_NAME}" STREQUAL "Darwin")
805+
set(_swift_android_prebuilt_suffix "darwin-x86_64")
806+
elseif("${CMAKE_SYSTEM_NAME}" STREQUAL "Linux")
807+
set(_swift_android_prebuilt_suffix "linux-x86_64")
808+
endif()
809+
810+
set(SWIFT_ANDROID_PREBUILT_PATH
811+
"${SWIFT_ANDROID_NDK_PATH}/toolchains/arm-linux-androideabi-${SWIFT_ANDROID_NDK_GCC_VERSION}/prebuilt/${_swift_android_prebuilt_suffix}")
812+
813+
# Resolve the correct linker based on the file name of CMAKE_LINKER (being 'ld' or 'ld.gold' the options)
814+
get_filename_component(SWIFT_ANDROID_LINKER_NAME "${CMAKE_LINKER}" NAME)
815+
set(SWIFT_SDK_ANDROID_ARCH_armv7_LINKER
816+
"${SWIFT_ANDROID_NDK_PATH}/toolchains/arm-linux-androideabi-${SWIFT_ANDROID_NDK_GCC_VERSION}/prebuilt/${_swift_android_prebuilt_suffix}/bin/arm-linux-androideabi-${SWIFT_ANDROID_LINKER_NAME}")
817+
803818
configure_sdk_unix(ANDROID "Android" "android" "android" "armv7" "armv7-none-linux-androideabi" "${SWIFT_ANDROID_SDK_PATH}")
804819

805820
if (NOT ("${CMAKE_SYSTEM_NAME}" STREQUAL "Darwin" OR "${CMAKE_SYSTEM_NAME}" STREQUAL "Linux"))
@@ -809,14 +824,6 @@ if(swift_build_android AND NOT "${SWIFT_ANDROID_NDK_PATH}" STREQUAL "")
809824
set(SWIFT_PRIMARY_VARIANT_SDK_default "ANDROID")
810825
set(SWIFT_PRIMARY_VARIANT_ARCH_default "armv7")
811826
endif()
812-
813-
if("${CMAKE_SYSTEM_NAME}" STREQUAL "Darwin")
814-
set(_swift_android_prebuilt_suffix "darwin-x86_64")
815-
elseif("${CMAKE_SYSTEM_NAME}" STREQUAL "Linux")
816-
set(_swift_android_prebuilt_suffix "linux-x86_64")
817-
endif()
818-
set(SWIFT_ANDROID_PREBUILT_PATH
819-
"${SWIFT_ANDROID_NDK_PATH}/toolchains/arm-linux-androideabi-${SWIFT_ANDROID_NDK_GCC_VERSION}/prebuilt/${_swift_android_prebuilt_suffix}")
820827
endif()
821828

822829
# Should we cross-compile the standard library for Windows?

cmake/modules/SwiftConfigureSDK.cmake

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ function(_report_sdk prefix)
2323
message(STATUS " Architectures: ${SWIFT_SDK_${prefix}_ARCHITECTURES}")
2424
message(STATUS " Object Format: ${SWIFT_SDK_${prefix}_OBJECT_FORMAT}")
2525
foreach(arch ${SWIFT_SDK_${prefix}_ARCHITECTURES})
26-
if(${SWIFT_SDK_${prefix}_ARCH_${arch}_LINKER})
26+
if(SWIFT_SDK_${prefix}_ARCH_${arch}_LINKER)
2727
message(STATUS " Linker (${arch}): ${SWIFT_SDK_${prefix}_ARCH_${arch}_LINKER}")
2828
else()
2929
message(STATUS " Linker (${arch}): ${CMAKE_LINKER}")

stdlib/public/runtime/CMakeLists.txt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -165,8 +165,8 @@ foreach(sdk ${ELFISH_SDKS})
165165
set(section_magic_end_obj "${CMAKE_CURRENT_BINARY_DIR}/CMakeFiles/section_magic_end-${arch_suffix}.dir/swift_sections.S${CMAKE_C_OUTPUT_EXTENSION}")
166166

167167
set(ld_EXECUTABLE ${CMAKE_LINKER})
168-
if(${SWIFT_SDK_${prefix}_ARCH_${arch}_LINKER})
169-
set(ld_EXECUTABLE ${SWIFT_SDK_${prefix}_ARCH_${arch}_LINKER})
168+
if(SWIFT_SDK_${sdk}_ARCH_${arch}_LINKER)
169+
set(ld_EXECUTABLE ${SWIFT_SDK_${sdk}_ARCH_${arch}_LINKER})
170170
endif()
171171

172172
add_custom_command_target(section_magic_${arch_suffix}_begin_object

0 commit comments

Comments
 (0)