]> git.lizzy.rs Git - rust.git/commit
Auto merge of #26601 - alexcrichton:xp, r=brson
authorbors <bors@rust-lang.org>
Sun, 28 Jun 2015 03:57:07 +0000 (03:57 +0000)
committerbors <bors@rust-lang.org>
Sun, 28 Jun 2015 03:57:07 +0000 (03:57 +0000)
commit5da0d415b66733f9a146bbdd6c6cce81430e77c2
tree538dbf67a23dbd8297576319f4bb0011bb633a65
parent8fa2185e0babe71699b2c372f8399c27effecd92
parent10b103af48368c5df644fa61dc417a36083922c8
Auto merge of #26601 - alexcrichton:xp, r=brson

This series of commits (currently rebased on https://github.com/rust-lang/rust/pull/26569 to avoid conflicts) adds support for the standard library to run on Windows XP. The main motivation behind this PR is that to enable any Rust code in Firefox we need to support Windows XP.

This PR doesn't yet intend to be a move to make Windows XP an officially supported platform, but instead simply get Rust code running on it. APIs like condition variables and RWLocks will immediately panic currently on XP, and it's unclear if that story wants to change much. Additionally, we may bind APIs like IOCP which aren't available on XP and would be *very* difficult to provide a fallback implementation. Essentially this PR enables running Rust on XP, but you still have to be careful to avoid non-XP portions of the standard library.

The major components of this PR are:

* Support for a new `i686-pc-windows-msvc` triple. This primarily involves a lot of build system hackery, but there are also a number of floating point functions which had to get switched up a bit.
* All APIs not available on Windows are now accessed through our dynamic-detection mechanism
* Mutexes on Windows were rewritten to use SRWLOCK as an optimization but can fall back to CRITICAL_SECTION.