Skip to content

Commit 7a5a0aa

Browse files
committed
[android] misc stdlib build fixes
1 parent 81d1fdd commit 7a5a0aa

File tree

3 files changed

+20
-7
lines changed

3 files changed

+20
-7
lines changed

stdlib/cmake/modules/AddSwiftStdlib.cmake

Lines changed: 15 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -541,13 +541,16 @@ function(_add_target_variant_link_flags)
541541
list(APPEND link_libraries "dl" "log")
542542
# We need to add the math library, which is linked implicitly by libc++
543543
list(APPEND result "-lm")
544-
if(NOT "${SWIFT_ANDROID_NDK_PATH}" STREQUAL "")
545-
if("${SWIFT_ANDROID_NDK_PATH}" MATCHES "r26")
546-
file(GLOB RESOURCE_DIR ${SWIFT_SDK_ANDROID_ARCH_${LFLAGS_ARCH}_PATH}/../lib/clang/*)
547-
else()
548-
file(GLOB RESOURCE_DIR ${SWIFT_SDK_ANDROID_ARCH_${LFLAGS_ARCH}_PATH}/../lib64/clang/*)
544+
if(NOT CMAKE_HOST_SYSTEM MATCHES Windows)
545+
# The Android resource dir is specified from build.ps1 on windows.
546+
if(NOT "${SWIFT_ANDROID_NDK_PATH}" STREQUAL "")
547+
if("${SWIFT_ANDROID_NDK_PATH}" MATCHES "r26")
548+
file(GLOB RESOURCE_DIR ${SWIFT_SDK_ANDROID_ARCH_${LFLAGS_ARCH}_PATH}/../lib/clang/*)
549+
else()
550+
file(GLOB RESOURCE_DIR ${SWIFT_SDK_ANDROID_ARCH_${LFLAGS_ARCH}_PATH}/../lib64/clang/*)
551+
endif()
552+
list(APPEND result "-resource-dir=${RESOURCE_DIR}")
549553
endif()
550-
list(APPEND result "-resource-dir=${RESOURCE_DIR}")
551554
endif()
552555

553556
# link against the custom C++ library
@@ -3062,9 +3065,14 @@ function(add_swift_target_executable name)
30623065
# it tries to build swift-backtrace it fails because *the compiler*
30633066
# refers to a libswiftCore.so that can't be found.
30643067

3068+
if(SWIFTEXE_TARGET_NOSWIFTRT)
3069+
set(NOSWIFTRT_KEYWORD "NOSWIFTRT")
3070+
else()
3071+
set(NOSWIFTRT_KEYWORD "")
3072+
endif()
30653073
_add_swift_target_executable_single(
30663074
${VARIANT_NAME}
3067-
${SWIFTEXE_TARGET_NOSWIFTRT_keyword}
3075+
${NOSWIFTRT_KEYWORD}
30683076
${SWIFTEXE_TARGET_SOURCES}
30693077
DEPENDS
30703078
${SWIFTEXE_TARGET_DEPENDS_with_suffix}

stdlib/public/Concurrency/DispatchGlobalExecutor.inc

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,13 +42,17 @@ struct MinimalDispatchObjectHeader {
4242
int Opaque1;
4343
void *Linkage;
4444
};
45+
46+
#pragma clang diagnostic push
47+
#pragma clang diagnostic ignored "-Wgnu-offsetof-extensions"
4548
static_assert(
4649
offsetof(Job, metadata) == offsetof(MinimalDispatchObjectHeader, VTable),
4750
"Job Metadata field must match location of Dispatch VTable field.");
4851
static_assert(offsetof(Job, SchedulerPrivate[Job::DispatchLinkageIndex]) ==
4952
offsetof(MinimalDispatchObjectHeader, Linkage),
5053
"Dispatch Linkage field must match Job "
5154
"SchedulerPrivate[DispatchLinkageIndex].");
55+
#pragma clang diagnostic pop
5256

5357
/// The function passed to dispatch_async_f to execute a job.
5458
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)