At the type that I introduced type throws into AsyncSequence and its
algorithms, I accidentally dropped a `@preconcurrency` on the ABI
entrypoint, leading to a mangled name change.
Fixes rdar://123639030.
Have SWIFT_DEBUG_LIB_PRESPECIALIZED_PATH use dlopen with RTLD_NOLOAD. We don't want it to allow loading arbitrary dylibs. Instead, a user can use something like DYLD_INSERT_LIBRARIES to load the dylib, which we will then pick up in the runtime, and processes that deny DYLD_INSERT_LIBRARIES will not be able to work around it with SWIFT_DEBUG_LIB_PRESPECIALIZED_PATH.
rdar://123643585
The _Builtin_float interfaces were defined in $@rpath/lib/libswiftDarwin.dylib until macOS 10.14.4 and then in usr/lib/swift/libswiftDarwin.dylib after that. We were trying to use magic-symbols-for-install-name for the first one and @_originallyDefinedIn for the second one. However, @_originallyDefinedIn uses the @available introduced version as the first bound for $ld$previous$ which conflicts with the magic-symbols-for-install-name $ld$install_name$. Eventually @_originallyDefinedIn will need to support multiple install names, but until then just use it as-is and stop using magic-symbols-for-install-name.
Add the missing @_originallyDefinedIn on FLT_RADIX, and match the watchOS/tvOS order between @_originallyDefinedIn and @available.
There was no tvOS 7.0, the first one was 9.0.
rdar://122351557
We should always be using `<errno.h>`, not `<sys/errno.h>`. The
former is part of the C standard. The latter is a non-standard
header that happens to be present on some systems.
rdar://123507361
The standard library's swiftinterface must temporarily remain buildable when
`$TypedThrows` evaluates to false since there are still supported Swift 5.11
compilers that did not have the feature enabled by default. Declarations using
typed throws in their signatures are guarded in printed swiftinterface files
with `#if $TypedThrows` and therefore `@inlinable` code that uses those
declarations must also be conditionalized on `$TypedThrows`.
Introduces the first use of `@_DebugDescription` in the standard library, applying it
to `ObjectIdentifier`. In order to use the DebugDescription macro in the stdlib, the
following changes are required:
1. Compilation must reference the just built macros (ie `libSwiftMacros.dylib`), not
those from the SDK. This is addressed by adding an explicit `-external-plugin-path`
flag that overrides the defaults generated by the compiler (which uses SDK paths, where
the macro may or may not exist, and may not be the current version).
2. As DebugDescription uses `@_section`, compilation enables the `SymbolLinkageMarkers`
feature.
Note that the use of DebugDescription is conditionally enabled for the following
reasons:
1. Use is disabled in freestanding builds, where the stdlib macros are not built.
2. Use is temporarily disabled in Linux builds due to a dynamic loader issue that needs
further investigation
The dynamic loader error causing issues with Linux CI is:
> swift-plugin-server: error while loading shared libraries: libswiftGlibc.so: cannot
open shared object file: No such file or directory
This PR depended on #71639, #71588, and #71685.
In `/proc/self/maps`, the stack isn't necessarily a single range, even
immediately after process start-up. Apparently sometimes it's possible
for the kernel to allocate extra ranges below the first one, and these
show up separately in `/proc/self/maps`.
The upshot was that we were finding that `environ` didn't point into
the stack range we found, and then returning no arguments as a result.
The fix is to merge contiguous ranges after the first stack range we
find in `/proc/self/maps`.
rdar://117963394
This change enables the `--gc-sections` linker flag for WebAssembly
targets by default. This flag has been disabled because it did not
respect `llvm.used` and it caused stripping `swift5` metadata sections
even though they were used through encapsulation symbols (a.k.a `__start`/`__stop`).
The issue has been fixed in the LLVM side (ba3c1f9ce3)
by adding new segment flags to the WebAssembly object file format.
This is a follow up patch that allows for external DescriptorFinders to
provide MultiPayloadEnumDescriptors (this is done to support embedded
Swift debugging, which encodes the equivalent of Swift metadata as
DWARF).