about summary refs log tree commit diff
path: root/src/librustc_back
AgeCommit message (Collapse)AuthorLines
2016-12-29Remove not(stage0) from deny(warnings)Alex Crichton-1/+1
Historically this was done to accommodate bugs in lints, but there hasn't been a bug in a lint since this feature was added which the warnings affected. Let's completely purge warnings from all our stages by denying warnings in all stages. This will also assist in tracking down `stage0` code to be removed whenever we're updating the bootstrap compiler.
2016-12-29Add sparc64-unknown-netbsd targetJonathan A. Kollasch-0/+31
2016-12-28Auto merge of #38579 - whitequark:min_atomic_width, r=alexcrichtonbors-0/+12
Add a min_atomic_width target option, like max_atomic_width Rationale: some ISAs, e.g. OR1K, do not have atomic instructions for byte and halfword access, and at the same time do not have a fixed endianness, which makes it unreasonable to implement these through word-sized atomic accesses.
2016-12-26Use cfg!() to get type checking everywhere.Christoph Schulz-7/+5
2016-12-25Move target_family to TargetOptions, not TargetAlex Crichton-2/+2
Just fixing a compile error
2016-12-25Emscripten targets are Unix targetsBrian Anderson-0/+2
2016-12-24Add a min_atomic_width target option, like max_atomic_width.whitequark-0/+12
Rationale: some ISAs, e.g. OR1K, do not have atomic instructions for byte and halfword access, and at the same time do not have a fixed endianness, which makes it unreasonable to implement these through word-sized atomic accesses.
2016-12-23Auto merge of #38401 - redox-os:redox_cross, r=brsonbors-0/+95
Redox Cross Compilation I will admit - there are things here that I wish I did not have to do. This completes the ability to create a cross compiler from the rust repository for `x86_64-unknown-redox`. I will document this PR with inline comments explaining some things. [View this gist to see how a cross compiler is built](https://gist.github.com/jackpot51/6680ad973986e84d69c79854249f2b7e) Prior discussion of a smaller change is here: https://github.com/rust-lang/rust/pull/38366
2016-12-22Correct target_family messJeremy Soller-1/+13
2016-12-22Remove start functions, use newlib instead of openlibm + rallocJeremy Soller-5/+6
2016-12-22Partial fix for #38489.Christoph Schulz-4/+26
2016-12-21In order to successfully build, go back to rallocJeremy Soller-2/+2
2016-12-20Switch back to alloc_systemJeremy Soller-2/+2
2016-12-20Link openlibm only in libstdJeremy Soller-4/+0
2016-12-20Rollup merge of #38463 - japaric:asm-args, r=alexcrichtonAlex Crichton-0/+6
target spec: add an asm-args field to pass arguments to the external .. assembler The main use case is the (still out of tree) msp430 target. For that target we use an external assembler, `mps430-elf-gcc`, to produce object files from the assembly rustc/llvm outputs. The problem is that by default `msp430-elf-gcc` produces object files for the MSP430**X** ABI but we want to use produce objects using the MSP430 (note: no X) ABI. To do that we have to pass `-mcpu=msp430` to the assembler and that's what this flag is for. r? @alexcrichton cc @pftbest
2016-12-18target spec: add an asm-args field to pass arguments to the external ..Jorge Aparicio-0/+6
assembler
2016-12-16rustc: Link to Android ABI requirements.Ralph Giles-0/+9
Hopefully these references will be stable and provide guidance when requirements change in the future.
2016-12-16rustc: Disable NEON on armv7 android.Ralph Giles-2/+2
We thought Google's ABI for arvm7 required neon, but it is currently optional, perhaps because there is a significant population of Tegra 2 devices still in use. This turns off neon code generation outside #[target-feature] blocks just like we do on armv7-unknown-linux-gnu, but unlike most other armv7 targets. LLVM defaults to +neon for this target, so an explicit disable is necessary. See https://developer.android.com/ndk/guides/abis.html#v7a for instruction set extension requirements. Closes #38402.
2016-12-15Add openlibm to redoxJeremy Soller-0/+4
2016-12-15Add start functions, switch allocation crate to rallocJeremy Soller-2/+2
2016-12-15Use alloc_system as default allocation crateJeremy Soller-0/+2
2016-12-15Use panic abort by defaultJeremy Soller-0/+2
2016-12-15Fix issue with setting cfg(unix)Jeremy Soller-0/+1
2016-12-15Fix typoJeremy Soller-2/+1
2016-12-15Add redox targetJeremy Soller-0/+78
2016-12-04Auto merge of #38086 - semarie:openbsd-i686, r=alexcrichtonbors-0/+40
Add i686-unknown-openbsd target. It is a preliminary work. I still have some tests failing, but I have a working rustc binary which is able to rebuild itself. an update of libc should be required too, but I dunno how to do it with vendor/ layout. r? @alexcrichton
2016-12-04OpenBSD under x86 has particular ABI for returning a struct.Sébastien Marie-0/+7
It is like OSX or Windows: small structs are returned as integers.
2016-11-30Update the bootstrap compilerAlex Crichton-1/+0
Now that we've got a beta build, let's use it!
2016-11-30Add i686-unknown-openbsd target.Sébastien Marie-0/+33
2016-11-16rustc: Implement #[link(cfg(..))] and crt-staticAlex Crichton-1/+9
This commit is an implementation of [RFC 1721] which adds a new target feature to the compiler, `crt-static`, which can be used to select how the C runtime for a target is linked. Most targets dynamically linke the C runtime by default with the notable exception of some of the musl targets. [RFC 1721]: https://github.com/rust-lang/rfcs/blob/master/text/1721-crt-static.md This commit first adds the new target-feature, `crt-static`. If enabled, then the `cfg(target_feature = "crt-static")` will be available. Targets like musl will have this enabled by default. This feature can be controlled through the standard target-feature interface, `-C target-feature=+crt-static` or `-C target-feature=-crt-static`. Next this adds an gated and unstable `#[link(cfg(..))]` feature to enable the `crt-static` semantics we want with libc. The exact behavior of this attribute is a little squishy, but it's intended to be a forever-unstable implementation detail of the liblibc crate. Specifically the `#[link(cfg(..))]` annotation means that the `#[link]` directive is only active in a compilation unit if that `cfg` value is satisfied. For example when compiling an rlib, these directives are just encoded and ignored for dylibs, and all staticlibs are continued to be put into the rlib as usual. When placing that rlib into a staticlib, executable, or dylib, however, the `cfg` is evaluated *as if it were defined in the final artifact* and the library is decided to be linked or not. Essentially, what'll happen is: * On MSVC with `-C target-feature=-crt-static`, the `msvcrt.lib` library will be linked to. * On MSVC with `-C target-feature=+crt-static`, the `libcmt.lib` library will be linked to. * On musl with `-C target-feature=-crt-static`, the object files in liblibc.rlib are removed and `-lc` is passed instead. * On musl with `-C target-feature=+crt-static`, the object files in liblibc.rlib are used and `-lc` is not passed. This commit does **not** include an update to the liblibc module to implement these changes. I plan to do that just after the 1.14.0 beta release is cut to ensure we get ample time to test this feature. cc #37406
2016-11-12use write::run_assemblerJorge Aparicio-6/+7
2016-11-12use msp430-as to emit object files from the assembly that LLVM emitsJorge Aparicio-0/+7
2016-11-12Rollup merge of #37615 - atilag:armv5te-support, r=alexcrichtonEduard-Mihai Burtescu-0/+35
Add support for ARMv5TE architecture
2016-11-10Set max_atomic_width to 0 because there's no atomic instructions on ARMv5Juan Gomez-1/+2
2016-11-06use arm abi blacklist for aarch64 fuchsiaTim Neumann-2/+5
2016-11-06Add support for ARMv5TE architectureJuan Gomez-0/+34
2016-10-31Changed most vec! invocations to use square bracesiirelu-21/+21
Most of the Rust community agrees that the vec! macro is clearer when called using square brackets [] instead of regular brackets (). Most of these ocurrences are from before macros allowed using different types of brackets. There is one left unchanged in a pretty-print test, as the pretty printer still wants it to have regular brackets.
2016-10-30Replace all uses of SHA-256 with BLAKE2b.Michael Woerister-682/+1
2016-10-30Auto merge of #37392 - alexcrichton:more-disable-jemalloc, r=brsonbors-0/+45
Disable jemalloc on aarch64/powerpc Sounds like jemalloc is broken on systems which differ in page size than the host it was compiled on (unless an option was passed). This unfortunately reduces the portability of binaries created and can often make Rust segfault by default. For now let's patch over this by disabling jemalloc until we can figure out a better solution. Closes #36994 Closes #37320 cc jemalloc/jemalloc#467
2016-10-29Auto merge of #37387 - raphlinus:fuchsia_aarch64, r=alexcrichtonbors-0/+29
Support for aarch64 architecture on Fuchsia This patch adds support for the aarch64-unknown-fuchsia target. Also updates src/liblibc submodule to include required libc change.
2016-10-27Disable jemalloc on aarch64/powerpcAlex Crichton-0/+45
Sounds like jemalloc is broken on systems which differ in page size than the host it was compiled on (unless an option was passed). This unfortunately reduces the portability of binaries created and can often make Rust segfault by default. For now let's patch over this by disabling jemalloc until we can figure out a better solution. Closes #36994 Closes #37320 cc jemalloc/jemalloc#467
2016-10-25Auto merge of #36421 - TimNN:check-abis, r=alexcrichtonbors-15/+91
check target abi support This PR checks for each extern function / block whether the ABI / calling convention used is supported by the current target. This was achieved by adding an `abi_blacklist` field to the target specifications, listing the calling conventions unsupported for that target.
2016-10-24Support for aarch64 architecture on FuchsiaRaph Levien-0/+29
This patch adds support for the aarch64-unknown-fuchsia target. Also updates src/liblibc submodule to include required libc change.
2016-10-24check target abi supportTim Neumann-15/+91
2016-10-22Fix tidy warningRaph Levien-1/+1
Prefer FIXME to TODO
2016-10-22Add Fuchsia supportRaph Levien-0/+72
Adds support for the x86_64-unknown-fuchsia target, which covers the Fuchsia operating system.
2016-10-12Stabilise `?`Nick Cameron-1/+1
cc [`?` tracking issue](https://github.com/rust-lang/rust/issues/31436)
2016-10-04Auto merge of #36933 - alexcrichton:less-neon-again, r=eddybbors-1/+1
rustc: Try again to disable NEON on armv7 linux This is a follow-up to #35814 which apparently didn't disable it hard enough. It looks like LLVM's default armv7 target enables NEON so we'd otherwise have to pass `-neon`, but we're already enabling armv7 with `+v7` supposedly, so let's try just telling LLVM that the armv7 target is arm and then enable features selectively. Closes #36913
2016-10-04rustc: Try again to disable NEON on armv7 linuxAlex Crichton-1/+1
This is a follow-up to #35814 which apparently didn't disable it hard enough. It looks like LLVM's default armv7 target enables NEON so we'd otherwise have to pass `-neon`, but we're already enabling armv7 with `+v7` supposedly, so let's try just telling LLVM that the armv7 target is arm and then enable features selectively. Closes #36913
2016-10-03change max_atomic_width type from u64 to Option<u64>Jorge Aparicio-73/+68
to better express the idea that omitting this field defaults this value to target_pointer_width