build dist for x86_64-pc-solaris and sparcv9-sun-solaris by psumbera · Pull Request #138699 · rust-lang/rust (original) (raw)

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 andprivacy statement. We’ll occasionally send you account related emails.

Already on GitHub?Sign in to your account

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

[ Show hidden characters]({{ revealButtonHref }})

psumbera

FIx for #126025

Note that this needs Nix with following commit:
nix-rust/nix@0f45593
Unfortunatelly there is no new release.

And for sparcv9 it needs also:
tov/libffi-rs#103

For now it therefore uses cargo patch infrastructure for these.

@rustbot

r? @marcoieni

rustbot has assigned @marcoieni.
They will have a look at your PR within the next two weeks and either review your PR or reassign to another reviewer.

Use r? to explicitly pick a reviewer

@rustbot rustbot added A-testsuite

Area: The testsuite used to check the correctness of rustc

S-waiting-on-review

Status: Awaiting review from the assignee but also interested parties.

T-bootstrap

Relevant to the bootstrap subteam: Rust's build system (x.py and src/bootstrap)

T-infra

Relevant to the infrastructure team, which will review and decide on the PR/issue.

labels

Mar 19, 2025

@rustbot

rust-analyzer is developed in its own repository. If possible, consider making this change to rust-lang/rust-analyzer instead.

cc @rust-lang/rust-analyzer

These commits modify the Cargo.lock file. Unintentional changes to Cargo.lock can be introduced when switching branches and rebasing PRs.

If this was unintentional then you should revert the changes before this PR is merged.
Otherwise, you can ignore this comment.

Veykril

@rust-log-analyzer

This comment has been minimized.

jieyouxu

@rust-log-analyzer

This comment has been minimized.

@jieyouxu

(That being said, thank you for investigating fixes for the Solaris CI)

@bors

@marcoieni

Is this ready for review? 👀

Veykril

matthiaskrgr added a commit to matthiaskrgr/rust that referenced this pull request

Apr 17, 2025

@matthiaskrgr

rust-timer added a commit to rust-lang-ci/rust that referenced this pull request

Apr 18, 2025

@rust-timer

github-actions bot pushed a commit to rust-lang/miri that referenced this pull request

Apr 18, 2025

@matthiaskrgr

github-actions bot pushed a commit to rust-lang/rustc-dev-guide that referenced this pull request

Apr 19, 2025

@matthiaskrgr

@jieyouxu jieyouxu removed the T-bootstrap

Relevant to the bootstrap subteam: Rust's build system (x.py and src/bootstrap)

label

Apr 22, 2025

marcoieni

BINUTILS_URL="https://ftp.gnu.org/gnu/binutils/$BINUTILS\_TAR"
download_file() {

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I saw this function is duplicated from illuminos-toolchain.sh
Can you move it to a shared script file or similar and source the file? so that we avoid having duplicate code.

Same is true for other parts of the scripts which are very similar

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I saw this function is duplicated from illuminos-toolchain.sh Can you move it to a shared script file or similar and source the file? so that we avoid having duplicate code.

I have moved it into shared.sh.

Same is true for other parts of the scripts which are very similar

There are no other common functions. While the structure looks similiar I don't think it's good to connect these two more.

@marcoieni

Sorry for the wait, I'm having a look now. I'm familiar with the Rust CI in general but not with solaris specifically, so please don't assume I'm familiar with the scripts you edited 👍

From what I can see you are extracting the build of x86_64-solaris and sparcv9-solaris from the dist-various-2 job.
My first question is: why? What's the advantage with respect to keeping these jobs in the dist-various-2 job?

The second question is: the dockerfile of dist-various-2 uses ubuntu:22.04. Why are you using ubuntu:18.04 for the new dockerfiles? Is it possible to use newer ubuntu images?
Same for older software like python2. Previously python2 wasn't needed in dist-various-2, why do we need it now?

Also can you explain how this PR fixes the issue you linked?

@psumbera

From what I can see you are extracting the build of x86_64-solaris and sparcv9-solaris from the dist-various-2 job. My first question is: why? What's the advantage with respect to keeping these jobs in the dist-various-2 job?

dist-various-2 was generating just standard library for Solaris. Now also host tools are generated. So I think it's correct to move it outside of dist-various-2 job and have separate job like Illumos or BSDs.

The second question is: the dockerfile of dist-various-2 uses ubuntu:22.04. Why are you using ubuntu:18.04 for the new dockerfiles? Is it possible to use newer ubuntu images? Same for older software like python2. Previously python2 wasn't needed in dist-various-2, why do we need it now?

I have updated change to use ubuntu:22.04 and python3.

Also can you explain how this PR fixes the issue you linked?

I was asked in #126025 to do clean up. I decided to clean it up by compleltely removing all Solaris related stuff from dist-various-2 and have bright new build job for Solaris :-)

marcoieni

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

A few minor comments.
@Kobzol can you have a look at this PR as well?

BINUTILS_SUM='f66390a661faa117d00fab2e79cf2dc9d097b42cc296bf3f8677d1e7b452dc3a'
BINUTILS_BASE="binutils-$BINUTILS_VERSION"
BINUTILS_TAR="$BINUTILS_BASE.tar.bz2"
BINUTILS_URL="https://ftp.gnu.org/gnu/binutils/$BINUTILS\_TAR"

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This can be done after MCP is approved.

mkdir -p "$PREFIX"
make install
cd /

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why do you cd into root? Is going to the previous directory more correct in your opinion?
Same at line 171

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I have used instead just cd.

<<: *job-linux-4c
- name: dist-sparcv9-solaris
<<: *job-linux-4c

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

can you run [at]bors try?
Otherwise I can do it for you to test this PR 👍

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@nikic

dist-various-2 was generating just standard library for Solaris. Now also host tools are generated. So I think it's correct to move it outside of dist-various-2 job and have separate job like Illumos or BSDs.

To clarify, you are promoting Solaris targets from Tier 2 to Tier 2 with host tools?

There should be an update to the platform support pages and a compiler MCP for the promotion (https://doc.rust-lang.org/nightly/rustc/target-tier-policy.html#tier-2-with-host-tools).

@Kobzol

Yeah, just wanted to post this, this seems like it moves the Solaris target between tiers, so it should go through an MCP.

This was referenced

Apr 24, 2025

lnicola pushed a commit to lnicola/rust-analyzer that referenced this pull request

Apr 28, 2025

@matthiaskrgr

@psumbera

@rustbot

Some changes occurred in src/doc/rustc/src/platform-support

cc @Noratrieb

@psumbera

Yeah, just wanted to post this, this seems like it moves the Solaris target between tiers, so it should go through an MCP.

How can I initiate MCP?

@marcoieni

Labels

A-testsuite

Area: The testsuite used to check the correctness of rustc

S-waiting-on-review

Status: Awaiting review from the assignee but also interested parties.

T-infra

Relevant to the infrastructure team, which will review and decide on the PR/issue.