[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:
Ian Anderson
2024-07-02 17:02:58 -07:00
parent bb16e50237
commit 9e9d66efc9
23 changed files with 440 additions and 265 deletions

View File

@@ -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

View File

@@ -1,6 +0,0 @@
[
{
"module": "Darwin",
"install_name": "/usr/lib/swift/libswiftDarwin.dylib"
}
]

View File

@@ -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}

View File

@@ -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":

View File

@@ -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

View File

@@ -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

View File

@@ -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

View 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

View 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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View 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

View 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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View 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

View 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

View 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

View 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