Skip to content

[6.0] Bump the deployment target for the compiler to macOS 13.0 #76469

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

Merged
merged 14 commits into from
Sep 18, 2024

Conversation

benlangmuir
Copy link
Contributor

@benlangmuir benlangmuir commented Sep 13, 2024

Cherry-pick recent changes to bump the deployment target to macOS-13 aligned versions, with the exception of watchOS which is held back to 6.0 to keep supporting armv7k and the i386 simulator for now.


For macOS >= 11 the fixit for narrowing an availability check rather
than adding a new one should fire if the major version is the same, like
on other platforms.

(cherry picked from commit c957826)
10.50 was once greater than any real macOS version, but now it compares
less than real released versions, which makes these tests depend on the
deployment target unnecessarily. Update these tests to use even larger
numbers to hopefully keep them independent a little longer.

(cherry picked from commit fd1875d)

 Conflicts:
	test/Interpreter/Inputs/availability_zippered.swift
	test/Parse/availability_query_unavailability.swift
	test/decl/enum/derived_hashable_equatable_macos.swift
Add specific deployment target versions to some tests that need to test
10.x-specific behaviours and are currently depending on the default
deployment target.

Certain tests were only checking either the stable or unstable ABI
depending on the platform the test was running. In those cases I doubled
up the checks so that we would test both cases on platforms that
supported it. This might use a bit of extra time on targets that only
support the stable ABI, but it seemed worth it for the additional
coverage in CI.

(cherry picked from commit 7d11d43)

 Conflicts:
	test/Concurrency/sendable_checking.swift
When the deployment target is newer than swift-5.4 these tests fail due
to missing/incomplete support for chained fixups.

rdar://134809489
(cherry picked from commit 5d111db)
We are already using 5.4 target as a workaround for missing
LC_DYLD_CHAINED_FIXUPS support in reflection tools, but we need to
further workaround a linker bug in older versions of ld-prime that
caused appletv simulator platform to be misidentified and use chained
fixups earlier than it should, so move back to 5.2.

(cherry picked from commit b5f290d)
Bump the deployment target from macOS 10.13-aligned versions to macOS
13.0-aligned versions. This allows us to stop linking CoreFoundation
in the swift runtime, which was previously required for availability
checking. It also lets us align the deployment target on x86_64 with
arm64, which was 11.0. Finally, it is a prerequisite to being able to
build swift using the macOS 15 beta SDKs.

(cherry picked from commit ad82d86)
Ignore some deprecation warnings associated with the deployment target
bump.

(cherry picked from commit dc5e6d8)
This test stops working with deployment targets that no longer link
@rpath/libswiftCoreGraphics.dylib when running on OSes that still
require the CoreGraphics overlay. Explicitly link it to workaround.

(cherry picked from commit 081774a)
When the deployment target is above 9.0 (7.0 for simulator), only
building the module content such as the swiftinterface is supported.

(cherry picked from commit ae3e4a1)
This test has been failing on arm64-tvos-simulator forever, and after we
bumped the default deployment target is also failing on x86_64. Update
the test to match ios/watchos, which were already fixed in the past.

rdar://135453916
(cherry picked from commit 3b1571e)
This test stops working with deployment targets that no longer link
@rpath/libswiftCoreGraphics.dylib when running on OSes that still
require the CoreGraphics overlay. Explicitly link it to workaround.

rdar://135451615
(cherry picked from commit a2ee20d)
When this test was updated for new platforms it was accidentally changed
to match the _METACLASS_DATA symbol instead of the _DATA symbol. Fix
that and update the flags to match. This lets us remove the instance
start value 40 from the checks, so the test now matches the comment
saying it should be 8 or 16.

rdar://135453916
(cherry picked from commit cda65d1)
While the swift compiler in Xcode links against tbd files in the sdk
that contain an armv7k slice, the open source swift toolchain links
against the stdlib dylb that is in the toolchain itself. This means that
we cannot drop support for armv7k support in the stdlib dylib without
losing support for building armv7k when back deploying to older watch
targets. For now, roll back the recent deployment target bump from 9.0
to 6.0 so that we keep armv7k and i386 simulator.

rdar://135560598
(cherry picked from commit 46a83be)
@benlangmuir
Copy link
Contributor Author

@swift-ci please test

@benlangmuir
Copy link
Contributor Author

@swift-ci please build toolchain macOS

@benlangmuir
Copy link
Contributor Author

@swift-ci please test source compatibility

@benlangmuir
Copy link
Contributor Author

@swift-ci please test

@benlangmuir
Copy link
Contributor Author

@swift-ci please test

@benlangmuir
Copy link
Contributor Author

@swift-ci please build toolchain macOS

@benlangmuir
Copy link
Contributor Author

@swift-ci please test source compatibility

@benlangmuir benlangmuir marked this pull request as ready for review September 17, 2024 17:23
@benlangmuir benlangmuir requested a review from a team as a code owner September 17, 2024 17:23
@shahmishal
Copy link
Member

cc: @airspeedswift for review and approval

@shahmishal shahmishal merged commit 33097e5 into swiftlang:release/6.0 Sep 18, 2024
8 checks passed
@benlangmuir benlangmuir deleted the bump-to-13-6.0 branch September 18, 2024 17:07
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants