Skip to content

[cxx-interop] Do not try to import std::tzdb #73086

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 1 commit into from
Apr 17, 2024

Conversation

egorzhdan
Copy link
Contributor

In libstdc++13 on Ubuntu 23.10 the type std::tzdb is non-copyable but does not explicitly delete its copy constructor. It instead triggers template instantiation errors when trying to use the copy constructor. This is problematic for Swift, since we try to instantiate copy constructors for most C++ types we import.

This disables the import of std::tzdb to unblock nightly toolchains for Ubuntu 23.10 until we come up with a better solution.

rdar://126486849 / #73037

In libstdc++13 on Ubuntu 23.10 the type `std::tzdb` is non-copyable but does not explicitly delete its copy constructor. It instead triggers template instantiation errors when trying to use the copy constructor. This is problematic for Swift, since we try to instantiate copy constructors for most C++ types we import.

This disables the import of `std::tzdb` to unblock nightly toolchains for Ubuntu 23.10 until we come up with a better solution.

rdar://126486849 / #73037
@egorzhdan egorzhdan added the c++ interop Feature: Interoperability with C++ label Apr 17, 2024
@egorzhdan egorzhdan requested review from zoecarver and hyp as code owners April 17, 2024 18:50
@egorzhdan
Copy link
Contributor Author

@swift-ci please smoke test

@egorzhdan egorzhdan enabled auto-merge April 17, 2024 18:51
@egorzhdan egorzhdan merged commit d35c7de into main Apr 17, 2024
@egorzhdan egorzhdan deleted the egorzhdan/bail-on-std-tzdb branch April 17, 2024 22:34
egorzhdan added a commit that referenced this pull request Aug 23, 2024
This type is non-copyable, but its implementation in libstdc++13 does not explicitly declare a deleted copy constructor.

After rebranch, we should start using API Notes to annotate the type as a non-copyable type in Swift.

For now, this change disables import of this type.

See #73086

rdar://134432426
egorzhdan added a commit that referenced this pull request Aug 23, 2024
This type is non-copyable, but its implementation in libstdc++13 does not explicitly declare a deleted copy constructor.

After rebranch, we should start using API Notes to annotate the type as a non-copyable type in Swift.

For now, this change disables import of this type.

See #73086

rdar://134432426

(cherry picked from commit 386c8eb)
andrurogerz pushed a commit to andrurogerz/swift that referenced this pull request Sep 3, 2024
This type is non-copyable, but its implementation in libstdc++13 does not explicitly declare a deleted copy constructor.

After rebranch, we should start using API Notes to annotate the type as a non-copyable type in Swift.

For now, this change disables import of this type.

See swiftlang#73086

rdar://134432426
andrurogerz pushed a commit to andrurogerz/swift that referenced this pull request Sep 3, 2024
This type is non-copyable, but its implementation in libstdc++13 does not explicitly declare a deleted copy constructor.

After rebranch, we should start using API Notes to annotate the type as a non-copyable type in Swift.

For now, this change disables import of this type.

See swiftlang#73086

rdar://134432426
etcwilde pushed a commit to etcwilde/swift that referenced this pull request Sep 5, 2024
This type is non-copyable, but its implementation in libstdc++13 does not explicitly declare a deleted copy constructor.

After rebranch, we should start using API Notes to annotate the type as a non-copyable type in Swift.

For now, this change disables import of this type.

See swiftlang#73086

rdar://134432426

(cherry picked from commit 386c8eb)
etcwilde pushed a commit to etcwilde/swift that referenced this pull request Sep 5, 2024
This type is non-copyable, but its implementation in libstdc++13 does not explicitly declare a deleted copy constructor.

After rebranch, we should start using API Notes to annotate the type as a non-copyable type in Swift.

For now, this change disables import of this type.

See swiftlang#73086

rdar://134432426

(cherry picked from commit 386c8eb)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
c++ interop Feature: Interoperability with C++
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant