Skip to content

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

New issue

Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? # to your account

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
Contributor

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
Collaborator

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
Collaborator

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
Collaborator

bors commented Jan 29, 2019

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

@bors
Copy link
Collaborator

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
# for free to join this conversation on GitHub. Already have an account? # 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.

6 participants