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

Get cargo working on i686-pc-windows-msvc #1825

Merged
merged 9 commits into from
Jul 23, 2015
Merged

Conversation

alexcrichton
Copy link
Member

These commits provide the necessary support to get cargo working in the 32-bit MSVC context. Now that we've got 32-bit MSVC nightlies rolling we can add support!

The script that prints new snapshots for Cargo now uses the same download module
as the rest of Cargo. Also adds a quiet option to suppress printing.
@rust-highfive
Copy link

r? @huonw

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

@alexcrichton
Copy link
Member Author

r? @brson

I'd also like to hold off on r+ until appveyor gives the go-ahead at least as I've also added 32-bit coverage to our matrix, but I haven't verified it works yet.

@alexcrichton
Copy link
Member Author

Ok, I've got some more work to do to get appveyor working on 32/64 builds

// FIXME: currently this hits a linker bug on 32-bit MSVC
if cfg!(all(target_env = "msvc", target_pointer_width = "32")) {
return
}
Copy link
Member Author

Choose a reason for hiding this comment

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

Note that this is connected to rust-lang/rust#27224, so once that lands and makes its way into the nightlies this test can be re-enabled on 32-bit MSVC again.

@brson
Copy link
Contributor

brson commented Jul 23, 2015

r=me

I saw the usage of `call` locking up quite a bit when running this script on
Windows, and googling around on the internet seems to indicate that Popen should
be used instead of call to prevent this locking up, and it does indeed work!
The rustlib folder is in `bin` on Windows, not in `lib`.
We're not actually using it as we're not running the installation script, so no
need to modify it.
Cargo will soon support testing the cross compilation capabilities between 32/64
bit Windows, meaning that there's not "one true value" for any of these
environment variables that Cargo is setting (e.g. where to find `cl`, `link`,
etc). Instead, all dependencies have been updated to probe the system (in the
same manner as the compiler) for the tools that they're using.

All of the logic is housed in the `gcc` crate which now exposes a function to
probe the system for a particular tool. The updated crates here then use the
result of this probe to run the various build scripts. This all boils down to
being able to build MSVC targets inside an MSYS shell instead of requiring use
of a MSVC shell (which doesn't allow for simultaneous host builds and cross
builds).
@alexcrichton
Copy link
Member Author

@bors: r=brson

@bors
Copy link
Contributor

bors commented Jul 23, 2015

📌 Commit 6c52979 has been approved by brson

@bors
Copy link
Contributor

bors commented Jul 23, 2015

⌛ Testing commit 6c52979 with merge 74f548e...

@bors
Copy link
Contributor

bors commented Jul 23, 2015

💔 Test failed - cargo-linux-64

This commit enables Cargo's bots to test cross builds between 32 and 64 bit
hosts. Many tests were fixed to work on Windows, and the 32-bit test case now
actually crosses to 64.
@alexcrichton
Copy link
Member Author

@bors: r=brson

On Wed, Jul 22, 2015 at 11:07 PM, bors notifications@github.com wrote:

[image: 💔] Test failed - cargo-linux-64
http://buildbot.rust-lang.org/builders/cargo-linux-64/builds/1206


Reply to this email directly or view it on GitHub
#1825 (comment).

@bors
Copy link
Contributor

bors commented Jul 23, 2015

📌 Commit 655bcdf has been approved by brson

@bors
Copy link
Contributor

bors commented Jul 23, 2015

⌛ Testing commit 655bcdf with merge 66ef563...

@bors
Copy link
Contributor

bors commented Jul 23, 2015

💔 Test failed - cargo-win-msvc-64

@alexcrichton
Copy link
Member Author

@bors: retry

On Wed, Jul 22, 2015 at 11:14 PM, bors notifications@github.com wrote:

[image: 💔] Test failed - cargo-win-msvc-64
http://buildbot.rust-lang.org/builders/cargo-win-msvc-64/builds/32


Reply to this email directly or view it on GitHub
#1825 (comment).

@bors
Copy link
Contributor

bors commented Jul 23, 2015

⌛ Testing commit 655bcdf with merge 84ef25d...

bors added a commit that referenced this pull request Jul 23, 2015
These commits provide the necessary support to get cargo working in the 32-bit MSVC context. Now that we've got 32-bit MSVC nightlies rolling we can add support!
@bors
Copy link
Contributor

bors commented Jul 23, 2015

💔 Test failed - cargo-win-msvc-64

@alexcrichton
Copy link
Member Author

@bors: retry

On Wed, Jul 22, 2015 at 11:19 PM, bors notifications@github.com wrote:

[image: 💔] Test failed - cargo-win-msvc-64
http://buildbot.rust-lang.org/builders/cargo-win-msvc-64/builds/33


Reply to this email directly or view it on GitHub
#1825 (comment).

@bors
Copy link
Contributor

bors commented Jul 23, 2015

⚡ Previous build results for cargo-linux-32, cargo-linux-64, cargo-mac-32, cargo-mac-64, cargo-win-gnu-32, cargo-win-gnu-64 are reusable. Rebuilding only cargo-win-msvc-64...

@bors
Copy link
Contributor

bors commented Jul 23, 2015

@bors bors merged commit 655bcdf into rust-lang:master Jul 23, 2015
@alexcrichton alexcrichton deleted the msvc-32 branch July 23, 2015 07:37
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants