From 4fb99998aefcfd5ded8afb153856e6d4251e05f4 Mon Sep 17 00:00:00 2001 From: Mike Ash Date: Wed, 14 Nov 2018 15:42:12 -0500 Subject: [PATCH 1/4] [Build] Use magic linker symbols to specify an @rpath-relative install name when targeting pre-stable-ABI OSes. Magic symbols of the form $ld$install_name$os9.0$@rpath/libswiftCore.dylib tell the linker to use that install name when targeting that OS version. Use these symbols to specify an @rpath install name for all back-deployment libraries when targeting watchOS 2.0-5.1, iOS 7.0-12.1, and macOS 10.9-10.14. rdar://problem/45027809 --- .../magic-symbols-for-install-name.c | 85 +++++++++++++++++++ stdlib/private/SwiftPrivate/CMakeLists.txt | 2 + .../SwiftPrivateLibcExtras/CMakeLists.txt | 2 + .../SwiftPrivateThreadExtras/CMakeLists.txt | 2 + stdlib/public/Darwin/ARKit/CMakeLists.txt | 2 + .../public/Darwin/AVFoundation/CMakeLists.txt | 2 + .../public/Darwin/Accelerate/CMakeLists.txt | 2 + stdlib/public/Darwin/AppKit/CMakeLists.txt | 2 + .../Darwin/AssetsLibrary/CMakeLists.txt | 2 + stdlib/public/Darwin/CallKit/CMakeLists.txt | 2 + stdlib/public/Darwin/Contacts/CMakeLists.txt | 2 + stdlib/public/Darwin/CoreAudio/CMakeLists.txt | 2 + stdlib/public/Darwin/CoreData/CMakeLists.txt | 2 + .../Darwin/CoreFoundation/CMakeLists.txt | 2 + .../public/Darwin/CoreGraphics/CMakeLists.txt | 2 + stdlib/public/Darwin/CoreImage/CMakeLists.txt | 2 + .../public/Darwin/CoreLocation/CMakeLists.txt | 2 + .../Darwin/CryptoTokenKit/CMakeLists.txt | 2 + stdlib/public/Darwin/Dispatch/CMakeLists.txt | 2 + .../public/Darwin/Foundation/CMakeLists.txt | 2 + stdlib/public/Darwin/GLKit/CMakeLists.txt | 2 + .../public/Darwin/GameplayKit/CMakeLists.txt | 2 + stdlib/public/Darwin/HomeKit/CMakeLists.txt | 2 + stdlib/public/Darwin/IOKit/CMakeLists.txt | 2 + stdlib/public/Darwin/Intents/CMakeLists.txt | 2 + .../public/Darwin/MediaPlayer/CMakeLists.txt | 2 + stdlib/public/Darwin/Metal/CMakeLists.txt | 2 + stdlib/public/Darwin/MetalKit/CMakeLists.txt | 2 + stdlib/public/Darwin/ModelIO/CMakeLists.txt | 2 + .../Darwin/NaturalLanguage/CMakeLists.txt | 2 + stdlib/public/Darwin/Network/CMakeLists.txt | 2 + .../public/Darwin/ObjectiveC/CMakeLists.txt | 2 + stdlib/public/Darwin/OpenCL/CMakeLists.txt | 2 + stdlib/public/Darwin/Photos/CMakeLists.txt | 2 + .../public/Darwin/QuartzCore/CMakeLists.txt | 2 + .../Darwin/SafariServices/CMakeLists.txt | 2 + stdlib/public/Darwin/SceneKit/CMakeLists.txt | 2 + stdlib/public/Darwin/SpriteKit/CMakeLists.txt | 2 + stdlib/public/Darwin/UIKit/CMakeLists.txt | 2 + stdlib/public/Darwin/Vision/CMakeLists.txt | 2 + stdlib/public/Darwin/WatchKit/CMakeLists.txt | 2 + stdlib/public/Darwin/XPC/CMakeLists.txt | 2 + stdlib/public/Darwin/os/CMakeLists.txt | 2 + stdlib/public/Darwin/simd/CMakeLists.txt | 2 + stdlib/public/Platform/CMakeLists.txt | 2 + .../public/SwiftOnoneSupport/CMakeLists.txt | 3 + stdlib/public/core/CMakeLists.txt | 4 +- 47 files changed, 179 insertions(+), 1 deletion(-) create mode 100644 stdlib/linker-support/magic-symbols-for-install-name.c diff --git a/stdlib/linker-support/magic-symbols-for-install-name.c b/stdlib/linker-support/magic-symbols-for-install-name.c new file mode 100644 index 0000000000000..e083f0a866242 --- /dev/null +++ b/stdlib/linker-support/magic-symbols-for-install-name.c @@ -0,0 +1,85 @@ +//===--- magic-symbols-for-install-name.c - Magic linker directive symbols ===// +// +// This source file is part of the Swift.org open source project +// +// Copyright (c) 2014 - 2017 Apple Inc. and the Swift project authors +// Licensed under Apache License v2.0 with Runtime Library Exception +// +// See https://swift.org/LICENSE.txt for license information +// See https://swift.org/CONTRIBUTORS.txt for the list of Swift project authors +// +//===----------------------------------------------------------------------===// +// +// A file containing magic symbols that instruct the linker to use a +// different install name when targeting older OSes. This file gets +// compiled into all of the libraries that are embedded for backward +// deployment. +// +//===----------------------------------------------------------------------===// + +#if defined(__APPLE__) && defined(__MACH__) + +#include +#include "../public/SwiftShims/Visibility.h" + +#define RPATH_INSTALL_NAME_DIRECTIVE_IMPL2(name, major, minor) \ + SWIFT_RUNTIME_EXPORT const char install_name_ ## major ## _ ## minor \ + __asm("$ld$install_name$os" #major "." #minor "$@rpath/lib" #name ".dylib"); \ + const char install_name_ ## major ## _ ## minor = 0; + +#define RPATH_INSTALL_NAME_DIRECTIVE_IMPL(name, major, minor) \ + RPATH_INSTALL_NAME_DIRECTIVE_IMPL2(name, major, minor) + +#define RPATH_INSTALL_NAME_DIRECTIVE(major, minor) \ + RPATH_INSTALL_NAME_DIRECTIVE_IMPL(SWIFT_TARGET_LIBRARY_NAME, major, minor) + + +#if TARGET_OS_WATCH + // Check watchOS first, because TARGET_OS_IPHONE includes watchOS. + RPATH_INSTALL_NAME_DIRECTIVE( 2, 0) + RPATH_INSTALL_NAME_DIRECTIVE( 2, 1) + RPATH_INSTALL_NAME_DIRECTIVE( 2, 2) + RPATH_INSTALL_NAME_DIRECTIVE( 3, 0) + RPATH_INSTALL_NAME_DIRECTIVE( 3, 1) + RPATH_INSTALL_NAME_DIRECTIVE( 3, 2) + RPATH_INSTALL_NAME_DIRECTIVE( 4, 0) + RPATH_INSTALL_NAME_DIRECTIVE( 4, 1) + RPATH_INSTALL_NAME_DIRECTIVE( 4, 2) + RPATH_INSTALL_NAME_DIRECTIVE( 4, 3) + RPATH_INSTALL_NAME_DIRECTIVE( 5, 0) + RPATH_INSTALL_NAME_DIRECTIVE( 5, 1) +#elif TARGET_OS_IPHONE + RPATH_INSTALL_NAME_DIRECTIVE( 7, 0) + RPATH_INSTALL_NAME_DIRECTIVE( 7, 1) + RPATH_INSTALL_NAME_DIRECTIVE( 8, 0) + RPATH_INSTALL_NAME_DIRECTIVE( 8, 1) + RPATH_INSTALL_NAME_DIRECTIVE( 8, 2) + RPATH_INSTALL_NAME_DIRECTIVE( 8, 3) + RPATH_INSTALL_NAME_DIRECTIVE( 8, 4) + RPATH_INSTALL_NAME_DIRECTIVE( 9, 0) + RPATH_INSTALL_NAME_DIRECTIVE( 9, 1) + RPATH_INSTALL_NAME_DIRECTIVE( 9, 2) + RPATH_INSTALL_NAME_DIRECTIVE( 9, 3) + RPATH_INSTALL_NAME_DIRECTIVE(10, 0) + RPATH_INSTALL_NAME_DIRECTIVE(10, 1) + RPATH_INSTALL_NAME_DIRECTIVE(10, 2) + RPATH_INSTALL_NAME_DIRECTIVE(10, 3) + RPATH_INSTALL_NAME_DIRECTIVE(11, 0) + RPATH_INSTALL_NAME_DIRECTIVE(11, 1) + RPATH_INSTALL_NAME_DIRECTIVE(11, 2) + RPATH_INSTALL_NAME_DIRECTIVE(11, 3) + RPATH_INSTALL_NAME_DIRECTIVE(11, 4) + RPATH_INSTALL_NAME_DIRECTIVE(12, 0) + RPATH_INSTALL_NAME_DIRECTIVE(12, 1) +#elif TARGET_OS_OSX + RPATH_INSTALL_NAME_DIRECTIVE(10, 9) + RPATH_INSTALL_NAME_DIRECTIVE(10, 10) + RPATH_INSTALL_NAME_DIRECTIVE(10, 11) + RPATH_INSTALL_NAME_DIRECTIVE(10, 12) + RPATH_INSTALL_NAME_DIRECTIVE(10, 13) + RPATH_INSTALL_NAME_DIRECTIVE(10, 14) +#else + #error Unknown target. +#endif + +#endif // defined(__APPLE__) && defined(__MACH__) diff --git a/stdlib/private/SwiftPrivate/CMakeLists.txt b/stdlib/private/SwiftPrivate/CMakeLists.txt index 9d10a00352e03..738698f6a8182 100644 --- a/stdlib/private/SwiftPrivate/CMakeLists.txt +++ b/stdlib/private/SwiftPrivate/CMakeLists.txt @@ -10,6 +10,8 @@ add_swift_target_library(swiftSwiftPrivate ${SWIFT_STDLIB_LIBRARY_BUILD_TYPES} I IO.swift ShardedAtomicCounter.swift + "${SWIFT_SOURCE_DIR}/stdlib/linker-support/magic-symbols-for-install-name.c" + GYB_SOURCES AtomicInt.swift.gyb diff --git a/stdlib/private/SwiftPrivateLibcExtras/CMakeLists.txt b/stdlib/private/SwiftPrivateLibcExtras/CMakeLists.txt index e3355f04607cc..46111a89a7270 100644 --- a/stdlib/private/SwiftPrivateLibcExtras/CMakeLists.txt +++ b/stdlib/private/SwiftPrivateLibcExtras/CMakeLists.txt @@ -5,6 +5,8 @@ add_swift_target_library(swiftSwiftPrivateLibcExtras ${SWIFT_STDLIB_LIBRARY_BUIL Subprocess.c Subprocess.swift + "${SWIFT_SOURCE_DIR}/stdlib/linker-support/magic-symbols-for-install-name.c" + SWIFT_MODULE_DEPENDS SwiftPrivate SWIFT_COMPILE_FLAGS SWIFT_MODULE_DEPENDS_OSX Darwin diff --git a/stdlib/private/SwiftPrivateThreadExtras/CMakeLists.txt b/stdlib/private/SwiftPrivateThreadExtras/CMakeLists.txt index 8fa9e03311151..d5fd006f00e60 100644 --- a/stdlib/private/SwiftPrivateThreadExtras/CMakeLists.txt +++ b/stdlib/private/SwiftPrivateThreadExtras/CMakeLists.txt @@ -4,6 +4,8 @@ add_swift_target_library(swiftSwiftPrivateThreadExtras ${SWIFT_STDLIB_LIBRARY_BU SwiftPrivateThreadExtras.swift ThreadBarriers.swift + "${SWIFT_SOURCE_DIR}/stdlib/linker-support/magic-symbols-for-install-name.c" + SWIFT_MODULE_DEPENDS_IOS Darwin SWIFT_MODULE_DEPENDS_OSX Darwin SWIFT_MODULE_DEPENDS_TVOS Darwin diff --git a/stdlib/public/Darwin/ARKit/CMakeLists.txt b/stdlib/public/Darwin/ARKit/CMakeLists.txt index 63447e93020e2..c73c2c137f523 100644 --- a/stdlib/public/Darwin/ARKit/CMakeLists.txt +++ b/stdlib/public/Darwin/ARKit/CMakeLists.txt @@ -4,6 +4,8 @@ include("../../../../cmake/modules/StandaloneOverlay.cmake") add_swift_target_library(swiftARKit ${SWIFT_SDK_OVERLAY_LIBRARY_BUILD_TYPES} IS_SDK_OVERLAY ARKit.swift + "${SWIFT_SOURCE_DIR}/stdlib/linker-support/magic-symbols-for-install-name.c" + SWIFT_COMPILE_FLAGS "${SWIFT_RUNTIME_SWIFT_COMPILE_FLAGS}" LINK_FLAGS "${SWIFT_RUNTIME_SWIFT_LINK_FLAGS}" TARGET_SDKS IOS IOS_SIMULATOR diff --git a/stdlib/public/Darwin/AVFoundation/CMakeLists.txt b/stdlib/public/Darwin/AVFoundation/CMakeLists.txt index 974983dd576a8..7ea987d42d53c 100644 --- a/stdlib/public/Darwin/AVFoundation/CMakeLists.txt +++ b/stdlib/public/Darwin/AVFoundation/CMakeLists.txt @@ -9,6 +9,8 @@ add_swift_target_library(swiftAVFoundation ${SWIFT_SDK_OVERLAY_LIBRARY_BUILD_TYP AVError.swift AVMetadataObject.swift + "${SWIFT_SOURCE_DIR}/stdlib/linker-support/magic-symbols-for-install-name.c" + GYB_SOURCES NSValue.swift.gyb diff --git a/stdlib/public/Darwin/Accelerate/CMakeLists.txt b/stdlib/public/Darwin/Accelerate/CMakeLists.txt index d2b825eb95746..2d87506080a84 100644 --- a/stdlib/public/Darwin/Accelerate/CMakeLists.txt +++ b/stdlib/public/Darwin/Accelerate/CMakeLists.txt @@ -6,6 +6,8 @@ add_swift_target_library(swiftAccelerate ${SWIFT_SDK_OVERLAY_LIBRARY_BUILD_TYPES GYB_SOURCES BNNS.swift.gyb + "${SWIFT_SOURCE_DIR}/stdlib/linker-support/magic-symbols-for-install-name.c" + SWIFT_COMPILE_FLAGS "${SWIFT_RUNTIME_SWIFT_COMPILE_FLAGS}" LINK_FLAGS "${SWIFT_RUNTIME_SWIFT_LINK_FLAGS}" TARGET_SDKS OSX IOS IOS_SIMULATOR TVOS TVOS_SIMULATOR WATCHOS WATCHOS_SIMULATOR diff --git a/stdlib/public/Darwin/AppKit/CMakeLists.txt b/stdlib/public/Darwin/AppKit/CMakeLists.txt index 2e50b018d2a3e..b722ca276fb0d 100644 --- a/stdlib/public/Darwin/AppKit/CMakeLists.txt +++ b/stdlib/public/Darwin/AppKit/CMakeLists.txt @@ -9,6 +9,8 @@ add_swift_target_library(swiftAppKit ${SWIFT_SDK_OVERLAY_LIBRARY_BUILD_TYPES} IS NSGraphics.swift NSOpenGL.swift + "${SWIFT_SOURCE_DIR}/stdlib/linker-support/magic-symbols-for-install-name.c" + SWIFT_COMPILE_FLAGS ${SWIFT_RUNTIME_SWIFT_COMPILE_FLAGS} -swift-version 4 LINK_FLAGS "${SWIFT_RUNTIME_SWIFT_LINK_FLAGS}" TARGET_SDKS OSX diff --git a/stdlib/public/Darwin/AssetsLibrary/CMakeLists.txt b/stdlib/public/Darwin/AssetsLibrary/CMakeLists.txt index 95fbd2a832d06..112985009c90c 100644 --- a/stdlib/public/Darwin/AssetsLibrary/CMakeLists.txt +++ b/stdlib/public/Darwin/AssetsLibrary/CMakeLists.txt @@ -4,6 +4,8 @@ include("../../../../cmake/modules/StandaloneOverlay.cmake") add_swift_target_library(swiftAssetsLibrary ${SWIFT_SDK_OVERLAY_LIBRARY_BUILD_TYPES} IS_SDK_OVERLAY ALAssetsLibrary.swift + "${SWIFT_SOURCE_DIR}/stdlib/linker-support/magic-symbols-for-install-name.c" + SWIFT_COMPILE_FLAGS "${SWIFT_RUNTIME_SWIFT_COMPILE_FLAGS}" LINK_FLAGS "${SWIFT_RUNTIME_SWIFT_LINK_FLAGS}" TARGET_SDKS IOS IOS_SIMULATOR diff --git a/stdlib/public/Darwin/CallKit/CMakeLists.txt b/stdlib/public/Darwin/CallKit/CMakeLists.txt index 4f8592f0b4604..df62a1e1f7669 100644 --- a/stdlib/public/Darwin/CallKit/CMakeLists.txt +++ b/stdlib/public/Darwin/CallKit/CMakeLists.txt @@ -4,6 +4,8 @@ include("../../../../cmake/modules/StandaloneOverlay.cmake") add_swift_target_library(swiftCallKit ${SWIFT_SDK_OVERLAY_LIBRARY_BUILD_TYPES} IS_SDK_OVERLAY CXProviderConfiguration.swift + "${SWIFT_SOURCE_DIR}/stdlib/linker-support/magic-symbols-for-install-name.c" + SWIFT_COMPILE_FLAGS "${SWIFT_RUNTIME_SWIFT_COMPILE_FLAGS}" LINK_FLAGS "${SWIFT_RUNTIME_SWIFT_LINK_FLAGS}" TARGET_SDKS IOS IOS_SIMULATOR diff --git a/stdlib/public/Darwin/Contacts/CMakeLists.txt b/stdlib/public/Darwin/Contacts/CMakeLists.txt index 5e73e03c0e33b..1268b40813f74 100644 --- a/stdlib/public/Darwin/Contacts/CMakeLists.txt +++ b/stdlib/public/Darwin/Contacts/CMakeLists.txt @@ -4,6 +4,8 @@ include("../../../../cmake/modules/StandaloneOverlay.cmake") add_swift_target_library(swiftContacts ${SWIFT_SDK_OVERLAY_LIBRARY_BUILD_TYPES} IS_SDK_OVERLAY CNError.swift + "${SWIFT_SOURCE_DIR}/stdlib/linker-support/magic-symbols-for-install-name.c" + SWIFT_COMPILE_FLAGS "${SWIFT_RUNTIME_SWIFT_COMPILE_FLAGS}" LINK_FLAGS "${SWIFT_RUNTIME_SWIFT_LINK_FLAGS}" TARGET_SDKS OSX IOS IOS_SIMULATOR WATCHOS WATCHOS_SIMULATOR diff --git a/stdlib/public/Darwin/CoreAudio/CMakeLists.txt b/stdlib/public/Darwin/CoreAudio/CMakeLists.txt index 0bb4d9530197b..d1ddac4ee09c0 100644 --- a/stdlib/public/Darwin/CoreAudio/CMakeLists.txt +++ b/stdlib/public/Darwin/CoreAudio/CMakeLists.txt @@ -4,6 +4,8 @@ include("../../../../cmake/modules/StandaloneOverlay.cmake") add_swift_target_library(swiftCoreAudio ${SWIFT_SDK_OVERLAY_LIBRARY_BUILD_TYPES} IS_SDK_OVERLAY CoreAudio.swift + "${SWIFT_SOURCE_DIR}/stdlib/linker-support/magic-symbols-for-install-name.c" + SWIFT_COMPILE_FLAGS "${SWIFT_RUNTIME_SWIFT_COMPILE_FLAGS}" LINK_FLAGS "${SWIFT_RUNTIME_SWIFT_LINK_FLAGS}" TARGET_SDKS OSX IOS IOS_SIMULATOR TVOS TVOS_SIMULATOR WATCHOS WATCHOS_SIMULATOR diff --git a/stdlib/public/Darwin/CoreData/CMakeLists.txt b/stdlib/public/Darwin/CoreData/CMakeLists.txt index 6da867ee57c78..975183cd507e8 100644 --- a/stdlib/public/Darwin/CoreData/CMakeLists.txt +++ b/stdlib/public/Darwin/CoreData/CMakeLists.txt @@ -6,6 +6,8 @@ add_swift_target_library(swiftCoreData ${SWIFT_SDK_OVERLAY_LIBRARY_BUILD_TYPES} NSManagedObjectContext.swift CoreData.mm + "${SWIFT_SOURCE_DIR}/stdlib/linker-support/magic-symbols-for-install-name.c" + SWIFT_COMPILE_FLAGS "${SWIFT_RUNTIME_SWIFT_COMPILE_FLAGS}" LINK_FLAGS "${SWIFT_RUNTIME_SWIFT_LINK_FLAGS}" SWIFT_MODULE_DEPENDS_OSX Darwin CoreFoundation CoreGraphics Dispatch Foundation IOKit ObjectiveC # auto-updated diff --git a/stdlib/public/Darwin/CoreFoundation/CMakeLists.txt b/stdlib/public/Darwin/CoreFoundation/CMakeLists.txt index 53c98586293a6..113177f34ed8b 100644 --- a/stdlib/public/Darwin/CoreFoundation/CMakeLists.txt +++ b/stdlib/public/Darwin/CoreFoundation/CMakeLists.txt @@ -4,6 +4,8 @@ include("../../../../cmake/modules/StandaloneOverlay.cmake") add_swift_target_library(swiftCoreFoundation ${SWIFT_SDK_OVERLAY_LIBRARY_BUILD_TYPES} IS_SDK_OVERLAY CoreFoundation.swift + "${SWIFT_SOURCE_DIR}/stdlib/linker-support/magic-symbols-for-install-name.c" + SWIFT_COMPILE_FLAGS "${SWIFT_RUNTIME_SWIFT_COMPILE_FLAGS}" LINK_FLAGS "${SWIFT_RUNTIME_SWIFT_LINK_FLAGS}" SWIFT_MODULE_DEPENDS_OSX Darwin Dispatch ObjectiveC # auto-updated diff --git a/stdlib/public/Darwin/CoreGraphics/CMakeLists.txt b/stdlib/public/Darwin/CoreGraphics/CMakeLists.txt index eaa2e99d1cff5..b66c9a08cb83f 100644 --- a/stdlib/public/Darwin/CoreGraphics/CMakeLists.txt +++ b/stdlib/public/Darwin/CoreGraphics/CMakeLists.txt @@ -5,6 +5,8 @@ add_swift_target_library(swiftCoreGraphics ${SWIFT_SDK_OVERLAY_LIBRARY_BUILD_TYP CoreGraphics.swift Private.swift + "${SWIFT_SOURCE_DIR}/stdlib/linker-support/magic-symbols-for-install-name.c" + GYB_SOURCES CGFloat.swift.gyb diff --git a/stdlib/public/Darwin/CoreImage/CMakeLists.txt b/stdlib/public/Darwin/CoreImage/CMakeLists.txt index 168e69709d00a..f608ae4ea563d 100644 --- a/stdlib/public/Darwin/CoreImage/CMakeLists.txt +++ b/stdlib/public/Darwin/CoreImage/CMakeLists.txt @@ -4,6 +4,8 @@ include("../../../../cmake/modules/StandaloneOverlay.cmake") add_swift_target_library(swiftCoreImage ${SWIFT_SDK_OVERLAY_LIBRARY_BUILD_TYPES} IS_SDK_OVERLAY CoreImage.swift + "${SWIFT_SOURCE_DIR}/stdlib/linker-support/magic-symbols-for-install-name.c" + SWIFT_COMPILE_FLAGS "${SWIFT_RUNTIME_SWIFT_COMPILE_FLAGS}" LINK_FLAGS "${SWIFT_RUNTIME_SWIFT_LINK_FLAGS}" TARGET_SDKS OSX IOS IOS_SIMULATOR TVOS TVOS_SIMULATOR diff --git a/stdlib/public/Darwin/CoreLocation/CMakeLists.txt b/stdlib/public/Darwin/CoreLocation/CMakeLists.txt index 24185b4be3b97..2cc959be4b6ef 100644 --- a/stdlib/public/Darwin/CoreLocation/CMakeLists.txt +++ b/stdlib/public/Darwin/CoreLocation/CMakeLists.txt @@ -7,6 +7,8 @@ add_swift_target_library(swiftCoreLocation ${SWIFT_SDK_OVERLAY_LIBRARY_BUILD_TYP GYB_SOURCES NSValue.swift.gyb + "${SWIFT_SOURCE_DIR}/stdlib/linker-support/magic-symbols-for-install-name.c" + SWIFT_COMPILE_FLAGS "${SWIFT_RUNTIME_SWIFT_COMPILE_FLAGS}" LINK_FLAGS "${SWIFT_RUNTIME_SWIFT_LINK_FLAGS}" SWIFT_MODULE_DEPENDS_OSX Darwin CoreFoundation CoreGraphics Dispatch Foundation IOKit ObjectiveC # auto-updated diff --git a/stdlib/public/Darwin/CryptoTokenKit/CMakeLists.txt b/stdlib/public/Darwin/CryptoTokenKit/CMakeLists.txt index 4af12f9ef3803..a1b39d9243579 100644 --- a/stdlib/public/Darwin/CryptoTokenKit/CMakeLists.txt +++ b/stdlib/public/Darwin/CryptoTokenKit/CMakeLists.txt @@ -4,6 +4,8 @@ include("../../../../cmake/modules/StandaloneOverlay.cmake") add_swift_target_library(swiftCryptoTokenKit ${SWIFT_SDK_OVERLAY_LIBRARY_BUILD_TYPES} IS_SDK_OVERLAY TKSmartCard.swift + "${SWIFT_SOURCE_DIR}/stdlib/linker-support/magic-symbols-for-install-name.c" + SWIFT_COMPILE_FLAGS "${SWIFT_RUNTIME_SWIFT_COMPILE_FLAGS}" LINK_FLAGS "${SWIFT_RUNTIME_SWIFT_LINK_FLAGS}" TARGET_SDKS OSX diff --git a/stdlib/public/Darwin/Dispatch/CMakeLists.txt b/stdlib/public/Darwin/Dispatch/CMakeLists.txt index 6a50585009db2..d8b7f1a849215 100644 --- a/stdlib/public/Darwin/Dispatch/CMakeLists.txt +++ b/stdlib/public/Darwin/Dispatch/CMakeLists.txt @@ -13,6 +13,8 @@ add_swift_target_library(swiftDispatch ${SWIFT_SDK_OVERLAY_LIBRARY_BUILD_TYPES} Source.swift Time.swift + "${SWIFT_SOURCE_DIR}/stdlib/linker-support/magic-symbols-for-install-name.c" + SWIFT_COMPILE_FLAGS "${SWIFT_RUNTIME_SWIFT_COMPILE_FLAGS}" LINK_FLAGS "${SWIFT_RUNTIME_SWIFT_LINK_FLAGS}" SWIFT_MODULE_DEPENDS_OSX Darwin ObjectiveC # auto-updated diff --git a/stdlib/public/Darwin/Foundation/CMakeLists.txt b/stdlib/public/Darwin/Foundation/CMakeLists.txt index 277f11f9d9faa..87004e12138ef 100644 --- a/stdlib/public/Darwin/Foundation/CMakeLists.txt +++ b/stdlib/public/Darwin/Foundation/CMakeLists.txt @@ -63,6 +63,8 @@ add_swift_target_library(swiftFoundation ${SWIFT_SDK_OVERLAY_LIBRARY_BUILD_TYPES UUID.swift CheckClass.mm + "${SWIFT_SOURCE_DIR}/stdlib/linker-support/magic-symbols-for-install-name.c" + GYB_SOURCES NSValue.swift.gyb diff --git a/stdlib/public/Darwin/GLKit/CMakeLists.txt b/stdlib/public/Darwin/GLKit/CMakeLists.txt index 04e3c7af669f6..32717e1f43749 100644 --- a/stdlib/public/Darwin/GLKit/CMakeLists.txt +++ b/stdlib/public/Darwin/GLKit/CMakeLists.txt @@ -6,6 +6,8 @@ add_swift_target_library(swiftGLKit ${SWIFT_SDK_OVERLAY_LIBRARY_BUILD_TYPES} IS_ GYB_SOURCES GLKMath.swift.gyb + "${SWIFT_SOURCE_DIR}/stdlib/linker-support/magic-symbols-for-install-name.c" + SWIFT_COMPILE_FLAGS "${SWIFT_RUNTIME_SWIFT_COMPILE_FLAGS}" LINK_FLAGS "${SWIFT_RUNTIME_SWIFT_LINK_FLAGS}" TARGET_SDKS OSX IOS IOS_SIMULATOR TVOS TVOS_SIMULATOR diff --git a/stdlib/public/Darwin/GameplayKit/CMakeLists.txt b/stdlib/public/Darwin/GameplayKit/CMakeLists.txt index 22be715b74d77..0d7362e055f97 100644 --- a/stdlib/public/Darwin/GameplayKit/CMakeLists.txt +++ b/stdlib/public/Darwin/GameplayKit/CMakeLists.txt @@ -4,6 +4,8 @@ include("../../../../cmake/modules/StandaloneOverlay.cmake") add_swift_target_library(swiftGameplayKit ${SWIFT_SDK_OVERLAY_LIBRARY_BUILD_TYPES} IS_SDK_OVERLAY GameplayKit.swift + "${SWIFT_SOURCE_DIR}/stdlib/linker-support/magic-symbols-for-install-name.c" + SWIFT_COMPILE_FLAGS "${SWIFT_RUNTIME_SWIFT_COMPILE_FLAGS}" LINK_FLAGS "${SWIFT_RUNTIME_SWIFT_LINK_FLAGS}" TARGET_SDKS OSX IOS IOS_SIMULATOR TVOS TVOS_SIMULATOR diff --git a/stdlib/public/Darwin/HomeKit/CMakeLists.txt b/stdlib/public/Darwin/HomeKit/CMakeLists.txt index 64b1ee448ad82..3514cd072e490 100644 --- a/stdlib/public/Darwin/HomeKit/CMakeLists.txt +++ b/stdlib/public/Darwin/HomeKit/CMakeLists.txt @@ -4,6 +4,8 @@ include("../../../../cmake/modules/StandaloneOverlay.cmake") add_swift_target_library(swiftHomeKit ${SWIFT_SDK_OVERLAY_LIBRARY_BUILD_TYPES} IS_SDK_OVERLAY HomeKit.swift + "${SWIFT_SOURCE_DIR}/stdlib/linker-support/magic-symbols-for-install-name.c" + SWIFT_COMPILE_FLAGS "${SWIFT_RUNTIME_SWIFT_COMPILE_FLAGS}" LINK_FLAGS "${SWIFT_RUNTIME_SWIFT_LINK_FLAGS}" TARGET_SDKS IOS IOS_SIMULATOR TVOS TVOS_SIMULATOR WATCHOS WATCHOS_SIMULATOR diff --git a/stdlib/public/Darwin/IOKit/CMakeLists.txt b/stdlib/public/Darwin/IOKit/CMakeLists.txt index 36837d734e245..35971921a7746 100644 --- a/stdlib/public/Darwin/IOKit/CMakeLists.txt +++ b/stdlib/public/Darwin/IOKit/CMakeLists.txt @@ -4,6 +4,8 @@ include("../../../../cmake/modules/StandaloneOverlay.cmake") add_swift_target_library(swiftIOKit ${SWIFT_SDK_OVERLAY_LIBRARY_BUILD_TYPES} IS_SDK_OVERLAY IOReturn.swift + "${SWIFT_SOURCE_DIR}/stdlib/linker-support/magic-symbols-for-install-name.c" + SWIFT_COMPILE_FLAGS "${SWIFT_RUNTIME_SWIFT_COMPILE_FLAGS}" LINK_FLAGS "${SWIFT_RUNTIME_SWIFT_LINK_FLAGS}" TARGET_SDKS OSX diff --git a/stdlib/public/Darwin/Intents/CMakeLists.txt b/stdlib/public/Darwin/Intents/CMakeLists.txt index 08109889b6919..027c73c6ae339 100644 --- a/stdlib/public/Darwin/Intents/CMakeLists.txt +++ b/stdlib/public/Darwin/Intents/CMakeLists.txt @@ -28,6 +28,8 @@ add_swift_target_library(swiftIntents ${SWIFT_SDK_OVERLAY_LIBRARY_BUILD_TYPES} I INStartWorkoutIntent.swift NSStringIntents.swift + "${SWIFT_SOURCE_DIR}/stdlib/linker-support/magic-symbols-for-install-name.c" + SWIFT_COMPILE_FLAGS "${SWIFT_RUNTIME_SWIFT_COMPILE_FLAGS}" LINK_FLAGS "${SWIFT_RUNTIME_SWIFT_LINK_FLAGS}" TARGET_SDKS OSX IOS IOS_SIMULATOR WATCHOS WATCHOS_SIMULATOR diff --git a/stdlib/public/Darwin/MediaPlayer/CMakeLists.txt b/stdlib/public/Darwin/MediaPlayer/CMakeLists.txt index 0efa5ae157cea..f739cf78f13c7 100644 --- a/stdlib/public/Darwin/MediaPlayer/CMakeLists.txt +++ b/stdlib/public/Darwin/MediaPlayer/CMakeLists.txt @@ -4,6 +4,8 @@ include("../../../../cmake/modules/StandaloneOverlay.cmake") add_swift_target_library(swiftMediaPlayer ${SWIFT_SDK_OVERLAY_LIBRARY_BUILD_TYPES} IS_SDK_OVERLAY MPMusicPlayerPlayParameters.swift + "${SWIFT_SOURCE_DIR}/stdlib/linker-support/magic-symbols-for-install-name.c" + SWIFT_COMPILE_FLAGS "${SWIFT_RUNTIME_SWIFT_COMPILE_FLAGS}" LINK_FLAGS "${SWIFT_RUNTIME_SWIFT_LINK_FLAGS}" TARGET_SDKS IOS IOS_SIMULATOR diff --git a/stdlib/public/Darwin/Metal/CMakeLists.txt b/stdlib/public/Darwin/Metal/CMakeLists.txt index ca10ebbe38308..50755a8aa9373 100644 --- a/stdlib/public/Darwin/Metal/CMakeLists.txt +++ b/stdlib/public/Darwin/Metal/CMakeLists.txt @@ -4,6 +4,8 @@ include("../../../../cmake/modules/StandaloneOverlay.cmake") add_swift_target_library(swiftMetal ${SWIFT_SDK_OVERLAY_LIBRARY_BUILD_TYPES} IS_SDK_OVERLAY Metal.swift + "${SWIFT_SOURCE_DIR}/stdlib/linker-support/magic-symbols-for-install-name.c" + SWIFT_COMPILE_FLAGS "${SWIFT_RUNTIME_SWIFT_COMPILE_FLAGS}" LINK_FLAGS "${SWIFT_RUNTIME_SWIFT_LINK_FLAGS}" TARGET_SDKS OSX IOS IOS_SIMULATOR TVOS TVOS_SIMULATOR diff --git a/stdlib/public/Darwin/MetalKit/CMakeLists.txt b/stdlib/public/Darwin/MetalKit/CMakeLists.txt index 0c34a2d58bf41..03babc5897c7e 100644 --- a/stdlib/public/Darwin/MetalKit/CMakeLists.txt +++ b/stdlib/public/Darwin/MetalKit/CMakeLists.txt @@ -4,6 +4,8 @@ include("../../../../cmake/modules/StandaloneOverlay.cmake") add_swift_target_library(swiftMetalKit ${SWIFT_SDK_OVERLAY_LIBRARY_BUILD_TYPES} IS_SDK_OVERLAY MetalKit.swift + "${SWIFT_SOURCE_DIR}/stdlib/linker-support/magic-symbols-for-install-name.c" + SWIFT_COMPILE_FLAGS "${SWIFT_RUNTIME_SWIFT_COMPILE_FLAGS}" LINK_FLAGS "${SWIFT_RUNTIME_SWIFT_LINK_FLAGS}" TARGET_SDKS OSX IOS IOS_SIMULATOR TVOS TVOS_SIMULATOR diff --git a/stdlib/public/Darwin/ModelIO/CMakeLists.txt b/stdlib/public/Darwin/ModelIO/CMakeLists.txt index 84c9d32292376..794574769bdd5 100644 --- a/stdlib/public/Darwin/ModelIO/CMakeLists.txt +++ b/stdlib/public/Darwin/ModelIO/CMakeLists.txt @@ -4,6 +4,8 @@ include("../../../../cmake/modules/StandaloneOverlay.cmake") add_swift_target_library(swiftModelIO ${SWIFT_SDK_OVERLAY_LIBRARY_BUILD_TYPES} IS_SDK_OVERLAY ModelIO.swift + "${SWIFT_SOURCE_DIR}/stdlib/linker-support/magic-symbols-for-install-name.c" + SWIFT_COMPILE_FLAGS "${SWIFT_RUNTIME_SWIFT_COMPILE_FLAGS}" LINK_FLAGS "${SWIFT_RUNTIME_SWIFT_LINK_FLAGS}" TARGET_SDKS OSX IOS IOS_SIMULATOR TVOS TVOS_SIMULATOR diff --git a/stdlib/public/Darwin/NaturalLanguage/CMakeLists.txt b/stdlib/public/Darwin/NaturalLanguage/CMakeLists.txt index a5e120c9777db..6c35af2de780c 100644 --- a/stdlib/public/Darwin/NaturalLanguage/CMakeLists.txt +++ b/stdlib/public/Darwin/NaturalLanguage/CMakeLists.txt @@ -6,6 +6,8 @@ add_swift_target_library(swiftNaturalLanguage ${SWIFT_SDK_OVERLAY_LIBRARY_BUILD_ NLTagger.swift NLTokenizer.swift + "${SWIFT_SOURCE_DIR}/stdlib/linker-support/magic-symbols-for-install-name.c" + SWIFT_COMPILE_FLAGS "${SWIFT_RUNTIME_SWIFT_COMPILE_FLAGS}" LINK_FLAGS "${SWIFT_RUNTIME_SWIFT_LINK_FLAGS}" TARGET_SDKS OSX IOS IOS_SIMULATOR TVOS TVOS_SIMULATOR WATCHOS WATCHOS_SIMULATOR diff --git a/stdlib/public/Darwin/Network/CMakeLists.txt b/stdlib/public/Darwin/Network/CMakeLists.txt index 3d2a303bf98c1..fc02afb3a9e1c 100644 --- a/stdlib/public/Darwin/Network/CMakeLists.txt +++ b/stdlib/public/Darwin/Network/CMakeLists.txt @@ -15,6 +15,8 @@ add_swift_target_library(swiftNetwork ${SWIFT_SDK_OVERLAY_LIBRARY_BUILD_TYPES} I NWProtocolTLS.swift NWProtocolUDP.swift + "${SWIFT_SOURCE_DIR}/stdlib/linker-support/magic-symbols-for-install-name.c" + SWIFT_COMPILE_FLAGS "${SWIFT_RUNTIME_SWIFT_COMPILE_FLAGS}" LINK_FLAGS "${SWIFT_RUNTIME_SWIFT_LINK_FLAGS}" diff --git a/stdlib/public/Darwin/ObjectiveC/CMakeLists.txt b/stdlib/public/Darwin/ObjectiveC/CMakeLists.txt index 0e4bf34b417e9..5e3127d61557d 100644 --- a/stdlib/public/Darwin/ObjectiveC/CMakeLists.txt +++ b/stdlib/public/Darwin/ObjectiveC/CMakeLists.txt @@ -4,6 +4,8 @@ include("../../../../cmake/modules/StandaloneOverlay.cmake") add_swift_target_library(swiftObjectiveC ${SWIFT_SDK_OVERLAY_LIBRARY_BUILD_TYPES} IS_SDK_OVERLAY ObjectiveC.swift + "${SWIFT_SOURCE_DIR}/stdlib/linker-support/magic-symbols-for-install-name.c" + SWIFT_COMPILE_FLAGS "${SWIFT_RUNTIME_SWIFT_COMPILE_FLAGS}" "-Xfrontend" "-disable-objc-attr-requires-foundation-module" LINK_FLAGS "${SWIFT_RUNTIME_SWIFT_LINK_FLAGS}" diff --git a/stdlib/public/Darwin/OpenCL/CMakeLists.txt b/stdlib/public/Darwin/OpenCL/CMakeLists.txt index 6ab6236367e87..4561f06295e0b 100644 --- a/stdlib/public/Darwin/OpenCL/CMakeLists.txt +++ b/stdlib/public/Darwin/OpenCL/CMakeLists.txt @@ -4,6 +4,8 @@ include("../../../../cmake/modules/StandaloneOverlay.cmake") add_swift_target_library(swiftOpenCL ${SWIFT_SDK_OVERLAY_LIBRARY_BUILD_TYPES} IS_SDK_OVERLAY OpenCL.swift + "${SWIFT_SOURCE_DIR}/stdlib/linker-support/magic-symbols-for-install-name.c" + SWIFT_COMPILE_FLAGS "${SWIFT_RUNTIME_SWIFT_COMPILE_FLAGS}" LINK_FLAGS "${SWIFT_RUNTIME_SWIFT_LINK_FLAGS}" TARGET_SDKS OSX diff --git a/stdlib/public/Darwin/Photos/CMakeLists.txt b/stdlib/public/Darwin/Photos/CMakeLists.txt index b1b7b916f27e4..ecf991b07bc1d 100644 --- a/stdlib/public/Darwin/Photos/CMakeLists.txt +++ b/stdlib/public/Darwin/Photos/CMakeLists.txt @@ -5,6 +5,8 @@ add_swift_target_library(swiftPhotos ${SWIFT_SDK_OVERLAY_LIBRARY_BUILD_TYPES} IS PHChange.swift PHProjectChangeRequest.swift + "${SWIFT_SOURCE_DIR}/stdlib/linker-support/magic-symbols-for-install-name.c" + SWIFT_COMPILE_FLAGS "${SWIFT_RUNTIME_SWIFT_COMPILE_FLAGS}" LINK_FLAGS "${SWIFT_RUNTIME_SWIFT_LINK_FLAGS}" TARGET_SDKS IOS IOS_SIMULATOR TVOS TVOS_SIMULATOR OSX diff --git a/stdlib/public/Darwin/QuartzCore/CMakeLists.txt b/stdlib/public/Darwin/QuartzCore/CMakeLists.txt index 2e72502fcd227..40bc3639d84b6 100644 --- a/stdlib/public/Darwin/QuartzCore/CMakeLists.txt +++ b/stdlib/public/Darwin/QuartzCore/CMakeLists.txt @@ -6,6 +6,8 @@ add_swift_target_library(swiftQuartzCore ${SWIFT_SDK_OVERLAY_LIBRARY_BUILD_TYPES GYB_SOURCES NSValue.swift.gyb + "${SWIFT_SOURCE_DIR}/stdlib/linker-support/magic-symbols-for-install-name.c" + SWIFT_COMPILE_FLAGS "${SWIFT_RUNTIME_SWIFT_COMPILE_FLAGS}" LINK_FLAGS "${SWIFT_RUNTIME_SWIFT_LINK_FLAGS}" TARGET_SDKS OSX IOS IOS_SIMULATOR TVOS TVOS_SIMULATOR diff --git a/stdlib/public/Darwin/SafariServices/CMakeLists.txt b/stdlib/public/Darwin/SafariServices/CMakeLists.txt index 349050a8c199e..63ea9cb5274f8 100644 --- a/stdlib/public/Darwin/SafariServices/CMakeLists.txt +++ b/stdlib/public/Darwin/SafariServices/CMakeLists.txt @@ -4,6 +4,8 @@ include("../../../../cmake/modules/StandaloneOverlay.cmake") add_swift_target_library(swiftSafariServices ${SWIFT_SDK_OVERLAY_LIBRARY_BUILD_TYPES} IS_SDK_OVERLAY SafariServices.swift + "${SWIFT_SOURCE_DIR}/stdlib/linker-support/magic-symbols-for-install-name.c" + SWIFT_COMPILE_FLAGS "${SWIFT_RUNTIME_SWIFT_COMPILE_FLAGS}" LINK_FLAGS "${SWIFT_RUNTIME_SWIFT_LINK_FLAGS}" TARGET_SDKS OSX diff --git a/stdlib/public/Darwin/SceneKit/CMakeLists.txt b/stdlib/public/Darwin/SceneKit/CMakeLists.txt index 0cb9ef263a442..03fd4abcce1aa 100644 --- a/stdlib/public/Darwin/SceneKit/CMakeLists.txt +++ b/stdlib/public/Darwin/SceneKit/CMakeLists.txt @@ -6,6 +6,8 @@ add_swift_target_library(swiftSceneKit ${SWIFT_SDK_OVERLAY_LIBRARY_BUILD_TYPES} GYB_SOURCES SceneKit.swift.gyb + "${SWIFT_SOURCE_DIR}/stdlib/linker-support/magic-symbols-for-install-name.c" + SWIFT_COMPILE_FLAGS "${SWIFT_RUNTIME_SWIFT_COMPILE_FLAGS}" LINK_FLAGS "${SWIFT_RUNTIME_SWIFT_LINK_FLAGS}" TARGET_SDKS OSX IOS IOS_SIMULATOR TVOS TVOS_SIMULATOR WATCHOS WATCHOS_SIMULATOR diff --git a/stdlib/public/Darwin/SpriteKit/CMakeLists.txt b/stdlib/public/Darwin/SpriteKit/CMakeLists.txt index 5a1c92b59b816..b7ee53a360cd7 100644 --- a/stdlib/public/Darwin/SpriteKit/CMakeLists.txt +++ b/stdlib/public/Darwin/SpriteKit/CMakeLists.txt @@ -7,6 +7,8 @@ add_swift_target_library(swiftSpriteKit ${SWIFT_SDK_OVERLAY_LIBRARY_BUILD_TYPES} GYB_SOURCES SpriteKitQuickLooks.swift.gyb + "${SWIFT_SOURCE_DIR}/stdlib/linker-support/magic-symbols-for-install-name.c" + SWIFT_COMPILE_FLAGS "${SWIFT_RUNTIME_SWIFT_COMPILE_FLAGS}" LINK_FLAGS "${SWIFT_RUNTIME_SWIFT_LINK_FLAGS}" TARGET_SDKS OSX IOS IOS_SIMULATOR TVOS TVOS_SIMULATOR WATCHOS WATCHOS_SIMULATOR diff --git a/stdlib/public/Darwin/UIKit/CMakeLists.txt b/stdlib/public/Darwin/UIKit/CMakeLists.txt index df4ba03d3297d..d9e23903fedfc 100644 --- a/stdlib/public/Darwin/UIKit/CMakeLists.txt +++ b/stdlib/public/Darwin/UIKit/CMakeLists.txt @@ -8,6 +8,8 @@ add_swift_target_library(swiftUIKit ${SWIFT_SDK_OVERLAY_LIBRARY_BUILD_TYPES} IS_ GYB_SOURCES UIKit_FoundationExtensions.swift.gyb + "${SWIFT_SOURCE_DIR}/stdlib/linker-support/magic-symbols-for-install-name.c" + SWIFT_COMPILE_FLAGS ${SWIFT_RUNTIME_SWIFT_COMPILE_FLAGS} -swift-version 4.2 LINK_FLAGS "${SWIFT_RUNTIME_SWIFT_LINK_FLAGS}" TARGET_SDKS IOS IOS_SIMULATOR TVOS TVOS_SIMULATOR WATCHOS WATCHOS_SIMULATOR diff --git a/stdlib/public/Darwin/Vision/CMakeLists.txt b/stdlib/public/Darwin/Vision/CMakeLists.txt index b30acaf55cffb..1953436cfab04 100644 --- a/stdlib/public/Darwin/Vision/CMakeLists.txt +++ b/stdlib/public/Darwin/Vision/CMakeLists.txt @@ -4,6 +4,8 @@ include("../../../../cmake/modules/StandaloneOverlay.cmake") add_swift_target_library(swiftVision ${SWIFT_SDK_OVERLAY_LIBRARY_BUILD_TYPES} IS_SDK_OVERLAY Vision.swift + "${SWIFT_SOURCE_DIR}/stdlib/linker-support/magic-symbols-for-install-name.c" + SWIFT_COMPILE_FLAGS "${SWIFT_RUNTIME_SWIFT_COMPILE_FLAGS}" LINK_FLAGS "${SWIFT_RUNTIME_SWIFT_LINK_FLAGS}" TARGET_SDKS OSX IOS IOS_SIMULATOR TVOS TVOS_SIMULATOR diff --git a/stdlib/public/Darwin/WatchKit/CMakeLists.txt b/stdlib/public/Darwin/WatchKit/CMakeLists.txt index d27c49a91a493..f4368d2b65fa3 100644 --- a/stdlib/public/Darwin/WatchKit/CMakeLists.txt +++ b/stdlib/public/Darwin/WatchKit/CMakeLists.txt @@ -4,6 +4,8 @@ include("../../../../cmake/modules/StandaloneOverlay.cmake") add_swift_target_library(swiftWatchKit ${SWIFT_SDK_OVERLAY_LIBRARY_BUILD_TYPES} IS_SDK_OVERLAY WKInterfaceController.swift + "${SWIFT_SOURCE_DIR}/stdlib/linker-support/magic-symbols-for-install-name.c" + SWIFT_COMPILE_FLAGS "${SWIFT_RUNTIME_SWIFT_COMPILE_FLAGS}" LINK_FLAGS "${SWIFT_RUNTIME_SWIFT_LINK_FLAGS}" TARGET_SDKS IOS IOS_SIMULATOR WATCHOS WATCHOS_SIMULATOR diff --git a/stdlib/public/Darwin/XPC/CMakeLists.txt b/stdlib/public/Darwin/XPC/CMakeLists.txt index b7d363b409e63..26e35e1a720a3 100644 --- a/stdlib/public/Darwin/XPC/CMakeLists.txt +++ b/stdlib/public/Darwin/XPC/CMakeLists.txt @@ -4,6 +4,8 @@ include("../../../../cmake/modules/StandaloneOverlay.cmake") add_swift_target_library(swiftXPC ${SWIFT_SDK_OVERLAY_LIBRARY_BUILD_TYPES} IS_SDK_OVERLAY XPC.swift + "${SWIFT_SOURCE_DIR}/stdlib/linker-support/magic-symbols-for-install-name.c" + SWIFT_COMPILE_FLAGS "${SWIFT_RUNTIME_SWIFT_COMPILE_FLAGS}" LINK_FLAGS "${SWIFT_RUNTIME_SWIFT_LINK_FLAGS}" TARGET_SDKS OSX diff --git a/stdlib/public/Darwin/os/CMakeLists.txt b/stdlib/public/Darwin/os/CMakeLists.txt index 3b9a74a5189c5..a0e2a3b3ad658 100644 --- a/stdlib/public/Darwin/os/CMakeLists.txt +++ b/stdlib/public/Darwin/os/CMakeLists.txt @@ -9,6 +9,8 @@ add_swift_target_library(swiftos ${SWIFT_SDK_OVERLAY_LIBRARY_BUILD_TYPES} IS_SDK os_trace_blob.c thunks.mm + "${SWIFT_SOURCE_DIR}/stdlib/linker-support/magic-symbols-for-install-name.c" + SWIFT_COMPILE_FLAGS "${SWIFT_RUNTIME_SWIFT_COMPILE_FLAGS}" LINK_FLAGS "${SWIFT_RUNTIME_SWIFT_LINK_FLAGS}" SWIFT_MODULE_DEPENDS_OSX Darwin Dispatch ObjectiveC XPC # auto-updated diff --git a/stdlib/public/Darwin/simd/CMakeLists.txt b/stdlib/public/Darwin/simd/CMakeLists.txt index ce11fa72699b3..8ae5b4339773e 100644 --- a/stdlib/public/Darwin/simd/CMakeLists.txt +++ b/stdlib/public/Darwin/simd/CMakeLists.txt @@ -7,6 +7,8 @@ add_swift_target_library(swiftsimd ${SWIFT_SDK_OVERLAY_LIBRARY_BUILD_TYPES} IS_S simd.swift.gyb Quaternion.swift.gyb + "${SWIFT_SOURCE_DIR}/stdlib/linker-support/magic-symbols-for-install-name.c" + SWIFT_COMPILE_FLAGS "${SWIFT_RUNTIME_SWIFT_COMPILE_FLAGS}" LINK_FLAGS "${SWIFT_RUNTIME_SWIFT_LINK_FLAGS}" SWIFT_COMPILE_FLAGS -parse-stdlib diff --git a/stdlib/public/Platform/CMakeLists.txt b/stdlib/public/Platform/CMakeLists.txt index a0be42d387bca..305ae6e181da9 100644 --- a/stdlib/public/Platform/CMakeLists.txt +++ b/stdlib/public/Platform/CMakeLists.txt @@ -9,6 +9,8 @@ add_swift_target_library(swiftDarwin ${SWIFT_STDLIB_LIBRARY_BUILD_TYPES} IS_SDK_ POSIXError.swift MachError.swift + "${SWIFT_SOURCE_DIR}/stdlib/linker-support/magic-symbols-for-install-name.c" + GYB_SOURCES ${swift_platform_gyb_sources} Darwin.swift.gyb diff --git a/stdlib/public/SwiftOnoneSupport/CMakeLists.txt b/stdlib/public/SwiftOnoneSupport/CMakeLists.txt index efb94ba7d0dd0..2775d55e98f91 100644 --- a/stdlib/public/SwiftOnoneSupport/CMakeLists.txt +++ b/stdlib/public/SwiftOnoneSupport/CMakeLists.txt @@ -2,6 +2,9 @@ add_swift_target_library(swiftSwiftOnoneSupport ${SWIFT_STDLIB_LIBRARY_BUILD_TYP # This file should be listed the first. Module name is inferred from the # filename. SwiftOnoneSupport.swift + + "${SWIFT_SOURCE_DIR}/stdlib/linker-support/magic-symbols-for-install-name.c" + # We have to disable validation of TBD files, because this module is # _explicitly_ special-cased to result in extra symbols generated by the # optimizer, meaning TBDGen can't (and shouldn't: it has to run diff --git a/stdlib/public/core/CMakeLists.txt b/stdlib/public/core/CMakeLists.txt index 91fc27d0ff28a..3e181ab60d403 100644 --- a/stdlib/public/core/CMakeLists.txt +++ b/stdlib/public/core/CMakeLists.txt @@ -212,7 +212,9 @@ set(SWIFTLIB_SOURCES SIMDVector.swift UnfoldSequence.swift VarArgs.swift - Zip.swift) + Zip.swift + "${SWIFT_SOURCE_DIR}/stdlib/linker-support/magic-symbols-for-install-name.c" + ) set(SWIFTLIB_GYB_SOURCES ${SWIFTLIB_ESSENTIAL_GYB_SOURCES} From 2aea63710e80a7472c5109833303ec19f11095c7 Mon Sep 17 00:00:00 2001 From: Doug Gregor Date: Wed, 2 Jan 2019 17:08:23 -0800 Subject: [PATCH 2/4] Rewrite install_name for macOS 10.14 only with the Xcode default toolchain. The install_name trick we are using to make sure that an application built with a deployment target new enough to *guarantee* that Swift will be available in the OS (and therefore don't need dylibs bundled) link directly to /usr/lib/swift/*.dylib, but rewrites the the library paths to be rpath-relative for older OS's (e.g., @rpath/lib/swift/libswiftCore.dylib) doesn't work for sub-minor version numbers, e.g., the tools can't distinguish between 10.14.4 and 10.14. Therefore, macOS 10.14 is both an "older OS" and a "newer OS". Hack around the primary problem caused by this---the inability of first-party Swift programs to launch on macOS 10.14.4---by treating macOS 10.14 as an "older OS" when building for the Xcode toolchain (which is used by anyone who will deploy back to an older OS, e.g., 3rd party applications) but treat it as a "newer OS" when building for the OS toolchains (which is used when building the OS itself). Fixes rdar://problem/47007519. --- stdlib/linker-support/magic-symbols-for-install-name.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/stdlib/linker-support/magic-symbols-for-install-name.c b/stdlib/linker-support/magic-symbols-for-install-name.c index e083f0a866242..dc15419dc18d7 100644 --- a/stdlib/linker-support/magic-symbols-for-install-name.c +++ b/stdlib/linker-support/magic-symbols-for-install-name.c @@ -19,6 +19,7 @@ #if defined(__APPLE__) && defined(__MACH__) +#include #include #include "../public/SwiftShims/Visibility.h" @@ -77,7 +78,13 @@ RPATH_INSTALL_NAME_DIRECTIVE(10, 11) RPATH_INSTALL_NAME_DIRECTIVE(10, 12) RPATH_INSTALL_NAME_DIRECTIVE(10, 13) + + // When building with a deployment target of < macOS 10.14, + // treat macOS 10.14 as an "older OS." +#if __MAC_OS_X_VERSION_MIN_REQUIRED < __MAC_10_14 RPATH_INSTALL_NAME_DIRECTIVE(10, 14) +#endif + #else #error Unknown target. #endif From 998b833f657a3a942e190cc42126b5ecb90c4705 Mon Sep 17 00:00:00 2001 From: Mike Ash Date: Wed, 20 Mar 2019 17:08:23 -0400 Subject: [PATCH 3/4] Make sure magic-symbols-for-install-name.c is above GYB_SOURCES in all files. --- stdlib/public/Darwin/Accelerate/CMakeLists.txt | 4 ++-- stdlib/public/Darwin/CoreLocation/CMakeLists.txt | 4 ++-- stdlib/public/Darwin/GLKit/CMakeLists.txt | 4 ++-- stdlib/public/Darwin/QuartzCore/CMakeLists.txt | 4 ++-- stdlib/public/Darwin/SceneKit/CMakeLists.txt | 4 ++-- stdlib/public/Darwin/SpriteKit/CMakeLists.txt | 4 ++-- stdlib/public/Darwin/UIKit/CMakeLists.txt | 4 ++-- stdlib/public/Darwin/simd/CMakeLists.txt | 4 ++-- 8 files changed, 16 insertions(+), 16 deletions(-) diff --git a/stdlib/public/Darwin/Accelerate/CMakeLists.txt b/stdlib/public/Darwin/Accelerate/CMakeLists.txt index 2d87506080a84..fbf4fe1dbf75e 100644 --- a/stdlib/public/Darwin/Accelerate/CMakeLists.txt +++ b/stdlib/public/Darwin/Accelerate/CMakeLists.txt @@ -3,11 +3,11 @@ include("../../../../cmake/modules/StandaloneOverlay.cmake") add_swift_target_library(swiftAccelerate ${SWIFT_SDK_OVERLAY_LIBRARY_BUILD_TYPES} IS_SDK_OVERLAY + "${SWIFT_SOURCE_DIR}/stdlib/linker-support/magic-symbols-for-install-name.c" + GYB_SOURCES BNNS.swift.gyb - "${SWIFT_SOURCE_DIR}/stdlib/linker-support/magic-symbols-for-install-name.c" - SWIFT_COMPILE_FLAGS "${SWIFT_RUNTIME_SWIFT_COMPILE_FLAGS}" LINK_FLAGS "${SWIFT_RUNTIME_SWIFT_LINK_FLAGS}" TARGET_SDKS OSX IOS IOS_SIMULATOR TVOS TVOS_SIMULATOR WATCHOS WATCHOS_SIMULATOR diff --git a/stdlib/public/Darwin/CoreLocation/CMakeLists.txt b/stdlib/public/Darwin/CoreLocation/CMakeLists.txt index 2cc959be4b6ef..896eb0c364274 100644 --- a/stdlib/public/Darwin/CoreLocation/CMakeLists.txt +++ b/stdlib/public/Darwin/CoreLocation/CMakeLists.txt @@ -4,11 +4,11 @@ include("../../../../cmake/modules/StandaloneOverlay.cmake") add_swift_target_library(swiftCoreLocation ${SWIFT_SDK_OVERLAY_LIBRARY_BUILD_TYPES} IS_SDK_OVERLAY CLError.swift + "${SWIFT_SOURCE_DIR}/stdlib/linker-support/magic-symbols-for-install-name.c" + GYB_SOURCES NSValue.swift.gyb - "${SWIFT_SOURCE_DIR}/stdlib/linker-support/magic-symbols-for-install-name.c" - SWIFT_COMPILE_FLAGS "${SWIFT_RUNTIME_SWIFT_COMPILE_FLAGS}" LINK_FLAGS "${SWIFT_RUNTIME_SWIFT_LINK_FLAGS}" SWIFT_MODULE_DEPENDS_OSX Darwin CoreFoundation CoreGraphics Dispatch Foundation IOKit ObjectiveC # auto-updated diff --git a/stdlib/public/Darwin/GLKit/CMakeLists.txt b/stdlib/public/Darwin/GLKit/CMakeLists.txt index 32717e1f43749..439cccc0df137 100644 --- a/stdlib/public/Darwin/GLKit/CMakeLists.txt +++ b/stdlib/public/Darwin/GLKit/CMakeLists.txt @@ -3,11 +3,11 @@ include("../../../../cmake/modules/StandaloneOverlay.cmake") add_swift_target_library(swiftGLKit ${SWIFT_SDK_OVERLAY_LIBRARY_BUILD_TYPES} IS_SDK_OVERLAY + "${SWIFT_SOURCE_DIR}/stdlib/linker-support/magic-symbols-for-install-name.c" + GYB_SOURCES GLKMath.swift.gyb - "${SWIFT_SOURCE_DIR}/stdlib/linker-support/magic-symbols-for-install-name.c" - SWIFT_COMPILE_FLAGS "${SWIFT_RUNTIME_SWIFT_COMPILE_FLAGS}" LINK_FLAGS "${SWIFT_RUNTIME_SWIFT_LINK_FLAGS}" TARGET_SDKS OSX IOS IOS_SIMULATOR TVOS TVOS_SIMULATOR diff --git a/stdlib/public/Darwin/QuartzCore/CMakeLists.txt b/stdlib/public/Darwin/QuartzCore/CMakeLists.txt index 40bc3639d84b6..57eb2da15b1dc 100644 --- a/stdlib/public/Darwin/QuartzCore/CMakeLists.txt +++ b/stdlib/public/Darwin/QuartzCore/CMakeLists.txt @@ -3,11 +3,11 @@ include("../../../../cmake/modules/StandaloneOverlay.cmake") add_swift_target_library(swiftQuartzCore ${SWIFT_SDK_OVERLAY_LIBRARY_BUILD_TYPES} IS_SDK_OVERLAY + "${SWIFT_SOURCE_DIR}/stdlib/linker-support/magic-symbols-for-install-name.c" + GYB_SOURCES NSValue.swift.gyb - "${SWIFT_SOURCE_DIR}/stdlib/linker-support/magic-symbols-for-install-name.c" - SWIFT_COMPILE_FLAGS "${SWIFT_RUNTIME_SWIFT_COMPILE_FLAGS}" LINK_FLAGS "${SWIFT_RUNTIME_SWIFT_LINK_FLAGS}" TARGET_SDKS OSX IOS IOS_SIMULATOR TVOS TVOS_SIMULATOR diff --git a/stdlib/public/Darwin/SceneKit/CMakeLists.txt b/stdlib/public/Darwin/SceneKit/CMakeLists.txt index 03fd4abcce1aa..3ff9eed2d47d8 100644 --- a/stdlib/public/Darwin/SceneKit/CMakeLists.txt +++ b/stdlib/public/Darwin/SceneKit/CMakeLists.txt @@ -3,11 +3,11 @@ include("../../../../cmake/modules/StandaloneOverlay.cmake") add_swift_target_library(swiftSceneKit ${SWIFT_SDK_OVERLAY_LIBRARY_BUILD_TYPES} IS_SDK_OVERLAY + "${SWIFT_SOURCE_DIR}/stdlib/linker-support/magic-symbols-for-install-name.c" + GYB_SOURCES SceneKit.swift.gyb - "${SWIFT_SOURCE_DIR}/stdlib/linker-support/magic-symbols-for-install-name.c" - SWIFT_COMPILE_FLAGS "${SWIFT_RUNTIME_SWIFT_COMPILE_FLAGS}" LINK_FLAGS "${SWIFT_RUNTIME_SWIFT_LINK_FLAGS}" TARGET_SDKS OSX IOS IOS_SIMULATOR TVOS TVOS_SIMULATOR WATCHOS WATCHOS_SIMULATOR diff --git a/stdlib/public/Darwin/SpriteKit/CMakeLists.txt b/stdlib/public/Darwin/SpriteKit/CMakeLists.txt index b7ee53a360cd7..0465bd05bbc79 100644 --- a/stdlib/public/Darwin/SpriteKit/CMakeLists.txt +++ b/stdlib/public/Darwin/SpriteKit/CMakeLists.txt @@ -4,11 +4,11 @@ include("../../../../cmake/modules/StandaloneOverlay.cmake") add_swift_target_library(swiftSpriteKit ${SWIFT_SDK_OVERLAY_LIBRARY_BUILD_TYPES} IS_SDK_OVERLAY SpriteKit.swift + "${SWIFT_SOURCE_DIR}/stdlib/linker-support/magic-symbols-for-install-name.c" + GYB_SOURCES SpriteKitQuickLooks.swift.gyb - "${SWIFT_SOURCE_DIR}/stdlib/linker-support/magic-symbols-for-install-name.c" - SWIFT_COMPILE_FLAGS "${SWIFT_RUNTIME_SWIFT_COMPILE_FLAGS}" LINK_FLAGS "${SWIFT_RUNTIME_SWIFT_LINK_FLAGS}" TARGET_SDKS OSX IOS IOS_SIMULATOR TVOS TVOS_SIMULATOR WATCHOS WATCHOS_SIMULATOR diff --git a/stdlib/public/Darwin/UIKit/CMakeLists.txt b/stdlib/public/Darwin/UIKit/CMakeLists.txt index d9e23903fedfc..7709f9e2309b9 100644 --- a/stdlib/public/Darwin/UIKit/CMakeLists.txt +++ b/stdlib/public/Darwin/UIKit/CMakeLists.txt @@ -5,11 +5,11 @@ add_swift_target_library(swiftUIKit ${SWIFT_SDK_OVERLAY_LIBRARY_BUILD_TYPES} IS_ DesignatedInitializers.mm UIKit.swift + "${SWIFT_SOURCE_DIR}/stdlib/linker-support/magic-symbols-for-install-name.c" + GYB_SOURCES UIKit_FoundationExtensions.swift.gyb - "${SWIFT_SOURCE_DIR}/stdlib/linker-support/magic-symbols-for-install-name.c" - SWIFT_COMPILE_FLAGS ${SWIFT_RUNTIME_SWIFT_COMPILE_FLAGS} -swift-version 4.2 LINK_FLAGS "${SWIFT_RUNTIME_SWIFT_LINK_FLAGS}" TARGET_SDKS IOS IOS_SIMULATOR TVOS TVOS_SIMULATOR WATCHOS WATCHOS_SIMULATOR diff --git a/stdlib/public/Darwin/simd/CMakeLists.txt b/stdlib/public/Darwin/simd/CMakeLists.txt index 8ae5b4339773e..46b57a38bbeae 100644 --- a/stdlib/public/Darwin/simd/CMakeLists.txt +++ b/stdlib/public/Darwin/simd/CMakeLists.txt @@ -3,12 +3,12 @@ include("../../../../cmake/modules/StandaloneOverlay.cmake") add_swift_target_library(swiftsimd ${SWIFT_SDK_OVERLAY_LIBRARY_BUILD_TYPES} IS_SDK_OVERLAY + "${SWIFT_SOURCE_DIR}/stdlib/linker-support/magic-symbols-for-install-name.c" + GYB_SOURCES simd.swift.gyb Quaternion.swift.gyb - "${SWIFT_SOURCE_DIR}/stdlib/linker-support/magic-symbols-for-install-name.c" - SWIFT_COMPILE_FLAGS "${SWIFT_RUNTIME_SWIFT_COMPILE_FLAGS}" LINK_FLAGS "${SWIFT_RUNTIME_SWIFT_LINK_FLAGS}" SWIFT_COMPILE_FLAGS -parse-stdlib From 26d44d5214698032c609ef0538c9aa846a8fafa7 Mon Sep 17 00:00:00 2001 From: Mike Ash Date: Fri, 22 Mar 2019 11:38:19 -0400 Subject: [PATCH 4/4] Properly configure the target library name used by magic-symbols-for-install-name.c. --- cmake/modules/AddSwift.cmake | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/cmake/modules/AddSwift.cmake b/cmake/modules/AddSwift.cmake index ed7285d93510a..e0962a0fcc175 100644 --- a/cmake/modules/AddSwift.cmake +++ b/cmake/modules/AddSwift.cmake @@ -1881,10 +1881,13 @@ function(add_swift_target_library name) endforeach() # Add PrivateFrameworks, rdar://28466433 + set(swiftlib_c_compile_flags_all ${SWIFTLIB_C_COMPILE_FLAGS}) if(sdk IN_LIST SWIFT_APPLE_PLATFORMS AND SWIFTLIB_IS_SDK_OVERLAY) set(swiftlib_swift_compile_private_frameworks_flag "-Fsystem" "${SWIFT_SDK_${sdk}_ARCH_${arch}_PATH}/System/Library/PrivateFrameworks/") endif() + list(APPEND swiftlib_c_compile_flags_all "-DSWIFT_TARGET_LIBRARY_NAME=${name}") + # Add this library variant. _add_swift_library_single( ${VARIANT_NAME} @@ -1902,7 +1905,7 @@ function(add_swift_target_library name) FRAMEWORK_DEPENDS_WEAK ${SWIFTLIB_FRAMEWORK_DEPENDS_WEAK} LLVM_COMPONENT_DEPENDS ${SWIFTLIB_LLVM_COMPONENT_DEPENDS} FILE_DEPENDS ${SWIFTLIB_FILE_DEPENDS} ${swiftlib_module_dependency_targets} - C_COMPILE_FLAGS ${SWIFTLIB_C_COMPILE_FLAGS} + C_COMPILE_FLAGS ${swiftlib_c_compile_flags_all} SWIFT_COMPILE_FLAGS ${swiftlib_swift_compile_flags_all} ${swiftlib_swift_compile_flags_arch} ${swiftlib_swift_compile_private_frameworks_flag} LINK_FLAGS ${swiftlib_link_flags_all} PRIVATE_LINK_LIBRARIES ${swiftlib_private_link_libraries_targets}