Skip to content

Commit 20f5e68

Browse files
committed
Add missing swift-6 android build fixes
(cherry-picked from commit 7815f84) (cherry-picked from commit 7a5a0aa)
1 parent 60ed12e commit 20f5e68

File tree

4 files changed

+42
-26
lines changed

4 files changed

+42
-26
lines changed

stdlib/cmake/modules/AddSwiftStdlib.cmake

Lines changed: 15 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -553,13 +553,16 @@ function(_add_target_variant_link_flags)
553553
list(APPEND link_libraries "dl" "log")
554554
# We need to add the math library, which is linked implicitly by libc++
555555
list(APPEND result "-lm")
556-
if(NOT "${SWIFT_ANDROID_NDK_PATH}" STREQUAL "")
557-
if("${SWIFT_ANDROID_NDK_PATH}" MATCHES "r26")
558-
file(GLOB RESOURCE_DIR ${SWIFT_SDK_ANDROID_ARCH_${LFLAGS_ARCH}_PATH}/../lib/clang/*)
559-
else()
560-
file(GLOB RESOURCE_DIR ${SWIFT_SDK_ANDROID_ARCH_${LFLAGS_ARCH}_PATH}/../lib64/clang/*)
556+
if(NOT CMAKE_HOST_SYSTEM MATCHES Windows)
557+
# The Android resource dir is specified from build.ps1 on windows.
558+
if(NOT "${SWIFT_ANDROID_NDK_PATH}" STREQUAL "")
559+
if("${SWIFT_ANDROID_NDK_PATH}" MATCHES "r26")
560+
file(GLOB RESOURCE_DIR ${SWIFT_SDK_ANDROID_ARCH_${LFLAGS_ARCH}_PATH}/../lib/clang/*)
561+
else()
562+
file(GLOB RESOURCE_DIR ${SWIFT_SDK_ANDROID_ARCH_${LFLAGS_ARCH}_PATH}/../lib64/clang/*)
563+
endif()
564+
list(APPEND result "-resource-dir=${RESOURCE_DIR}")
561565
endif()
562-
list(APPEND result "-resource-dir=${RESOURCE_DIR}")
563566
endif()
564567

565568
# link against the custom C++ library
@@ -3233,9 +3236,14 @@ function(add_swift_target_executable name)
32333236
# it tries to build swift-backtrace it fails because *the compiler*
32343237
# refers to a libswiftCore.so that can't be found.
32353238

3239+
if(SWIFTEXE_TARGET_NOSWIFTRT)
3240+
set(NOSWIFTRT_KEYWORD "NOSWIFTRT")
3241+
else()
3242+
set(NOSWIFTRT_KEYWORD "")
3243+
endif()
32363244
_add_swift_target_executable_single(
32373245
${VARIANT_NAME}
3238-
${SWIFTEXE_TARGET_NOSWIFTRT_keyword}
3246+
${NOSWIFTRT_KEYWORD}
32393247
${SWIFTEXE_TARGET_SOURCES}
32403248
DEPENDS
32413249
${SWIFTEXE_TARGET_DEPENDS_with_suffix}
Lines changed: 22 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1,25 +1,28 @@
1-
if(CMAKE_SYSTEM_NAME STREQUAL "Darwin")
2-
set(BUILTIN_FLOAT_SWIFT_FLAGS -Xfrontend -module-abi-name -Xfrontend Darwin)
3-
else()
4-
set(BUILTIN_FLOAT_SWIFT_FLAGS)
5-
endif()
1+
if(NOT DEFINED SWIFT_BUILD_CLANG_OVERLAYS_SKIP_BUILTIN_FLOAT OR NOT SWIFT_BUILD_CLANG_OVERLAYS_SKIP_BUILTIN_FLOAT)
2+
3+
if(CMAKE_SYSTEM_NAME STREQUAL "Darwin")
4+
set(BUILTIN_FLOAT_SWIFT_FLAGS -Xfrontend -module-abi-name -Xfrontend Darwin)
5+
else()
6+
set(BUILTIN_FLOAT_SWIFT_FLAGS)
7+
endif()
68

7-
add_swift_target_library(swift_Builtin_float
8-
${SWIFT_STDLIB_LIBRARY_BUILD_TYPES}
9-
IS_SDK_OVERLAY
9+
add_swift_target_library(swift_Builtin_float
10+
${SWIFT_STDLIB_LIBRARY_BUILD_TYPES}
11+
IS_SDK_OVERLAY
1012

11-
linker-support/magic-symbols-for-install-name.c
13+
linker-support/magic-symbols-for-install-name.c
1214

13-
GYB_SOURCES
14-
float.swift.gyb
15+
GYB_SOURCES
16+
float.swift.gyb
1517

16-
SWIFT_COMPILE_FLAGS
17-
${SWIFT_RUNTIME_SWIFT_COMPILE_FLAGS}
18-
${SWIFT_STANDARD_LIBRARY_SWIFT_FLAGS}
19-
${BUILTIN_FLOAT_SWIFT_FLAGS}
18+
SWIFT_COMPILE_FLAGS
19+
${SWIFT_RUNTIME_SWIFT_COMPILE_FLAGS}
20+
${SWIFT_STANDARD_LIBRARY_SWIFT_FLAGS}
21+
${BUILTIN_FLOAT_SWIFT_FLAGS}
2022

21-
LINK_FLAGS
22-
${SWIFT_RUNTIME_SWIFT_LINK_FLAGS}
23+
LINK_FLAGS
24+
${SWIFT_RUNTIME_SWIFT_LINK_FLAGS}
2325

24-
INSTALL_IN_COMPONENT stdlib
25-
MACCATALYST_BUILD_FLAVOR zippered)
26+
INSTALL_IN_COMPONENT stdlib
27+
MACCATALYST_BUILD_FLAVOR zippered)
28+
endif()

stdlib/public/Concurrency/DispatchGlobalExecutor.inc

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,13 +47,17 @@ struct MinimalDispatchObjectHeader {
4747
int Opaque1;
4848
void *Linkage;
4949
};
50+
51+
#pragma clang diagnostic push
52+
#pragma clang diagnostic ignored "-Wgnu-offsetof-extensions"
5053
static_assert(
5154
offsetof(Job, metadata) == offsetof(MinimalDispatchObjectHeader, VTable),
5255
"Job Metadata field must match location of Dispatch VTable field.");
5356
static_assert(offsetof(Job, SchedulerPrivate[Job::DispatchLinkageIndex]) ==
5457
offsetof(MinimalDispatchObjectHeader, Linkage),
5558
"Dispatch Linkage field must match Job "
5659
"SchedulerPrivate[DispatchLinkageIndex].");
60+
#pragma clang diagnostic pop
5761

5862
/// The function passed to dispatch_async_f to execute a job.
5963
static void __swift_run_job(void *_job) {

stdlib/tools/swift-reflection-test/CMakeLists.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
add_swift_target_executable(swift-reflection-test BUILD_WITH_STDLIB
2+
NOSWIFTRT
23
swift-reflection-test.c
34
overrides.c
45
LINK_LIBRARIES

0 commit comments

Comments
 (0)