about summary refs log tree commit diff
path: root/src/librustc/back
AgeCommit message (Collapse)AuthorLines
2014-02-03Enable the +v7 feature on Android by defaultAlex Crichton-1/+20
With the recently added double word CAS functionality on 32-bit ARM (enabled via a 64-bit atomic instruction in LLVM IR), without some extra features enabled LLVM lowers code to function calls which emulate atomic instructions. With the v7 feature enabled, proper 64-bit CAS instructions are used on 32-bit arm. I've been told that v7 for arm is what we should have been doing anyway. This is overridable by providing some other non-empty feature string.
2014-02-03rustc: Remove io_error usageAlex Crichton-46/+69
2014-02-02librustc: De-`@str` symbol hashingPatrick Walton-6/+6
2014-02-02librustc: Remove a bunch of `@str` from the compiler around metadataPatrick Walton-5/+5
handling
2014-01-31Disable fp elim on mac64Alex Crichton-1/+5
I believe that this is leading to lots of failures on the bots. cc #11954
2014-01-29auto merge of #11879 : thestinger/rust/frame-pointer, r=alexcrichtonbors-1/+5
This is still used for Rust code (`Options.NoFramePointerElim = true`).
2014-01-29enable fp-elim when debug info is disabledDaniel Micay-1/+5
This can almost be fully disabled, as it no longer breaks retrieving a backtrace on OS X as verified by @alexcrichton. However, it still breaks retrieving the values of parameters. This should be fixable in the future via a proper location list... Closes #7477
2014-01-27Removed take_glue from tydesc, inlining the equivalent refcount increment ↵Eduard Burtescu-5/+4
code instead.
2014-01-24Allow opting-out of rpath usageAlex Crichton-3/+7
By default, the compiler and libraries are all still built with rpaths, but this can be opted out of with --disable-rpath to ./configure or --no-rpath to rustc. cc #5219
2014-01-21auto merge of #11129 : SimonSapin/rust/foo-vs-foo_opt, r=alexcrichtonbors-5/+5
[On 2013-12-06, I wrote to the rust-dev mailing list](https://mail.mozilla.org/pipermail/rust-dev/2013-December/007263.html): > Subject: Let’s avoid having both foo() and foo_opt() > > We have some functions and methods such as [std::str::from_utf8](http://static.rust-lang.org/doc/master/std/str/fn.from_utf8.html) that may succeed and give a result, or fail when the input is invalid. > > 1. Sometimes we assume the input is valid and don’t want to deal with the error case. Task failure works nicely. > > 2. Sometimes we do want to do something different on invalid input, so returning an `Option<T>` works best. > > And so we end up with both `from_utf8` and `from_utf8`. This particular case is worse because we also have `from_utf8_owned` and `from_utf8_owned_opt`, to cover everything. > > Multiplying names like this is just not good design. I’d like to reduce this pattern. > > Getting behavior 1. when you have 2. is easy: just call `.unwrap()` on the Option. I think we should rename every `foo_opt()` function or method to just `foo`, remove the old `foo()` behavior, and tell people (through documentation) to use `foo().unwrap()` if they want it back? > > The downsides are that unwrap is more verbose and gives less helpful error messages on task failure. But I think it’s worth it. The email discussion has gone around long enough. Let’s discuss a concrete proposal. For the following functions or methods, I removed `foo` (that caused task failure) and renamed `foo_opt` (that returns `Option`) to just `foo`. Vector methods: * `get_opt` (rename only, `get` did not exist as it would have been just `[]`) * `head_opt` * `last_opt` * `pop_opt` * `shift_opt` * `remove_opt` `std::path::BytesContainer` method: * `container_as_str_opt` `std::str` functions: * `from_utf8_opt` * `from_utf8_owned_opt` (also remove the now unused `not_utf8` condition) Is there something else that should recieve the same treatement? I did not rename `recv_opt` on channels based on @brson’s [feedback](https://mail.mozilla.org/pipermail/rust-dev/2013-December/007270.html). Feel free to pick only some of these commits.
2014-01-21[std::str] Rename from_utf8_owned_opt() to from_utf8_owned(), drop the old ↵Simon Sapin-2/+2
from_utf8_owned() behavior
2014-01-21[std::str] Rename from_utf8_opt() to from_utf8(), drop the old from_utf8() ↵Simon Sapin-3/+3
behavior
2014-01-21auto merge of #11700 : bharrisau/rust/thumb, r=alexcrichtonbors-1/+6
To build for the cortex-M series ARM processors LLC needs to be told to build for the thumb instruction set. There are two ways to do this, either with the triple "thumb\*-\*-\*" or with -march=thumb (which just overrides the triple anyway). I chose the first way. The following will fail because the local cc doesn't know what to do with -mthumb. ```` rustc test.rs --lib --target thumb-linux-eab error: linking with `cc` failed: exit code: 1 note: cc: error: unrecognized command line option ‘-mthumb’ ```` Changing the linker works as expected. ```` rustc test.rs --lib --target thumb-linux-eabi --linker arm-none-eabi-gcc ```` Ideally I'd have the triple thumb-none-eabi, but adding a new OS looks like much more work (and I'm not familiar enough with what it does to know if it is needed).
2014-01-21Capitalize debugging opts and make them u64Alex Crichton-2/+2
2014-01-21Remove obsoleted -Z optionsAlex Crichton-1/+0
* borrowck_note_pure - unused * borrowck_note_loan - unused * no_debug_borrows - unused * lint_llvm - equivalent to -Z no-prepopulate-passes + --llvm-passes lint
2014-01-21Add support for ARM thumb architectureBen Harris-1/+6
2014-01-17Fixed typos in comments of librustc backend.chromatic-19/+19
2014-01-17auto merge of #11604 : alexcrichton/rust/issue-11162, r=brsonbors-4/+7
Apparently this isn't necessary, and it's just causing problems. Closes #11162
2014-01-17rustc::metadata: Remove trait FileSearchklutzy-2/+2
2014-01-17rustc::driver: Capitalize structs and enumsklutzy-1/+1
driver::session::crate_metadata is unused; removed.
2014-01-16Don't run 'ar s' on OSXAlex Crichton-4/+7
Apparently this isn't necessary, and it's just causing problems. Closes #11162
2014-01-14remove `borrow_offset` as ~ is now free of headersDaniel Micay-3/+2
2014-01-11Removed free_glue from tydesc (the code is still generated, but inlined in ↵Eduard Burtescu-5/+4
drop_glue).
2014-01-09rustc: Fix style of OutputType enumBrian Anderson-18/+18
2014-01-09libsyntax: Renamed types, traits and enum variants to CamelCase.Eduard Burtescu-11/+13
2014-01-06auto merge of #11118 : jhasse/rust/patch-rustlibdir, r=alexcrichtonbors-1/+4
...stlib. Fixes #3319
2014-01-06librustc: tidy cleanupYoung-il Choi-1/+1
2014-01-06librustc: add get_system_tools for target specific environmentYoung-il Choi-17/+24
2014-01-06librustc: move target dependent logic to back::linkYoung-il Choi-8/+18
2014-01-06librustc: ar call fix to support android cross compile on macYoung-il Choi-1/+9
2014-01-05Make rustc's own lib directory configurable and change the default to ↵Jan Niklas Hasse-1/+4
rustlib. Fixes #3319
2014-01-01auto merge of #11247 : eddyb/rust/symbol-cleanup, r=alexcrichtonbors-2/+5
2013-12-31auto merge of #11215 : alexcrichton/rust/metadata-filename, r=pcwaltonbors-2/+5
Right now if you have concurrent builds of two libraries in the same directory (such as rustc's bootstrapping process), it's possible that two libraries will stomp over each others' metadata, producing corrupt rlibs. By placing the metadata file in a tempdir we're guranteed to not conflict with ay other builds happening concurrently. Normally this isn't a problem because output filenames are scoped to the name of the crate, but metadata is special in that it has the same name across all crates.
2013-12-31auto merge of #11187 : alexcrichton/rust/once, r=brsonbors-8/+4
Rationale can be found in the first commit, but this is basically the same thing as `pthread_once`
2013-12-31Convert relevant static mutexes to OnceAlex Crichton-8/+4
2014-01-01Truncate symbol hashes to 64 bits.Eduard Burtescu-2/+5
2013-12-31auto merge of #11157 : alexcrichton/rust/issue-11154, r=pcwaltonbors-0/+6
Closes #11154
2013-12-31Disallow LTO with a preference to dynamic linkingAlex Crichton-0/+6
Closes #11154
2013-12-30Revert "Embed Windows application manifest."Vadim Chugunov-113/+0
2013-12-30Add metadata from a tempdir instead of a build dirAlex Crichton-2/+5
Right now if you have concurrent builds of two libraries in the same directory (such as rustc's bootstrapping process), it's possible that two libraries will stomp over each others' metadata, producing corrupt rlibs. By placing the metadata file in a tempdir we're guranteed to not conflict with ay other builds happening concurrently. Normally this isn't a problem because output filenames are scoped to the name of the crate, but metadata is special in that it has the same name across all crates.
2013-12-29Rename PkgId to CrateIdLuis de Bethencourt-11/+11
2013-12-29Rename pkgid variablesLuis de Bethencourt-1/+1
2013-12-27Initialize LLVM only onceAlex Crichton-25/+25
This also appears to fix a race in LLVM that was causing a deadlock on the bots during the doc-test tests (where we use rustc in parallel).
2013-12-26librustc: De-`@mut` `outputs` in the sessionPatrick Walton-3/+6
2013-12-26librustc: De-`@mut` the additional library search pathsPatrick Walton-2/+7
2013-12-26librustc: De-`@mut` `CStore::used_link_args`Patrick Walton-1/+3
2013-12-26librustc: De-`@mut` `CStore::used_libraries`Patrick Walton-2/+6
2013-12-26librustc: De-`@mut` the crate contextPatrick Walton-6/+6
2013-12-26librustc: De-`@mut` `CrateContext::symbol_hasher`.Patrick Walton-1/+2
2013-12-26librustc: De-`@mut` `CrateContext::type_hashcodes`Patrick Walton-7/+11