-
Notifications
You must be signed in to change notification settings - Fork 10.5k
🍒6.2: Grabbing missing changes on main for FreeBSD support #83500
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Draft
etcwilde
wants to merge
13
commits into
swiftlang:release/6.2
Choose a base branch
from
etcwilde:ewilde/mega-freebsd-cherry-pick
base: release/6.2
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Draft
🍒6.2: Grabbing missing changes on main for FreeBSD support #83500
etcwilde
wants to merge
13
commits into
swiftlang:release/6.2
from
etcwilde:ewilde/mega-freebsd-cherry-pick
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Adding a preset for building the FreeBSD toolchain and runtime package. This is very similar to the Linux package build, but the main difference is the lack of WASM build. The WASM runtime build system uses GNU extensions in its makefiles that are not compatible with the make or gmake on FreeBSD and therefore cannot be built there. (cherry picked from commit dbb3498)
The SIMD module is not available on FreeBSD, disabling it. (cherry picked from commit 3316e82)
Fixing pthread usage in tsan and tsan-inout tests. pthreads are imported as opaque pointers on FreeBDS, and thus need to be kept in an optional pthread_t, like on Apple platforms. Unlike on macOS, pthread_join is not annotated with nullability annotations and thus takes an optional opaque pointer, so we don't need to unwrap it. (cherry picked from commit 79f7b63)
Newer versions of lld are keeping the unused function section for func2, causing this test to fail. (cherry picked from commit 6b0f814)
The CCryptoBoringSSL library changed from C to C++, which means that the static archive on Windows changed names, from `CCryptoBoringSSL.lib` to `libCCryptoBoringSSL.lib`. The SourceKit-LSP SwiftPM test invocation explicitly passed `CCryptoBoringSSL.lib` to the SwiftPM invocation, resulting in the wrong search path. Pointing it at the correct location now. (cherry picked from commit 2ff24aa)
Updating the tags for Swift-Collections, Swift-Crypto, Swift-Certificates, and Swift-ASN1 to pick up changes needed for FreeBSD. e9d42a4
The clang resource directory generally does not use a versioned form of the platform name. This aligns the old driver behavior with the new driver for FreeBSD support. https://github.com/swiftlang/swift-driver/blob/a7f32bd005de1b998495ddc052bf78fc3cebdaa5/Sources/SwiftDriver/Jobs/GenericUnixToolchain%2BLinkerSupport.swift#L309 (cherry picked from commit dbe7c13)
(cherry picked from commit 9d915c6)
The sourcekit in proc dynamic library looks up runtimes in a spot relative to the Swift compiler. Set this location on freebsd, fixing the sourcekit tests. (cherry picked from commit 90eed66)
Some of these tests were marked as unsupported since they were only checking for macOS and Linux. They seem to be passing on FreeBSD as well, so enabling them here. (cherry picked from commit 3a48d6e)
This hooks up the autolink mechanism to link the C++ runtime when C++ interop is enabled on FreeBSD. (cherry picked from commit 91aa7b8)
This aligns the old driver with the behavior of the new driver. When building with C++ interop enabled, it's important that we link a C++ runtime, which is handled by the clang++ driver. The new driver uses clang++ when linking with C++ enabled, either through the c++ interoperability mode flag or the experimental C++ interop flag. The old driver only enabled it with the experimental C++ interop flag. This results in the C++ interop tests failing on FreeBSD and a behavioral difference between what we are testing and what we are shipping. (cherry picked from commit 3376785)
@swift-ci please test |
Cherry-picking commits in cf2f715
56222e4
to
284c5a8
Compare
@swift-ci please test |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Pulling over FreeBSD changes missing from the 6.2 branch that are on the main branch. This is a collection of several PRs. The associated commits are referenced in the commit messages.