Skip to content
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

Build the standard library for thumbv7neon-unknown-linux-gnueabihf in CI #57862

Merged
merged 1 commit into from Jan 29, 2019

Conversation

hsivonen
Copy link
Member

Using the dist-armv7-linux image instead of dist-various-1 in order to use the ARMv7 toolchain available in dist-armv7-linux.

Closes #57030.

@rust-highfive
Copy link
Collaborator

r? @alexcrichton

(rust_highfive has picked a reviewer for you, use r? to override)

@rust-highfive rust-highfive added the S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. label Jan 23, 2019
@alexcrichton
Copy link
Member

Thanks for the PR! Could this be added though to either dist-various-1 or dist-various-2? Those are in general our containers for building lots of assorted standard libraries.

@hsivonen
Copy link
Member Author

As noted on the issue, this container already has the closest C toolchain match. Since the toolchain part is more complicated than the Python invocation to build the standard library, it seems bad to duplicate the toolchain across containers.

@alexcrichton
Copy link
Member

Unfortunately the dist-armv7-linux container already takes almost all of it's allocated time (1h50m vs 2h). The dist-various-2 container, however, only takes 1h15m, so to ensure CI stays in a reasonable amount of time we need to add it to one of the -various- containers. The toolchain config can be shared/copied around between the containers.

@hsivonen
Copy link
Member Author

hsivonen commented Jan 24, 2019

If I try to merge the toolchain stuff from dist-armv7-linux into dist-various-2, as seen in this gist, the part where crosstool-ng builds stuff fails with:

In file included from zconf.tab.c:212:0:
zconf.hash.c:167:1: error: conflicting types for 'kconf_id_lookup'
 kconf_id_lookup (register const char *str, register size_t len)
 ^~~~~~~~~~~~~~~
zconf.hash.c:34:31: note: previous declaration of 'kconf_id_lookup' was here
 static const struct kconf_id *kconf_id_lookup(register const char *str, register unsigned int len);
                               ^~~~~~~~~~~~~~~
make[2]: *** [zconf.tab.o] Error 1
make[2]: *** Waiting for unfinished jobs....
make[1]: *** [build-lib-kconfig] Error 2
make: *** [build] Error 2

I'm guessing that the toolchain build conflicts with some of the other toolchains in dist-various-2.

Would it be acceptable to create a new container that is a copy of the changeset from this PR with the armv7-unknown-linux-gnueabihf build step removed?

@alexcrichton
Copy link
Member

Unfortunately a new container means a new CI builder which we don't have resources for.

We don't really have any C code of substance in the standard library, though, so is the latest-and-greatest toolchain needed? As long as whatever's in the container has bare-bones support for the target it should be sufficient to produce binaries.

@hsivonen
Copy link
Member Author

The force-pushed update adds the thumbv7neon-unknown-linux-gnueabihf standard library build to dist-various-1. I used dist-various-1, because it already had the toolchain, so the change doesn't add toolchain installation time to the overall duration of the CI run.

@alexcrichton
Copy link
Member

@bors: r+

Great!

@bors
Copy link
Contributor

bors commented Jan 28, 2019

📌 Commit 7dbb70e has been approved by alexcrichton

@bors 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-review Status: Awaiting review from the assignee but also interested parties. labels Jan 28, 2019
@bors
Copy link
Contributor

bors commented Jan 29, 2019

⌛ Testing commit 7dbb70e with merge 106b3e9...

bors added a commit that referenced this pull request Jan 29, 2019
Build the standard library for thumbv7neon-unknown-linux-gnueabihf in CI

Using the `dist-armv7-linux` image instead of `dist-various-1` in order to use the ARMv7 toolchain available in `dist-armv7-linux`.

Closes #57030.
@bors
Copy link
Contributor

bors commented Jan 29, 2019

☀️ Test successful - checks-travis, status-appveyor
Approved by: alexcrichton
Pushing 106b3e9 to master...

@bors
Copy link
Contributor

bors commented Jan 29, 2019

☀️ Test successful - checks-travis, status-appveyor
Approved by: alexcrichton
Pushing 106b3e9 to master...

@hsivonen
Copy link
Member Author

Thanks for the review/approval!

It looks like this missed the beta train by a little. Any chance of uplifting this to beta so that the Android and glibc targets could make it to the same stable release?

@hsivonen hsivonen deleted the buildneon branch January 30, 2019 11:27
@alexcrichton
Copy link
Member

I can nominate it for you, yes

@alexcrichton alexcrichton added the beta-nominated Nominated for backporting to the compiler in the beta channel. label Jan 30, 2019
@hsivonen
Copy link
Member Author

Thanks!

@pnkfelix pnkfelix added the T-infra Relevant to the infrastructure team, which will review and decide on the PR/issue. label Jan 31, 2019
@pietroalbini pietroalbini added the beta-accepted Accepted for backporting to the compiler in the beta channel. label Feb 4, 2019
@pietroalbini pietroalbini removed beta-nominated Nominated for backporting to the compiler in the beta channel. labels Feb 4, 2019
bors added a commit that referenced this pull request Feb 5, 2019
[beta] Rollup backports

Cherry-picked:

* #58008: Pass correct arguments to places_conflict
* #58007: Don't panic when accessing enum variant ctor using `Self` in match
* #57978: Fix bug in integer range matching
* #57862: Build the standard library for thumbv7neon-unknown-linux-gnueabihf in CI
* #57659: Fix release manifest generation

r? @ghost
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
beta-accepted Accepted for backporting to the compiler in the beta channel. S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. T-infra Relevant to the infrastructure team, which will review and decide on the PR/issue.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

6 participants