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

Fix 32-bit Windows compile error #246

Closed
andreastt opened this issue Sep 30, 2016 · 7 comments
Closed

Fix 32-bit Windows compile error #246

andreastt opened this issue Sep 30, 2016 · 7 comments
Assignees
Milestone

Comments

@andreastt
Copy link
Contributor

https://travis-ci.org/mozilla/geckodriver/builds/163755698

@andreastt andreastt added this to the 0.11 milestone Sep 30, 2016
@andreastt
Copy link
Contributor Author

Filed alexcrichton/port-of-rust#5.

@andreastt andreastt self-assigned this Sep 30, 2016
@andreastt
Copy link
Contributor Author

The port-of-rust Docker image we are building is using Nightly which has a bug causing the i686 Windows build to fail.

Unfortunately Rust stable does not have the i686-pc-windows-gnu target, and the the same bug that is in Nightly affects Beta.

I think the short-term solution here is to fork the Dockerfile and pin it to a known-good version of Rust (probably beta by this point), so that we can make a release early next week.

@andreastt
Copy link
Contributor Author

It looks like the bug in nightly was fixed in rust-lang/rust#36866, but there are build issues with Rust for iOS, which means there have been no nightly builds yet with this fix in it.

@andreastt
Copy link
Contributor Author

It looks like cross-compilation for 64-bit Windows is also failing, but isn’t surfacing on geckodriver’s master builds because they use a cached Rust Nightly version which is known to be good:

+rustc -V
rustc 1.13.0-beta.1 (cbbeba430 2016-09-28)

https://travis-ci.org/andreastt/geckodriver/builds/164048072

@andreastt
Copy link
Contributor Author

The x86_64-pc-windows-gnu cross-compile also fails on stable: https://travis-ci.org/andreastt/geckodriver/jobs/164685055

@andreastt
Copy link
Contributor Author

Right, after many hours of digging I’ve found that this is probably a regression Travis, our CI. We rely on the container infrastructure they provide to get faster builds. Up until around 2016-09-21 the containers provided were running Ubuntu trusty, the distribution version we had requested. Sometime in the days after this Travis started providing Ubuntu precise container images on a trusty host OS.

Ubuntu precise obviously have a much older gcc version than trusty, and linking probably fails because it produces something Rust can’t use. I confirmed this through using a custom container on Travis, which fixes our 64-bit build.

The 32-bit build is failing because of rust-lang/rust#36866, but we should be able to circumvent this by pinning the Rust Nightly version like this:

rustup override set nightly-2016-09-21

Which also, I found, can be used for the rustup installer:

curl https://sh.rustup.rs -sSf | sh -s -- -y --default-toolchain=nightly-2016-09-21

@lock
Copy link

lock bot commented Aug 17, 2019

This issue has been automatically locked since there has not been any recent activity after it was closed. If you have run into an issue you think is related, please open a new issue.

@lock lock bot locked and limited conversation to collaborators Aug 17, 2019
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

No branches or pull requests

1 participant