2

stabilize combining +bundle and +whole-archive link modifiers by Be-ing · Pull R...

 11 months ago
source link: https://github.com/rust-lang/rust/pull/113301
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

Conversation

Contributor

@Be-ing Be-ing

commented

Jul 3, 2023

edited

Per discussion on #108081 combining +bundle and +whole-archive already works and can be stabilized independently of other aspects of the packed_bundled_libs feature. There is no risk of regression because this was not previously allowed.

r? @petrochenkov

rustbot

added S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. T-compiler Relevant to the compiler team, which will review and decide on the PR/issue.

labels

Jul 3, 2023

This comment has been minimized.

Contributor

Could you remove all uses of feature(packed_bundled_libs) from tests?
(This one, for example - tests\run-make\rlib-format-packed-bundled-libs-3\rust_dep.rs.)

Contributor

The packed_bundled_libs feature should also be stabilized (moved from compiler\rustc_feature\src\active.rs to compiler\rustc_feature\src\accepted.rs).

petrochenkov

added S-waiting-on-author Status: This is awaiting some action (such as code changes or more information) from the author.

and removed S-waiting-on-review Status: Awaiting review from the assignee but also interested parties.

labels

Jul 4, 2023

Contributor

Author

The packed_bundled_libs feature should also be stabilized (moved from compiler\rustc_feature\src\active.rs to compiler\rustc_feature\src\accepted.rs).

What about the other use of the feature?

Contributor

The packed_bundled_libs feature should also be stabilized (moved from compiler\rustc_feature\src\active.rs to compiler\rustc_feature\src\accepted.rs).

What about the other use of the feature?

That's a command line option, not feature.

Contributor

Author

Ah, I didn't realize those were turned on in different ways.

Be-ing

force-pushed the stabilize_bundle_whole-archive

branch 5 times, most recently from 6df6d02 to 6ecbc30 Compare

August 15, 2023 20:51

Contributor

Author

Sorry for letting this sit for a while. @petrochenkov I have rebased it and addressed review comments.

Brief summary

Currently, combining +bundle and +whole-archive works only with #![feature(packed_bundled_libs)]. This crate feature is independent of the -Zpacked-bundled-libs command line option.

This commit stabilizes the #![feature(packed_bundled_libs)] crate feature and implicitly enables it only when the +bundle and +whole-archive link modifiers are combined. This allows rlib crates to use the +whole-archive link modifier with native libraries and have all symbols included in the linked library to be included in downstream staticlib crates that use the rlib as a dependency. Other cases requiring the packed_bundled_libs behavior still require the -Zpacked-bundled-libs command line option, which can be stabilized independently in the future.

Per discussion on #108081 there is no risk of regression stabilizing the crate feature in this way because the combination of +bundle,+whole-archive link modifiers was previously not allowed.

Documentation

I don't think anything needs to be updated for this? From users' perspective it's merely allowing a combination of existing link modifiers that previously failed with an error.

Tests

tests/run-make/rlib-format-packed-bundled-libs-3/rust_dep.rs

Real world example of Rust code requiring this feature: KDAB/cxx-qt#598

Unresolved questions

The -Zpacked-bundled-libs command line option is still unstable.

Contributor

@rfcbot fcp merge
This PR is a promise that the combination +bundle,+whole-archive in rlibs will be supported in the future in some way (the specific way in which it's supported stays an implementation detail).

rfcbot

commented

Aug 16, 2023

edited by compiler-errors

Team member @petrochenkov has proposed to merge this. The next step is review by the rest of the tagged team members:

No concerns currently listed.

Once a majority of reviewers approve (and at most 2 approvals are outstanding), this will enter its final comment period. If you spot a major issue that hasn't been raised at any point in this process, please speak up!

See this document for info about what commands tagged team members can give me.

rfcbot

added proposed-final-comment-period Proposed to merge/close by relevant subteam, see T-<team> label. Will enter FCP once signed off. disposition-merge This issue / PR is in PFCP or FCP with a disposition to merge it.

labels

Aug 16, 2023

petrochenkov

added S-waiting-on-team Status: Awaiting decision from the relevant subteam (see the T-<team> label). I-compiler-nominated Indicates that an issue has been nominated for discussion during a compiler team meeting.

and removed S-waiting-on-author Status: This is awaiting some action (such as code changes or more information) from the author.

labels

Aug 16, 2023

Discussed ion T-compiler meeting on Zulip, acknowledged that it will need sign-off from T-compiler members.

@rustbot label -I-compiler-nominated

rustbot

removed the I-compiler-nominated Indicates that an issue has been nominated for discussion during a compiler team meeting. label

Aug 18, 2023

rfcbot

added final-comment-period In the final comment period and will be merged soon unless new substantive objections are raised.

and removed proposed-final-comment-period Proposed to merge/close by relevant subteam, see T-<team> label. Will enter FCP once signed off.

labels

Sep 18, 2023

🔔 This is now entering its final comment period, as per the review above. 🔔

rfcbot

added finished-final-comment-period The final comment period is finished for this PR / Issue. to-announce Announce this issue on triage meeting

and removed final-comment-period In the final comment period and will be merged soon unless new substantive objections are raised.

labels

Sep 28, 2023

The final comment period, with a disposition to merge, as per the review above, is now complete.

As the automated representative of the governance process, I would like to thank the author for their work and everyone else who contributed.

This will be merged soon.

Contributor

@bors r+

Contributor

📌 Commit 72e29da has been approved by petrochenkov

It is now in the queue for this repository.

bors

added S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion.

and removed S-waiting-on-team Status: Awaiting decision from the relevant subteam (see the T-<team> label).

labels

Sep 29, 2023

Contributor

⌛ Testing commit 72e29da with merge 56ada88...

Contributor

☀️ Test successful - checks-actions
Approved by: petrochenkov
Pushing 56ada88 to master...

bors

added the merged-by-bors This PR was explicitly merged by bors label

Sep 29, 2023

bors

merged commit 56ada88 into

rust-lang:master

Sep 29, 2023

12 checks passed

Be-ing

deleted the stabilize_bundle_whole-archive branch

September 29, 2023 18:25

Collaborator

Finished benchmarking commit (56ada88): comparison URL.

Overall result: no relevant changes - no action needed

@rustbot label: -perf-regression

Instruction count

This benchmark run did not return any relevant results for this metric.

Max RSS (memory usage)

Results

Cycles

This benchmark run did not return any relevant results for this metric.

Binary size

This benchmark run did not return any relevant results for this metric.

Bootstrap: 631.332s -> 630.734s (-0.09%)
Artifact size: 317.36 MiB -> 317.40 MiB (0.01%)

bors-ferrocene bot

added a commit to ferrocene/ferrocene that referenced this pull request

Oct 5, 2023

bors-ferrocene bot

added a commit to ferrocene/ferrocene that referenced this pull request

Oct 6, 2023

bors-ferrocene bot

added a commit to ferrocene/ferrocene that referenced this pull request

Oct 9, 2023

bors-ferrocene bot

added a commit to ferrocene/ferrocene that referenced this pull request

Oct 9, 2023

apiraino

removed the to-announce Announce this issue on triage meeting label

Oct 12, 2023

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Reviewers

petrochenkov

petrochenkov left review comments
Labels
disposition-merge This issue / PR is in PFCP or FCP with a disposition to merge it. finished-final-comment-period The final comment period is finished for this PR / Issue. merged-by-bors This PR was explicitly merged by bors S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. T-compiler Relevant to the compiler team, which will review and decide on the PR/issue.
Projects

None yet

Milestone

1.74.0

Development

Successfully merging this pull request may close these issues.

None yet

8 participants

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK