Soon the LLVM upgrade (rust-lang#34743) will require an updated CMake installation, and the easiest way to do this was to upgrade the Ubuntu version of the bots to 16.04. This in turn brings in a new MIPS compiler on the linux-cross builder, which is now from the "official" ubuntu repositories. Unfortunately these new compilers don't support compiling with the `-msoft-float` flag like we're currently passing, causing compiles to fail. This commit removes these flags as it's not clear *why* they're being passed, as the mipsel targets also don't have it. At least if it's not supported by a debian default compiler, perhaps it's not too relevant to support?
Merged
3 tasks
bors added a commit that referenced this pull request
Jul 16, 2016mk: Don't pass -msoft-float on mips-gnu Soon the LLVM upgrade (#34743) will require an updated CMake installation, and the easiest way to do this was to upgrade the Ubuntu version of the bots to 16.04. This in turn brings in a new MIPS compiler on the linux-cross builder, which is now from the "official" ubuntu repositories. Unfortunately these new compilers don't support compiling with the `-msoft-float` flag like we're currently passing, causing compiles to fail. This commit removes these flags as it's not clear *why* they're being passed, as the mipsel targets also don't have it. At least if it's not supported by a debian default compiler, perhaps it's not too relevant to support?
bors
mentioned this pull request
Merged
Merged
alexcrichton added a commit to alexcrichton/rust that referenced this pull request
Jul 19, 2016Right now two MIPS targets in the compiler, `mips-unknown-linux-{gnu,musl}` both
generate object files using the soft-float ABI through LLVM by default. This is
also expressed as the `-C soft-float` codegen option and otherwise isn't used
for any other target in the compiler. This option was added quite some time ago
(back in rust-lang#9617), and nowadays it's more appropriate to be done through a codegen
option.
This is motivated by rust-lang#34743 which necessitated an upgrade in the CMake
installation on our bots which necessitated an upgrade in the Ubuntu version
which invalidated the MIPS compilers we were using. The new MIPS compilers
(coming from Debian I believe) all have hard float enabled by default and soft
float support not built in. This meant that we couldn't upgrade the bots
until rust-lang#34841 landed because otherwise we would fail to compile C code as the
`-msoft-float` option wouldn't work.
Unfortunately, though, this means that once we upgrade the bots the C code we're
compiling will be compiled for hard float and the Rust code will be compiled
for soft float, a bad mismatch! This PR remedies the situation such that Rust
will compile with hard float as well.
If this lands it will likely produce broken nightlies for a day or two while we
get around to upgrading the bots because the current C toolchain only produces
soft-float binaries, and now rust will be hard-float. Hopefully, though, the
upgrade can go smoothly!
GuillaumeGomez added a commit to GuillaumeGomez/rust that referenced this pull request
Jul 21, 2016rustc: Remove soft-float from MIPS targets
Right now two MIPS targets in the compiler, `mips-unknown-linux-{gnu,musl}` both
generate object files using the soft-float ABI through LLVM by default. This is
also expressed as the `-C soft-float` codegen option and otherwise isn't used
for any other target in the compiler. This option was added quite some time ago
(back in rust-lang#9617), and nowadays it's more appropriate to be done through a codegen
option.
This is motivated by rust-lang#34743 which necessitated an upgrade in the CMake
installation on our bots which necessitated an upgrade in the Ubuntu version
which invalidated the MIPS compilers we were using. The new MIPS compilers
(coming from Debian I believe) all have hard float enabled by default and soft
float support not built in. This meant that we couldn't upgrade the bots
until rust-lang#34841 landed because otherwise we would fail to compile C code as the
`-msoft-float` option wouldn't work.
Unfortunately, though, this means that once we upgrade the bots the C code we're
compiling will be compiled for hard float and the Rust code will be compiled
for soft float, a bad mismatch! This PR remedies the situation such that Rust
will compile with hard float as well.
If this lands it will likely produce broken nightlies for a day or two while we
get around to upgrading the bots because the current C toolchain only produces
soft-float binaries, and now rust will be hard-float. Hopefully, though, the
upgrade can go smoothly!
brson
removed
the
beta-nominated
label
Jul 27, 2016