mirror of
https://github.com/apple/swift.git
synced 2025-12-14 20:36:38 +01:00
[overlay] Support the older @rpath Darwin library for _Builtin_float's $ld$previous$ symbols
The _Builtin_float symbols were moved twice, most recently from the OS Darwin library, but previously they were in the embedded @rpath Darwin library. @_originallyDefinedIn doesn't support multiple install names, but it can be replaced with -module-abi-name, and then multiple $ld$previous$ symbols can be used. Update the Platform and Concurrency magic symbols to use $ld$previous$ everywhere. rdar://130107191
This commit is contained in:
@@ -2,7 +2,7 @@
|
||||
//
|
||||
// This source file is part of the Swift.org open source project
|
||||
//
|
||||
// Copyright (c) 2014 - 2017 Apple Inc. and the Swift project authors
|
||||
// Copyright (c) 2014 - 2024 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
|
||||
@@ -19,74 +19,54 @@
|
||||
|
||||
#if defined(__APPLE__) && defined(__MACH__) && SWIFT_STDLIB_SUPPORT_BACK_DEPLOYMENT
|
||||
|
||||
#include <Availability.h>
|
||||
#include <mach-o/loader.h>
|
||||
#include <TargetConditionals.h>
|
||||
#include "swift/shims/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;
|
||||
// Swift was supported as an embedded library in macOS (née OS X) 10.9, iOS 7.0, watchOS 2.0, tvOS 9.0.
|
||||
// It became part of the OS in macOS 10.14.4, iOS 12.2, watchOS 5.2, tvOS 12.2. Projects can continue
|
||||
// to embed Swift, but the linker will see the OS version and try to link on that by default. In order
|
||||
// to support back deployment, add a magic symbol to the OS library so that back deployment will link
|
||||
// on the embedded library instead. When running on a newer OS, the OS version of the library will be
|
||||
// used due to Xcode inserting a runpath search path of /usr/lib/swift based on the deployment target
|
||||
// being less than SupportedTargets[target][SwiftOSRuntimeMinimumDeploymentTarget] in SDKSettings.plist.
|
||||
|
||||
#define RPATH_INSTALL_NAME_DIRECTIVE_IMPL(name, major, minor) \
|
||||
RPATH_INSTALL_NAME_DIRECTIVE_IMPL2(name, major, minor)
|
||||
// The linker uses a specially formatted symbol to do the back deployment:
|
||||
// $ld$previous$<install-name>$<compatibility-version>$<platform>$<start-version>$<end-version>$<symbol-name>$
|
||||
// compatibility-version and symbol-name are left off to apply to all library versions and symbols.
|
||||
// This symbol isn't a legal C identifier, so it needs to be specified with __asm.
|
||||
#define RPATH_PREVIOUS_DIRECTIVE_IMPL(name, platform, startVersion, endVersion) \
|
||||
SWIFT_RUNTIME_EXPORT const char ld_previous_ ## platform \
|
||||
__asm("$ld$previous$@rpath/lib" __STRING(name) ".dylib$$" __STRING(platform) "$" __STRING(startVersion) "$" __STRING(endVersion) "$$"); \
|
||||
const char ld_previous_ ## platform = 0;
|
||||
// Using the __STRING macro is important so that name and platform get expanded before being
|
||||
// stringified. The versions could just be #version, __STRING is only used for consistency.
|
||||
|
||||
#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)
|
||||
|
||||
// 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
|
||||
#define RPATH_PREVIOUS_DIRECTIVE(platform, startVersion, endVersion) \
|
||||
RPATH_PREVIOUS_DIRECTIVE_IMPL(SWIFT_TARGET_LIBRARY_NAME, platform, startVersion, endVersion)
|
||||
|
||||
#if TARGET_OS_OSX || TARGET_OS_MACCATALYST
|
||||
RPATH_PREVIOUS_DIRECTIVE(PLATFORM_MACOS, 10.9, 10.14.4)
|
||||
#elif TARGET_OS_IOS && !TARGET_OS_VISION
|
||||
#if TARGET_OS_SIMULATOR
|
||||
RPATH_PREVIOUS_DIRECTIVE(PLATFORM_IOSSIMULATOR, 7.0, 12.2)
|
||||
#else
|
||||
#error Unknown target.
|
||||
RPATH_PREVIOUS_DIRECTIVE(PLATFORM_IOS, 7.0, 12.2)
|
||||
#endif
|
||||
#elif TARGET_OS_WATCH
|
||||
#if TARGET_OS_SIMULATOR
|
||||
RPATH_PREVIOUS_DIRECTIVE(PLATFORM_WATCHOSSIMULATOR, 2.0, 5.2)
|
||||
#else
|
||||
RPATH_PREVIOUS_DIRECTIVE(PLATFORM_WATCHOS, 2.0, 5.2)
|
||||
#endif
|
||||
#elif TARGET_OS_TV
|
||||
#if TARGET_OS_SIMULATOR
|
||||
RPATH_PREVIOUS_DIRECTIVE(PLATFORM_TVOSSIMULATOR, 9.0, 12.2)
|
||||
#else
|
||||
RPATH_PREVIOUS_DIRECTIVE(PLATFORM_TVOS, 9.0, 12.2)
|
||||
#endif
|
||||
#endif
|
||||
// Swift wasn't supported as an embedded library in any other OS, so no need to create back deployment
|
||||
// symbols for any of the other ones.
|
||||
|
||||
#endif // defined(__APPLE__) && defined(__MACH__) && SWIFT_STDLIB_SUPPORT_BACK_DEPLOYMENT
|
||||
|
||||
@@ -1,6 +0,0 @@
|
||||
[
|
||||
{
|
||||
"module": "Darwin",
|
||||
"install_name": "/usr/lib/swift/libswiftDarwin.dylib"
|
||||
}
|
||||
]
|
||||
@@ -1,7 +1,15 @@
|
||||
if(NOT DEFINED SWIFT_BUILD_CLANG_OVERLAYS_SKIP_BUILTIN_FLOAT OR NOT SWIFT_BUILD_CLANG_OVERLAYS_SKIP_BUILTIN_FLOAT)
|
||||
if(CMAKE_SYSTEM_NAME STREQUAL "Darwin")
|
||||
set(BUILTIN_FLOAT_SWIFT_FLAGS -Xfrontend -module-abi-name -Xfrontend Darwin)
|
||||
else()
|
||||
set(BUILTIN_FLOAT_SWIFT_FLAGS)
|
||||
endif()
|
||||
|
||||
add_swift_target_library(swift_Builtin_float
|
||||
${SWIFT_STDLIB_LIBRARY_BUILD_TYPES}
|
||||
IS_SDK_OVERLAY
|
||||
|
||||
linker-support/magic-symbols-for-install-name.c
|
||||
|
||||
GYB_SOURCES
|
||||
float.swift.gyb
|
||||
@@ -9,7 +17,7 @@ if(NOT DEFINED SWIFT_BUILD_CLANG_OVERLAYS_SKIP_BUILTIN_FLOAT OR NOT SWIFT_BUILD_
|
||||
SWIFT_COMPILE_FLAGS
|
||||
${SWIFT_RUNTIME_SWIFT_COMPILE_FLAGS}
|
||||
${SWIFT_STANDARD_LIBRARY_SWIFT_FLAGS}
|
||||
-Xfrontend -previous-module-installname-map-file -Xfrontend "${SWIFT_SOURCE_DIR}/stdlib/linker-support/previous-module-installname.json"
|
||||
${BUILTIN_FLOAT_SWIFT_FLAGS}
|
||||
|
||||
LINK_FLAGS
|
||||
${SWIFT_RUNTIME_SWIFT_LINK_FLAGS}
|
||||
|
||||
@@ -14,7 +14,6 @@
|
||||
|
||||
@available(swift, deprecated: 3.0, message: "Please use 'T.radix' to get the radix of a FloatingPoint type 'T'.")
|
||||
@available(macOS 10.9, iOS 7.0, watchOS 2.0, tvOS 9.0, visionOS 1.0, *)
|
||||
@_originallyDefinedIn(module: "Darwin", macOS 15.0, iOS 18.0, watchOS 11.0, tvOS 18.0, visionOS 2.0)
|
||||
public let FLT_RADIX = Double.radix
|
||||
|
||||
%for type, prefix in [('Float', 'FLT'), ('Double', 'DBL'), ('Float80', 'LDBL')]:
|
||||
@@ -25,7 +24,6 @@ public let FLT_RADIX = Double.radix
|
||||
// significand bit, but Swift does not. Neither is really right or wrong.
|
||||
@available(swift, deprecated: 3.0, message: "Please use '${type}.significandBitCount + 1'.")
|
||||
@available(macOS 10.9, iOS 7.0, watchOS 2.0, tvOS 9.0, visionOS 1.0, *)
|
||||
@_originallyDefinedIn(module: "Darwin", macOS 15.0, iOS 18.0, watchOS 11.0, tvOS 18.0, visionOS 2.0)
|
||||
public let ${prefix}_MANT_DIG = ${type}.significandBitCount + 1
|
||||
|
||||
// Where does the 1 come from? C models floating-point numbers as having a
|
||||
@@ -34,32 +32,26 @@ public let ${prefix}_MANT_DIG = ${type}.significandBitCount + 1
|
||||
// as well.
|
||||
@available(swift, deprecated: 3.0, message: "Please use '${type}.greatestFiniteMagnitude.exponent + 1'.")
|
||||
@available(macOS 10.9, iOS 7.0, watchOS 2.0, tvOS 9.0, visionOS 1.0, *)
|
||||
@_originallyDefinedIn(module: "Darwin", macOS 15.0, iOS 18.0, watchOS 11.0, tvOS 18.0, visionOS 2.0)
|
||||
public let ${prefix}_MAX_EXP = ${type}.greatestFiniteMagnitude.exponent + 1
|
||||
|
||||
@available(swift, deprecated: 3.0, message: "Please use '${type}.leastNormalMagnitude.exponent + 1'.")
|
||||
@available(macOS 10.9, iOS 7.0, watchOS 2.0, tvOS 9.0, visionOS 1.0, *)
|
||||
@_originallyDefinedIn(module: "Darwin", macOS 15.0, iOS 18.0, watchOS 11.0, tvOS 18.0, visionOS 2.0)
|
||||
public let ${prefix}_MIN_EXP = ${type}.leastNormalMagnitude.exponent + 1
|
||||
|
||||
@available(swift, deprecated: 3.0, message: "Please use '${type}.greatestFiniteMagnitude' or '.greatestFiniteMagnitude'.")
|
||||
@available(macOS 10.9, iOS 7.0, watchOS 2.0, tvOS 9.0, visionOS 1.0, *)
|
||||
@_originallyDefinedIn(module: "Darwin", macOS 15.0, iOS 18.0, watchOS 11.0, tvOS 18.0, visionOS 2.0)
|
||||
public let ${prefix}_MAX = ${type}.greatestFiniteMagnitude
|
||||
|
||||
@available(swift, deprecated: 3.0, message: "Please use '${type}.ulpOfOne' or '.ulpOfOne'.")
|
||||
@available(macOS 10.9, iOS 7.0, watchOS 2.0, tvOS 9.0, visionOS 1.0, *)
|
||||
@_originallyDefinedIn(module: "Darwin", macOS 15.0, iOS 18.0, watchOS 11.0, tvOS 18.0, visionOS 2.0)
|
||||
public let ${prefix}_EPSILON = ${type}.ulpOfOne
|
||||
|
||||
@available(swift, deprecated: 3.0, message: "Please use '${type}.leastNormalMagnitude' or '.leastNormalMagnitude'.")
|
||||
@available(macOS 10.9, iOS 7.0, watchOS 2.0, tvOS 9.0, visionOS 1.0, *)
|
||||
@_originallyDefinedIn(module: "Darwin", macOS 15.0, iOS 18.0, watchOS 11.0, tvOS 18.0, visionOS 2.0)
|
||||
public let ${prefix}_MIN = ${type}.leastNormalMagnitude
|
||||
|
||||
@available(swift, deprecated: 3.0, message: "Please use '${type}.leastNonzeroMagnitude' or '.leastNonzeroMagnitude'.")
|
||||
@available(macOS 10.9, iOS 7.0, watchOS 2.0, tvOS 9.0, visionOS 1.0, *)
|
||||
@_originallyDefinedIn(module: "Darwin", macOS 15.0, iOS 18.0, watchOS 11.0, tvOS 18.0, visionOS 2.0)
|
||||
public let ${prefix}_TRUE_MIN = ${type}.leastNonzeroMagnitude
|
||||
|
||||
% if type == "Float80":
|
||||
|
||||
@@ -0,0 +1,88 @@
|
||||
//===--- magic-symbols-for-install-name.c - Magic linker directive symbols ===//
|
||||
//
|
||||
// This source file is part of the Swift.org open source project
|
||||
//
|
||||
// Copyright (c) 2024 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.
|
||||
//
|
||||
// This file is specific to the Builtin_float library; there is a matching
|
||||
// file for the standard library with the same name.
|
||||
//
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
#if defined(__APPLE__) && defined(__MACH__) && SWIFT_STDLIB_SUPPORT_BACK_DEPLOYMENT
|
||||
|
||||
#include <mach-o/loader.h>
|
||||
#include <TargetConditionals.h>
|
||||
#include "swift/shims/Visibility.h"
|
||||
|
||||
// Builtin_float was split out from the Darwin library in macOS 15.0, iOS 18.0, watchOS 11.0, tvOS 18.0,
|
||||
// visionOS 2.0 Prior to macOS 10.14.4, iOS 12.2, watchOS 5.2, tvOS 12.2, Darwin was supported as an
|
||||
// embedded library starting in macOS (née OS X) 10.9, iOS 7.0, watchOS 2.0, tvOS 9.0. In order to
|
||||
// support back deployment, add a magic symbol so that back deployment will link on Darwin instead, and
|
||||
// the embedded version on particularly old deployment targets. On newer OS versions, Darwin re-exports
|
||||
// Builtin_float which is where the APIs are implemented.
|
||||
|
||||
// The linker uses a specially formatted symbol to do the back deployment:
|
||||
// $ld$previous$<install-name>$<compatibility-version>$<platform>$<start-version>$<end-version>$<symbol-name>$
|
||||
// compatibility-version and symbol-name are left off to apply to all library versions and symbols.
|
||||
// This symbol isn't a legal C identifier, so it needs to be specified with __asm.
|
||||
#define DARWIN_RPATH_PREVIOUS_DIRECTIVE(platform, startVersion, endVersion) \
|
||||
SWIFT_RUNTIME_EXPORT const char ld_previous_rpath_ ## platform \
|
||||
__asm("$ld$previous$@rpath/libswiftDarwin.dylib$$" __STRING(platform) "$" __STRING(startVersion) "$" __STRING(endVersion) "$$"); \
|
||||
const char ld_previous_rpath_ ## platform = 0;
|
||||
// Using the __STRING macro is important so that platform gets expanded before being stringified.
|
||||
// The versions could just be #version, __STRING is only used for consistency.
|
||||
|
||||
#define DARWIN_PREVIOUS_DIRECTIVE(platform, startVersion, endVersion) \
|
||||
SWIFT_RUNTIME_EXPORT const char ld_previous_ ## platform \
|
||||
__asm("$ld$previous$/usr/lib/swift/libswiftDarwin.dylib$$" __STRING(platform) "$" __STRING(startVersion) "$" __STRING(endVersion) "$$"); \
|
||||
const char ld_previous_ ## platform = 0;
|
||||
|
||||
#if TARGET_OS_OSX || TARGET_OS_MACCATALYST
|
||||
DARWIN_RPATH_PREVIOUS_DIRECTIVE(PLATFORM_MACOS, 10.9, 10.14.4)
|
||||
DARWIN_PREVIOUS_DIRECTIVE(PLATFORM_MACOS, 10.14.4, 15.0)
|
||||
DARWIN_PREVIOUS_DIRECTIVE(PLATFORM_MACCATALYST, 13.1, 18.0)
|
||||
#elif TARGET_OS_IOS && !TARGET_OS_VISION
|
||||
#if TARGET_OS_SIMULATOR
|
||||
DARWIN_RPATH_PREVIOUS_DIRECTIVE(PLATFORM_IOSSIMULATOR, 7.0, 12.2)
|
||||
DARWIN_PREVIOUS_DIRECTIVE(PLATFORM_IOSSIMULATOR, 12.2, 18.0)
|
||||
#else
|
||||
DARWIN_RPATH_PREVIOUS_DIRECTIVE(PLATFORM_IOS, 7.0, 12.2)
|
||||
DARWIN_PREVIOUS_DIRECTIVE(PLATFORM_IOS, 12.2, 18.0)
|
||||
#endif
|
||||
#elif TARGET_OS_WATCH
|
||||
#if TARGET_OS_SIMULATOR
|
||||
DARWIN_RPATH_PREVIOUS_DIRECTIVE(PLATFORM_WATCHOSSIMULATOR, 2.0, 5.2)
|
||||
DARWIN_PREVIOUS_DIRECTIVE(PLATFORM_WATCHOSSIMULATOR, 5.2, 11.0)
|
||||
#else
|
||||
DARWIN_RPATH_PREVIOUS_DIRECTIVE(PLATFORM_WATCHOS, 2.0, 5.2)
|
||||
DARWIN_PREVIOUS_DIRECTIVE(PLATFORM_WATCHOS, 5.2, 11.0)
|
||||
#endif
|
||||
#elif TARGET_OS_TV
|
||||
#if TARGET_OS_SIMULATOR
|
||||
DARWIN_RPATH_PREVIOUS_DIRECTIVE(PLATFORM_TVOSSIMULATOR, 9.0, 12.2)
|
||||
DARWIN_PREVIOUS_DIRECTIVE(PLATFORM_TVOSSIMULATOR, 12.2, 18.0)
|
||||
#else
|
||||
DARWIN_RPATH_PREVIOUS_DIRECTIVE(PLATFORM_TVOS, 9.0, 12.2)
|
||||
DARWIN_PREVIOUS_DIRECTIVE(PLATFORM_TVOS, 12.2, 18.0)
|
||||
#endif
|
||||
#elif TARGET_OS_VISION
|
||||
#if TARGET_OS_SIMULATOR
|
||||
DARWIN_PREVIOUS_DIRECTIVE(PLATFORM_VISIONOSSIMULATOR, 1.0, 2.0);
|
||||
#else
|
||||
DARWIN_PREVIOUS_DIRECTIVE(PLATFORM_VISIONOS, 1.0, 2.0);
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#endif // defined(__APPLE__) && defined(__MACH__) && SWIFT_STDLIB_SUPPORT_BACK_DEPLOYMENT
|
||||
@@ -22,116 +22,55 @@
|
||||
|
||||
#if defined(__APPLE__) && defined(__MACH__) && SWIFT_STDLIB_SUPPORT_BACK_DEPLOYMENT
|
||||
|
||||
#include <Availability.h>
|
||||
#include <mach-o/loader.h>
|
||||
#include <TargetConditionals.h>
|
||||
#include "swift/shims/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;
|
||||
// Concurrency was supported as an embedded library in macOS 10.15, iOS 13.0, watchOS 6.0, tvOS 13.0. It
|
||||
// became part of the OS in macOS 12.0, iOS 15.0, watchOS 8.0, tvOS 15.0. Projects can continue to embed
|
||||
// Concurrency, but the linker will see the OS version and try to link on that by default. In order to
|
||||
// support back deployment, add a magic symbol to the OS library so that back deployment will link on the
|
||||
// embedded library instead. When running on a newer OS, the OS version of the library will be used due to
|
||||
// Xcode inserting a runpath search path of /usr/lib/swift based on the deployment target being less than
|
||||
// SupportedTargets[target][SwiftConcurrencyMinimumDeploymentTarget] in SDKSettings.plist.
|
||||
|
||||
#define RPATH_INSTALL_NAME_DIRECTIVE_IMPL(name, major, minor) \
|
||||
RPATH_INSTALL_NAME_DIRECTIVE_IMPL2(name, major, minor)
|
||||
// The linker uses a specially formatted symbol to do the back deployment:
|
||||
// $ld$previous$<install-name>$<compatibility-version>$<platform>$<start-version>$<end-version>$<symbol-name>$
|
||||
// compatibility-version and symbol-name are left off to apply to all library versions and symbols.
|
||||
// This symbol isn't a legal C identifier, so it needs to be specified with __asm.
|
||||
#define RPATH_PREVIOUS_DIRECTIVE_IMPL(name, platform, startVersion, endVersion) \
|
||||
SWIFT_RUNTIME_EXPORT const char ld_previous_ ## platform \
|
||||
__asm("$ld$previous$@rpath/lib" __STRING(name) ".dylib$$" __STRING(platform) "$" __STRING(startVersion) "$" __STRING(endVersion) "$$"); \
|
||||
const char ld_previous_ ## platform = 0;
|
||||
// Using the __STRING macro is important so that name and platform get expanded before being
|
||||
// stringified. The versions could just be #version, __STRING is only used for consistency.
|
||||
|
||||
#define RPATH_INSTALL_NAME_DIRECTIVE(major, minor) \
|
||||
RPATH_INSTALL_NAME_DIRECTIVE_IMPL(SWIFT_TARGET_LIBRARY_NAME, major, minor)
|
||||
#define RPATH_PREVIOUS_DIRECTIVE(platform, startVersion, endVersion) \
|
||||
RPATH_PREVIOUS_DIRECTIVE_IMPL(SWIFT_TARGET_LIBRARY_NAME, platform, startVersion, endVersion)
|
||||
|
||||
|
||||
#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)
|
||||
RPATH_INSTALL_NAME_DIRECTIVE( 5, 2)
|
||||
RPATH_INSTALL_NAME_DIRECTIVE( 5, 3)
|
||||
RPATH_INSTALL_NAME_DIRECTIVE( 6, 0)
|
||||
RPATH_INSTALL_NAME_DIRECTIVE( 6, 1)
|
||||
RPATH_INSTALL_NAME_DIRECTIVE( 6, 2)
|
||||
RPATH_INSTALL_NAME_DIRECTIVE( 6, 3)
|
||||
RPATH_INSTALL_NAME_DIRECTIVE( 7, 0)
|
||||
RPATH_INSTALL_NAME_DIRECTIVE( 7, 1)
|
||||
RPATH_INSTALL_NAME_DIRECTIVE( 7, 2)
|
||||
RPATH_INSTALL_NAME_DIRECTIVE( 7, 3)
|
||||
RPATH_INSTALL_NAME_DIRECTIVE( 7, 4)
|
||||
RPATH_INSTALL_NAME_DIRECTIVE( 7, 5)
|
||||
RPATH_INSTALL_NAME_DIRECTIVE( 7, 6)
|
||||
#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)
|
||||
RPATH_INSTALL_NAME_DIRECTIVE(12, 2)
|
||||
RPATH_INSTALL_NAME_DIRECTIVE(12, 3)
|
||||
RPATH_INSTALL_NAME_DIRECTIVE(12, 4)
|
||||
RPATH_INSTALL_NAME_DIRECTIVE(12, 5)
|
||||
RPATH_INSTALL_NAME_DIRECTIVE(13, 0)
|
||||
RPATH_INSTALL_NAME_DIRECTIVE(13, 1)
|
||||
RPATH_INSTALL_NAME_DIRECTIVE(13, 2)
|
||||
RPATH_INSTALL_NAME_DIRECTIVE(13, 3)
|
||||
RPATH_INSTALL_NAME_DIRECTIVE(13, 4)
|
||||
RPATH_INSTALL_NAME_DIRECTIVE(13, 5)
|
||||
RPATH_INSTALL_NAME_DIRECTIVE(13, 6)
|
||||
RPATH_INSTALL_NAME_DIRECTIVE(13, 7)
|
||||
RPATH_INSTALL_NAME_DIRECTIVE(14, 0)
|
||||
RPATH_INSTALL_NAME_DIRECTIVE(14, 1)
|
||||
RPATH_INSTALL_NAME_DIRECTIVE(14, 2)
|
||||
RPATH_INSTALL_NAME_DIRECTIVE(14, 3)
|
||||
RPATH_INSTALL_NAME_DIRECTIVE(14, 4)
|
||||
RPATH_INSTALL_NAME_DIRECTIVE(14, 5)
|
||||
RPATH_INSTALL_NAME_DIRECTIVE(14, 6)
|
||||
RPATH_INSTALL_NAME_DIRECTIVE(14, 7)
|
||||
RPATH_INSTALL_NAME_DIRECTIVE(14, 8)
|
||||
#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, 15)
|
||||
RPATH_INSTALL_NAME_DIRECTIVE(10, 14)
|
||||
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(11, 5)
|
||||
RPATH_INSTALL_NAME_DIRECTIVE(11, 6)
|
||||
|
||||
// Link against @rpath/libswift_Concurrency.dylib for macCatalyst < 15.0.
|
||||
SWIFT_RUNTIME_EXPORT const char ld_previous_macCatalyst
|
||||
__asm("$ld$previous$@rpath/libswift_Concurrency.dylib$$6$1.0$15.0$");
|
||||
|
||||
const char ld_previous_macCatalyst = 0;
|
||||
#if TARGET_OS_OSX || TARGET_OS_MACCATALYST
|
||||
RPATH_PREVIOUS_DIRECTIVE(PLATFORM_MACOS, 10.15, 12.0)
|
||||
RPATH_PREVIOUS_DIRECTIVE(PLATFORM_MACCATALYST, 13.1, 15.0)
|
||||
#elif TARGET_OS_IOS && !TARGET_OS_VISION
|
||||
#if TARGET_OS_SIMULATOR
|
||||
RPATH_PREVIOUS_DIRECTIVE(PLATFORM_IOSSIMULATOR, 13.0, 15.0)
|
||||
#else
|
||||
#error Unknown target.
|
||||
RPATH_PREVIOUS_DIRECTIVE(PLATFORM_IOS, 13.0, 15.0)
|
||||
#endif
|
||||
#elif TARGET_OS_WATCH
|
||||
#if TARGET_OS_SIMULATOR
|
||||
RPATH_PREVIOUS_DIRECTIVE(PLATFORM_WATCHOSSIMULATOR, 6.0, 8.0)
|
||||
#else
|
||||
RPATH_PREVIOUS_DIRECTIVE(PLATFORM_WATCHOS, 6.0, 8.0)
|
||||
#endif
|
||||
#elif TARGET_OS_TV
|
||||
#if TARGET_OS_SIMULATOR
|
||||
RPATH_PREVIOUS_DIRECTIVE(PLATFORM_TVOSSIMULATOR, 13.0, 15.0)
|
||||
#else
|
||||
RPATH_PREVIOUS_DIRECTIVE(PLATFORM_TVOS, 13.0, 15.0)
|
||||
#endif
|
||||
#endif
|
||||
// Concurrency wasn't supported as an embedded library in any other OS, so no need to create back deployment
|
||||
// symbols for any of the other ones.
|
||||
|
||||
#endif // defined(__APPLE__) && defined(__MACH__) && SWIFT_STDLIB_SUPPORT_BACK_DEPLOYMENT
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
// RUN: %empty-directory(%t)
|
||||
// RUN: %target-build-swift -target %target-cpu-apple-macosx12 %s -o %t/linking_direct
|
||||
// RUN: %target-build-swift -target %target-cpu-apple-macosx11 %s -o %t/linking_rpath
|
||||
// RUN: %target-build-swift -target %target-cpu-apple-macosx10.13 %s -o %t/linking_rpath_old
|
||||
// RUN: %target-build-swift -target %target-cpu-apple-macosx10.15 %s -o %t/linking_rpath_old
|
||||
|
||||
// RUN: otool -L %t/linking_direct | %FileCheck -check-prefix CHECK-DIRECT %s
|
||||
// RUN: otool -L %t/linking_rpath | %FileCheck -check-prefix CHECK-RPATH %s
|
||||
|
||||
19
test/abi/Inputs/macOS/arm64/builtin_float/baseline
Normal file
19
test/abi/Inputs/macOS/arm64/builtin_float/baseline
Normal file
@@ -0,0 +1,19 @@
|
||||
$ld$previous$/usr/lib/swift/libswiftDarwin.dylib$$1$10.14.4$15.0$$
|
||||
$ld$previous$/usr/lib/swift/libswiftDarwin.dylib$$6$13.1$18.0$$
|
||||
$ld$previous$@rpath/libswiftDarwin.dylib$$1$10.9$10.14.4$$
|
||||
_$s6Darwin11DBL_EPSILONSdvg
|
||||
_$s6Darwin11DBL_MAX_EXPSivg
|
||||
_$s6Darwin11DBL_MIN_EXPSivg
|
||||
_$s6Darwin11FLT_EPSILONSfvg
|
||||
_$s6Darwin11FLT_MAX_EXPSivg
|
||||
_$s6Darwin11FLT_MIN_EXPSivg
|
||||
_$s6Darwin12DBL_MANT_DIGSivg
|
||||
_$s6Darwin12DBL_TRUE_MINSdvg
|
||||
_$s6Darwin12FLT_MANT_DIGSivg
|
||||
_$s6Darwin12FLT_TRUE_MINSfvg
|
||||
_$s6Darwin7DBL_MAXSdvg
|
||||
_$s6Darwin7DBL_MINSdvg
|
||||
_$s6Darwin7FLT_MAXSfvg
|
||||
_$s6Darwin7FLT_MINSfvg
|
||||
_$s6Darwin9FLT_RADIXSivg
|
||||
__swift_FORCE_LOAD_$_swift_Builtin_float
|
||||
19
test/abi/Inputs/macOS/arm64/builtin_float/baseline-asserts
Normal file
19
test/abi/Inputs/macOS/arm64/builtin_float/baseline-asserts
Normal file
@@ -0,0 +1,19 @@
|
||||
$ld$previous$/usr/lib/swift/libswiftDarwin.dylib$$1$10.14.4$15.0$$
|
||||
$ld$previous$/usr/lib/swift/libswiftDarwin.dylib$$6$13.1$18.0$$
|
||||
$ld$previous$@rpath/libswiftDarwin.dylib$$1$10.9$10.14.4$$
|
||||
_$s6Darwin11DBL_EPSILONSdvg
|
||||
_$s6Darwin11DBL_MAX_EXPSivg
|
||||
_$s6Darwin11DBL_MIN_EXPSivg
|
||||
_$s6Darwin11FLT_EPSILONSfvg
|
||||
_$s6Darwin11FLT_MAX_EXPSivg
|
||||
_$s6Darwin11FLT_MIN_EXPSivg
|
||||
_$s6Darwin12DBL_MANT_DIGSivg
|
||||
_$s6Darwin12DBL_TRUE_MINSdvg
|
||||
_$s6Darwin12FLT_MANT_DIGSivg
|
||||
_$s6Darwin12FLT_TRUE_MINSfvg
|
||||
_$s6Darwin7DBL_MAXSdvg
|
||||
_$s6Darwin7DBL_MINSdvg
|
||||
_$s6Darwin7FLT_MAXSfvg
|
||||
_$s6Darwin7FLT_MINSfvg
|
||||
_$s6Darwin9FLT_RADIXSivg
|
||||
__swift_FORCE_LOAD_$_swift_Builtin_float
|
||||
@@ -1,18 +1,5 @@
|
||||
$ld$install_name$os10.10$@rpath/libswift_Concurrency.dylib
|
||||
$ld$install_name$os10.11$@rpath/libswift_Concurrency.dylib
|
||||
$ld$install_name$os10.12$@rpath/libswift_Concurrency.dylib
|
||||
$ld$install_name$os10.13$@rpath/libswift_Concurrency.dylib
|
||||
$ld$install_name$os10.14$@rpath/libswift_Concurrency.dylib
|
||||
$ld$install_name$os10.15$@rpath/libswift_Concurrency.dylib
|
||||
$ld$install_name$os10.9$@rpath/libswift_Concurrency.dylib
|
||||
$ld$install_name$os11.0$@rpath/libswift_Concurrency.dylib
|
||||
$ld$install_name$os11.1$@rpath/libswift_Concurrency.dylib
|
||||
$ld$install_name$os11.2$@rpath/libswift_Concurrency.dylib
|
||||
$ld$install_name$os11.3$@rpath/libswift_Concurrency.dylib
|
||||
$ld$install_name$os11.4$@rpath/libswift_Concurrency.dylib
|
||||
$ld$install_name$os11.5$@rpath/libswift_Concurrency.dylib
|
||||
$ld$install_name$os11.6$@rpath/libswift_Concurrency.dylib
|
||||
$ld$previous$@rpath/libswift_Concurrency.dylib$$6$1.0$15.0$
|
||||
$ld$previous$@rpath/libswift_Concurrency.dylib$$1$10.15$12.0$$
|
||||
$ld$previous$@rpath/libswift_Concurrency.dylib$$6$13.1$15.0$$
|
||||
_$s13AsyncIteratorSciTl
|
||||
_$s7ElementScITl
|
||||
_$s7ElementSciTl
|
||||
|
||||
@@ -1,18 +1,5 @@
|
||||
$ld$install_name$os10.10$@rpath/libswift_Concurrency.dylib
|
||||
$ld$install_name$os10.11$@rpath/libswift_Concurrency.dylib
|
||||
$ld$install_name$os10.12$@rpath/libswift_Concurrency.dylib
|
||||
$ld$install_name$os10.13$@rpath/libswift_Concurrency.dylib
|
||||
$ld$install_name$os10.14$@rpath/libswift_Concurrency.dylib
|
||||
$ld$install_name$os10.15$@rpath/libswift_Concurrency.dylib
|
||||
$ld$install_name$os10.9$@rpath/libswift_Concurrency.dylib
|
||||
$ld$install_name$os11.0$@rpath/libswift_Concurrency.dylib
|
||||
$ld$install_name$os11.1$@rpath/libswift_Concurrency.dylib
|
||||
$ld$install_name$os11.2$@rpath/libswift_Concurrency.dylib
|
||||
$ld$install_name$os11.3$@rpath/libswift_Concurrency.dylib
|
||||
$ld$install_name$os11.4$@rpath/libswift_Concurrency.dylib
|
||||
$ld$install_name$os11.5$@rpath/libswift_Concurrency.dylib
|
||||
$ld$install_name$os11.6$@rpath/libswift_Concurrency.dylib
|
||||
$ld$previous$@rpath/libswift_Concurrency.dylib$$6$1.0$15.0$
|
||||
$ld$previous$@rpath/libswift_Concurrency.dylib$$1$10.15$12.0$$
|
||||
$ld$previous$@rpath/libswift_Concurrency.dylib$$6$13.1$15.0$$
|
||||
_$s13AsyncIteratorSciTl
|
||||
_$s7ElementScITl
|
||||
_$s7ElementSciTl
|
||||
|
||||
@@ -1,9 +1,4 @@
|
||||
$ld$install_name$os10.10$@rpath/libswiftCore.dylib
|
||||
$ld$install_name$os10.11$@rpath/libswiftCore.dylib
|
||||
$ld$install_name$os10.12$@rpath/libswiftCore.dylib
|
||||
$ld$install_name$os10.13$@rpath/libswiftCore.dylib
|
||||
$ld$install_name$os10.14$@rpath/libswiftCore.dylib
|
||||
$ld$install_name$os10.9$@rpath/libswiftCore.dylib
|
||||
$ld$previous$@rpath/libswiftCore.dylib$$1$10.9$10.14.4$$
|
||||
_$s11MaskStorages4SIMDPTl
|
||||
_$s11RawExponentSBTl
|
||||
_$s11SubSequenceSlTl
|
||||
|
||||
@@ -1,9 +1,4 @@
|
||||
$ld$install_name$os10.10$@rpath/libswiftCore.dylib
|
||||
$ld$install_name$os10.11$@rpath/libswiftCore.dylib
|
||||
$ld$install_name$os10.12$@rpath/libswiftCore.dylib
|
||||
$ld$install_name$os10.13$@rpath/libswiftCore.dylib
|
||||
$ld$install_name$os10.14$@rpath/libswiftCore.dylib
|
||||
$ld$install_name$os10.9$@rpath/libswiftCore.dylib
|
||||
$ld$previous$@rpath/libswiftCore.dylib$$1$10.9$10.14.4$$
|
||||
_$s11MaskStorages4SIMDPTl
|
||||
_$s11RawExponentSBTl
|
||||
_$s11SubSequenceSlTl
|
||||
|
||||
26
test/abi/Inputs/macOS/x86_64/builtin_float/baseline
Normal file
26
test/abi/Inputs/macOS/x86_64/builtin_float/baseline
Normal file
@@ -0,0 +1,26 @@
|
||||
$ld$previous$/usr/lib/swift/libswiftDarwin.dylib$$1$10.14.4$15.0$$
|
||||
$ld$previous$/usr/lib/swift/libswiftDarwin.dylib$$6$13.1$18.0$$
|
||||
$ld$previous$@rpath/libswiftDarwin.dylib$$1$10.9$10.14.4$$
|
||||
_$s6Darwin11DBL_EPSILONSdvg
|
||||
_$s6Darwin11DBL_MAX_EXPSivg
|
||||
_$s6Darwin11DBL_MIN_EXPSivg
|
||||
_$s6Darwin11FLT_EPSILONSfvg
|
||||
_$s6Darwin11FLT_MAX_EXPSivg
|
||||
_$s6Darwin11FLT_MIN_EXPSivg
|
||||
_$s6Darwin12DBL_MANT_DIGSivg
|
||||
_$s6Darwin12DBL_TRUE_MINSdvg
|
||||
_$s6Darwin12FLT_MANT_DIGSivg
|
||||
_$s6Darwin12FLT_TRUE_MINSfvg
|
||||
_$s6Darwin12LDBL_EPSILONs7Float80Vvg
|
||||
_$s6Darwin12LDBL_MAX_EXPSivg
|
||||
_$s6Darwin12LDBL_MIN_EXPSivg
|
||||
_$s6Darwin13LDBL_MANT_DIGSivg
|
||||
_$s6Darwin13LDBL_TRUE_MINs7Float80Vvg
|
||||
_$s6Darwin7DBL_MAXSdvg
|
||||
_$s6Darwin7DBL_MINSdvg
|
||||
_$s6Darwin7FLT_MAXSfvg
|
||||
_$s6Darwin7FLT_MINSfvg
|
||||
_$s6Darwin8LDBL_MAXs7Float80Vvg
|
||||
_$s6Darwin8LDBL_MINs7Float80Vvg
|
||||
_$s6Darwin9FLT_RADIXSivg
|
||||
__swift_FORCE_LOAD_$_swift_Builtin_float
|
||||
26
test/abi/Inputs/macOS/x86_64/builtin_float/baseline-asserts
Normal file
26
test/abi/Inputs/macOS/x86_64/builtin_float/baseline-asserts
Normal file
@@ -0,0 +1,26 @@
|
||||
$ld$previous$/usr/lib/swift/libswiftDarwin.dylib$$1$10.14.4$15.0$$
|
||||
$ld$previous$/usr/lib/swift/libswiftDarwin.dylib$$6$13.1$18.0$$
|
||||
$ld$previous$@rpath/libswiftDarwin.dylib$$1$10.9$10.14.4$$
|
||||
_$s6Darwin11DBL_EPSILONSdvg
|
||||
_$s6Darwin11DBL_MAX_EXPSivg
|
||||
_$s6Darwin11DBL_MIN_EXPSivg
|
||||
_$s6Darwin11FLT_EPSILONSfvg
|
||||
_$s6Darwin11FLT_MAX_EXPSivg
|
||||
_$s6Darwin11FLT_MIN_EXPSivg
|
||||
_$s6Darwin12DBL_MANT_DIGSivg
|
||||
_$s6Darwin12DBL_TRUE_MINSdvg
|
||||
_$s6Darwin12FLT_MANT_DIGSivg
|
||||
_$s6Darwin12FLT_TRUE_MINSfvg
|
||||
_$s6Darwin12LDBL_EPSILONs7Float80Vvg
|
||||
_$s6Darwin12LDBL_MAX_EXPSivg
|
||||
_$s6Darwin12LDBL_MIN_EXPSivg
|
||||
_$s6Darwin13LDBL_MANT_DIGSivg
|
||||
_$s6Darwin13LDBL_TRUE_MINs7Float80Vvg
|
||||
_$s6Darwin7DBL_MAXSdvg
|
||||
_$s6Darwin7DBL_MINSdvg
|
||||
_$s6Darwin7FLT_MAXSfvg
|
||||
_$s6Darwin7FLT_MINSfvg
|
||||
_$s6Darwin8LDBL_MAXs7Float80Vvg
|
||||
_$s6Darwin8LDBL_MINs7Float80Vvg
|
||||
_$s6Darwin9FLT_RADIXSivg
|
||||
__swift_FORCE_LOAD_$_swift_Builtin_float
|
||||
@@ -1,18 +1,5 @@
|
||||
$ld$install_name$os10.10$@rpath/libswift_Concurrency.dylib
|
||||
$ld$install_name$os10.11$@rpath/libswift_Concurrency.dylib
|
||||
$ld$install_name$os10.12$@rpath/libswift_Concurrency.dylib
|
||||
$ld$install_name$os10.13$@rpath/libswift_Concurrency.dylib
|
||||
$ld$install_name$os10.14$@rpath/libswift_Concurrency.dylib
|
||||
$ld$install_name$os10.15$@rpath/libswift_Concurrency.dylib
|
||||
$ld$install_name$os10.9$@rpath/libswift_Concurrency.dylib
|
||||
$ld$install_name$os11.0$@rpath/libswift_Concurrency.dylib
|
||||
$ld$install_name$os11.1$@rpath/libswift_Concurrency.dylib
|
||||
$ld$install_name$os11.2$@rpath/libswift_Concurrency.dylib
|
||||
$ld$install_name$os11.3$@rpath/libswift_Concurrency.dylib
|
||||
$ld$install_name$os11.4$@rpath/libswift_Concurrency.dylib
|
||||
$ld$install_name$os11.5$@rpath/libswift_Concurrency.dylib
|
||||
$ld$install_name$os11.6$@rpath/libswift_Concurrency.dylib
|
||||
$ld$previous$@rpath/libswift_Concurrency.dylib$$6$1.0$15.0$
|
||||
$ld$previous$@rpath/libswift_Concurrency.dylib$$1$10.15$12.0$$
|
||||
$ld$previous$@rpath/libswift_Concurrency.dylib$$6$13.1$15.0$$
|
||||
_$s13AsyncIteratorSciTl
|
||||
_$s7ElementScITl
|
||||
_$s7ElementSciTl
|
||||
|
||||
@@ -1,18 +1,5 @@
|
||||
$ld$install_name$os10.10$@rpath/libswift_Concurrency.dylib
|
||||
$ld$install_name$os10.11$@rpath/libswift_Concurrency.dylib
|
||||
$ld$install_name$os10.12$@rpath/libswift_Concurrency.dylib
|
||||
$ld$install_name$os10.13$@rpath/libswift_Concurrency.dylib
|
||||
$ld$install_name$os10.14$@rpath/libswift_Concurrency.dylib
|
||||
$ld$install_name$os10.15$@rpath/libswift_Concurrency.dylib
|
||||
$ld$install_name$os10.9$@rpath/libswift_Concurrency.dylib
|
||||
$ld$install_name$os11.0$@rpath/libswift_Concurrency.dylib
|
||||
$ld$install_name$os11.1$@rpath/libswift_Concurrency.dylib
|
||||
$ld$install_name$os11.2$@rpath/libswift_Concurrency.dylib
|
||||
$ld$install_name$os11.3$@rpath/libswift_Concurrency.dylib
|
||||
$ld$install_name$os11.4$@rpath/libswift_Concurrency.dylib
|
||||
$ld$install_name$os11.5$@rpath/libswift_Concurrency.dylib
|
||||
$ld$install_name$os11.6$@rpath/libswift_Concurrency.dylib
|
||||
$ld$previous$@rpath/libswift_Concurrency.dylib$$6$1.0$15.0$
|
||||
$ld$previous$@rpath/libswift_Concurrency.dylib$$1$10.15$12.0$$
|
||||
$ld$previous$@rpath/libswift_Concurrency.dylib$$6$13.1$15.0$$
|
||||
_$s13AsyncIteratorSciTl
|
||||
_$s7ElementScITl
|
||||
_$s7ElementSciTl
|
||||
|
||||
@@ -1,9 +1,4 @@
|
||||
$ld$install_name$os10.10$@rpath/libswiftCore.dylib
|
||||
$ld$install_name$os10.11$@rpath/libswiftCore.dylib
|
||||
$ld$install_name$os10.12$@rpath/libswiftCore.dylib
|
||||
$ld$install_name$os10.13$@rpath/libswiftCore.dylib
|
||||
$ld$install_name$os10.14$@rpath/libswiftCore.dylib
|
||||
$ld$install_name$os10.9$@rpath/libswiftCore.dylib
|
||||
$ld$previous$@rpath/libswiftCore.dylib$$1$10.9$10.14.4$$
|
||||
_$s11MaskStorages4SIMDPTl
|
||||
_$s11RawExponentSBTl
|
||||
_$s11SubSequenceSlTl
|
||||
|
||||
@@ -1,9 +1,4 @@
|
||||
$ld$install_name$os10.10$@rpath/libswiftCore.dylib
|
||||
$ld$install_name$os10.11$@rpath/libswiftCore.dylib
|
||||
$ld$install_name$os10.12$@rpath/libswiftCore.dylib
|
||||
$ld$install_name$os10.13$@rpath/libswiftCore.dylib
|
||||
$ld$install_name$os10.14$@rpath/libswiftCore.dylib
|
||||
$ld$install_name$os10.9$@rpath/libswiftCore.dylib
|
||||
$ld$previous$@rpath/libswiftCore.dylib$$1$10.9$10.14.4$$
|
||||
_$s11MaskStorages4SIMDPTl
|
||||
_$s11RawExponentSBTl
|
||||
_$s11SubSequenceSlTl
|
||||
|
||||
41
test/abi/macOS/arm64/builtin_float-asserts.swift
Normal file
41
test/abi/macOS/arm64/builtin_float-asserts.swift
Normal file
@@ -0,0 +1,41 @@
|
||||
// RUN: %empty-directory(%t)
|
||||
// RUN: %llvm-nm -g --defined-only -f just-symbols %stdlib_dir/arm64/libswift_Builtin_float.dylib > %t/symbols
|
||||
// RUN: %abi-symbol-checker %s %t/symbols --base %S/builtin_float.swift
|
||||
// RUN: diff -u %S/../../Inputs/macOS/arm64/builtin_float/baseline-asserts %t/symbols
|
||||
|
||||
// REQUIRES: swift_stdlib_asserts
|
||||
// REQUIRES: STDLIB_VARIANT=macosx-arm64
|
||||
|
||||
// *** DO NOT DISABLE OR XFAIL THIS TEST. *** (See comment below.)
|
||||
|
||||
// Welcome, Build Wrangler!
|
||||
//
|
||||
// This file lists APIs that have recently changed in a way that potentially
|
||||
// indicates an ABI- or source-breaking problem.
|
||||
//
|
||||
// A failure in this test indicates that there is a potential breaking change in
|
||||
// the Standard Library. If you observe a failure outside of a PR test, please
|
||||
// reach out to the Standard Library team directly to make sure this gets
|
||||
// resolved quickly! If your own PR fails in this test, you probably have an
|
||||
// ABI- or source-breaking change in your commits. Please go and fix it.
|
||||
//
|
||||
// Please DO NOT DISABLE THIS TEST. In addition to ignoring the current set of
|
||||
// ABI breaks, XFAILing this test also silences any future ABI breaks that may
|
||||
// land on this branch, which simply generates extra work for the next person
|
||||
// that picks up the mess.
|
||||
//
|
||||
// Instead of disabling this test, you'll need to extend the list of expected
|
||||
// changes at the bottom. (You'll also need to do this if your own PR triggers
|
||||
// false positives, or if you have special permission to break things.) You can
|
||||
// find a diff of what needs to be added in the output of the failed test run.
|
||||
// The order of lines doesn't matter, and you can also include comments to refer
|
||||
// to any bugs you filed.
|
||||
//
|
||||
// Thank you for your help ensuring the stdlib remains compatible with its past!
|
||||
// -- Your friendly stdlib engineers
|
||||
|
||||
// *** NOTE: ***
|
||||
// You will normally add new entries in 'abi/macOS/arm64/builtin_float.swift' instead
|
||||
// of this file. This file is dedicated for assert only symbols.
|
||||
|
||||
// _Builtin_float Symbols
|
||||
37
test/abi/macOS/arm64/builtin_float.swift
Normal file
37
test/abi/macOS/arm64/builtin_float.swift
Normal file
@@ -0,0 +1,37 @@
|
||||
// RUN: %empty-directory(%t)
|
||||
// RUN: %llvm-nm -g --defined-only -f just-symbols %stdlib_dir/arm64/libswift_Builtin_float.dylib > %t/symbols
|
||||
// RUN: %abi-symbol-checker %s %t/symbols
|
||||
// RUN: diff -u %S/../../Inputs/macOS/arm64/builtin_float/baseline %t/symbols
|
||||
|
||||
// REQUIRES: swift_stdlib_no_asserts
|
||||
// REQUIRES: STDLIB_VARIANT=macosx-arm64
|
||||
|
||||
// *** DO NOT DISABLE OR XFAIL THIS TEST. *** (See comment below.)
|
||||
|
||||
// Welcome, Build Wrangler!
|
||||
//
|
||||
// This file lists APIs that have recently changed in a way that potentially
|
||||
// indicates an ABI- or source-breaking problem.
|
||||
//
|
||||
// A failure in this test indicates that there is a potential breaking change in
|
||||
// the Standard Library. If you observe a failure outside of a PR test, please
|
||||
// reach out to the Standard Library team directly to make sure this gets
|
||||
// resolved quickly! If your own PR fails in this test, you probably have an
|
||||
// ABI- or source-breaking change in your commits. Please go and fix it.
|
||||
//
|
||||
// Please DO NOT DISABLE THIS TEST. In addition to ignoring the current set of
|
||||
// ABI breaks, XFAILing this test also silences any future ABI breaks that may
|
||||
// land on this branch, which simply generates extra work for the next person
|
||||
// that picks up the mess.
|
||||
//
|
||||
// Instead of disabling this test, you'll need to extend the list of expected
|
||||
// changes at the bottom. (You'll also need to do this if your own PR triggers
|
||||
// false positives, or if you have special permission to break things.) You can
|
||||
// find a diff of what needs to be added in the output of the failed test run.
|
||||
// The order of lines doesn't matter, and you can also include comments to refer
|
||||
// to any bugs you filed.
|
||||
//
|
||||
// Thank you for your help ensuring the stdlib remains compatible with its past!
|
||||
// -- Your friendly stdlib engineers
|
||||
|
||||
// _Builtin_float Symbols
|
||||
41
test/abi/macOS/x86_64/builtin_float-asserts.swift
Normal file
41
test/abi/macOS/x86_64/builtin_float-asserts.swift
Normal file
@@ -0,0 +1,41 @@
|
||||
// RUN: %empty-directory(%t)
|
||||
// RUN: %llvm-nm -g --defined-only -f just-symbols %stdlib_dir/x86_64/libswift_Builtin_float.dylib > %t/symbols
|
||||
// RUN: %abi-symbol-checker %s %t/symbols --base %S/builtin_float.swift
|
||||
// RUN: diff -u %S/../../Inputs/macOS/x86_64/builtin_float/baseline-asserts %t/symbols
|
||||
|
||||
// REQUIRES: swift_stdlib_asserts
|
||||
// REQUIRES: STDLIB_VARIANT=macosx-x86_64
|
||||
|
||||
// *** DO NOT DISABLE OR XFAIL THIS TEST. *** (See comment below.)
|
||||
|
||||
// Welcome, Build Wrangler!
|
||||
//
|
||||
// This file lists APIs that have recently changed in a way that potentially
|
||||
// indicates an ABI- or source-breaking problem.
|
||||
//
|
||||
// A failure in this test indicates that there is a potential breaking change in
|
||||
// the Standard Library. If you observe a failure outside of a PR test, please
|
||||
// reach out to the Standard Library team directly to make sure this gets
|
||||
// resolved quickly! If your own PR fails in this test, you probably have an
|
||||
// ABI- or source-breaking change in your commits. Please go and fix it.
|
||||
//
|
||||
// Please DO NOT DISABLE THIS TEST. In addition to ignoring the current set of
|
||||
// ABI breaks, XFAILing this test also silences any future ABI breaks that may
|
||||
// land on this branch, which simply generates extra work for the next person
|
||||
// that picks up the mess.
|
||||
//
|
||||
// Instead of disabling this test, you'll need to extend the list of expected
|
||||
// changes at the bottom. (You'll also need to do this if your own PR triggers
|
||||
// false positives, or if you have special permission to break things.) You can
|
||||
// find a diff of what needs to be added in the output of the failed test run.
|
||||
// The order of lines doesn't matter, and you can also include comments to refer
|
||||
// to any bugs you filed.
|
||||
//
|
||||
// Thank you for your help ensuring the stdlib remains compatible with its past!
|
||||
// -- Your friendly stdlib engineers
|
||||
|
||||
// *** NOTE: ***
|
||||
// You will normally add new entries in 'abi/macOS/x86_64/builtin_float.swift' instead
|
||||
// of this file. This file is dedicated for assert only symbols.
|
||||
|
||||
// _Builtin_float Symbols
|
||||
37
test/abi/macOS/x86_64/builtin_float.swift
Normal file
37
test/abi/macOS/x86_64/builtin_float.swift
Normal file
@@ -0,0 +1,37 @@
|
||||
// RUN: %empty-directory(%t)
|
||||
// RUN: %llvm-nm -g --defined-only -f just-symbols %stdlib_dir/x86_64/libswift_Builtin_float.dylib > %t/symbols
|
||||
// RUN: %abi-symbol-checker %s %t/symbols
|
||||
// RUN: diff -u %S/../../Inputs/macOS/x86_64/builtin_float/baseline %t/symbols
|
||||
|
||||
// REQUIRES: swift_stdlib_no_asserts
|
||||
// REQUIRES: STDLIB_VARIANT=macosx-x86_64
|
||||
|
||||
// *** DO NOT DISABLE OR XFAIL THIS TEST. *** (See comment below.)
|
||||
|
||||
// Welcome, Build Wrangler!
|
||||
//
|
||||
// This file lists APIs that have recently changed in a way that potentially
|
||||
// indicates an ABI- or source-breaking problem.
|
||||
//
|
||||
// A failure in this test indicates that there is a potential breaking change in
|
||||
// the Standard Library. If you observe a failure outside of a PR test, please
|
||||
// reach out to the Standard Library team directly to make sure this gets
|
||||
// resolved quickly! If your own PR fails in this test, you probably have an
|
||||
// ABI- or source-breaking change in your commits. Please go and fix it.
|
||||
//
|
||||
// Please DO NOT DISABLE THIS TEST. In addition to ignoring the current set of
|
||||
// ABI breaks, XFAILing this test also silences any future ABI breaks that may
|
||||
// land on this branch, which simply generates extra work for the next person
|
||||
// that picks up the mess.
|
||||
//
|
||||
// Instead of disabling this test, you'll need to extend the list of expected
|
||||
// changes at the bottom. (You'll also need to do this if your own PR triggers
|
||||
// false positives, or if you have special permission to break things.) You can
|
||||
// find a diff of what needs to be added in the output of the failed test run.
|
||||
// The order of lines doesn't matter, and you can also include comments to refer
|
||||
// to any bugs you filed.
|
||||
//
|
||||
// Thank you for your help ensuring the stdlib remains compatible with its past!
|
||||
// -- Your friendly stdlib engineers
|
||||
|
||||
// _Builtin_float Symbols
|
||||
Reference in New Issue
Block a user