1. 12 11月, 2018 1 次提交
    • A
      rustc: Clean up allocator injection logic · d3939322
      Alex Crichton 提交于
      This commit cleans up allocator injection logic found in the compiler
      around selecting the global allocator. It turns out that now that
      jemalloc is gone the compiler never actually injects anything! This
      means that basically everything around loading crates here and there can
      be easily pruned.
      
      This also removes the `exe_allocation_crate` option from custom target
      specs as it's no longer used by the compiler anywhere.
      d3939322
  2. 10 11月, 2018 1 次提交
  3. 06 11月, 2018 1 次提交
    • P
      Use lld directly for Fuchsia target · 3d27aca8
      Petr Hosek 提交于
      Fuchsia already uses lld as the default linker, so there's no reason
      to always invoke it through Clang, instead we can simply invoke lld
      directly and pass the set of flags that matches Clang.
      3d27aca8
  4. 05 11月, 2018 1 次提交
  5. 04 11月, 2018 1 次提交
    • A
      rustc: Delete grouping logic from the musl target · f3428a7d
      Alex Crichton 提交于
      This commit deletes the injection of `-(` and `-)` options to the linker
      for the musl targets. This actually causes problems today on nightly if
      you execute:
      
          $ echo 'fn main() {}' >> foo.rs
          $ rustc --target x86_64-unknown-linux-musl -C panic=abort
      
      you get a linker error about "cannot nest groups". This comes about
      because rustc injects its own `--start-group` and `--end-group`
      variables which clash with the outer `-(` and `-)` variables. It's not
      entirely clear to me why this doesn't affect the musl target by default
      (in `-C panic=unwind` mode).
      
      The compiler's own injection of `--start-group` and `--end-group` should
      solve the issues mentioned in the comment for injecting `-(` and `-)` as
      well.
      f3428a7d
  6. 02 11月, 2018 2 次提交
    • A
      Use `jemalloc-sys` on Linux and OSX compilers · 016eaf88
      Alex Crichton 提交于
      This commit adds opt-in support to the compiler to link to `jemalloc` in
      the compiler. When activated the compiler will depend on `jemalloc-sys`,
      instruct jemalloc to unprefix its symbols, and then link to it. The
      feature is activated by default on Linux/OSX compilers for x86_64/i686
      platforms, and it's not enabled anywhere else for now. We may be able to
      opt-in other platforms in the future! Also note that the opt-in only
      happens on CI, it's otherwise unconditionally turned off by default.
      
      Closes #36963
      016eaf88
    • A
      Remove all jemalloc-related content · 61e89446
      Alex Crichton 提交于
      This commit removes all jemalloc related submodules, configuration, etc,
      from the bootstrap, from the standard library, and from the compiler.
      This will be followed up with a change to use jemalloc specifically as
      part of rustc on blessed platforms.
      61e89446
  7. 29 10月, 2018 1 次提交
    • J
      msp430: remove the whole Atomic* API · 8255671a
      Jorge Aparicio 提交于
      PR #51953 enabled the Atomic*.{load,store} API on MSP430. Unfortunately, the
      LLVM backend doesn't currently support those atomic operations, so this commit
      removes the API and leaves instructions on how and when to enable it in the
      future.
      8255671a
  8. 26 10月, 2018 1 次提交
  9. 13 10月, 2018 1 次提交
    • A
      rustc: Allow targets to specify SIMD args are by-val · 9562b69b
      Alex Crichton 提交于
      The upcoming SIMD support in the wasm target is unique from the other
      platforms where it's either unconditionally available or not available,
      there's no halfway where a subsection of the program can use it but no
      other parts of the program can use it. In this world it's valid for wasm
      SIMD args to always be passed by value and there's no need to pass them
      by reference.
      
      This commit adds a new custom target specification option
      `simd_types_indirect` which defaults to `true`, but the wasm backend
      disables this and sets it to `false`.
      9562b69b
  10. 12 10月, 2018 1 次提交
    • G
      Support for disabling the PLT on ELF targets · 6009da07
      Gabriel Majeri 提交于
      Disable the PLT where possible to improve performance
      for indirect calls into shared libraries.
      
      This optimization is enabled by default where possible.
      
      - Add the `NonLazyBind` attribute to `rustllvm`:
        This attribute informs LLVM to skip PLT calls in codegen.
      
      - Disable PLT unconditionally:
        Apply the `NonLazyBind` attribute on every function.
      
      - Only enable no-plt when full relro is enabled:
        Ensures we only enable it when we have linker support.
      
      - Add `-Z plt` as a compiler option
      6009da07
  11. 28 9月, 2018 1 次提交
  12. 21 9月, 2018 1 次提交
    • B
      Use no_default_libraries for all NetBSD flavors · 36d562ff
      bgermann 提交于
      The no_default_libraries was introduced in #28578 because the
      NetBSD-based rumprun needed to disable the link flag.
      This moves the definition to be used by all NetBSD linker flavors to
      close #49627.
      
      A different solution would be adding -lc but as there is no platform
      with explicit -lc, this approach is used.
      36d562ff
  13. 17 9月, 2018 1 次提交
  14. 13 9月, 2018 1 次提交
  15. 07 9月, 2018 1 次提交
  16. 05 9月, 2018 1 次提交
  17. 01 9月, 2018 1 次提交
    • A
      rustc: Prepare the `atomics` feature for wasm · fc497d00
      Alex Crichton 提交于
      This commit adds a few changes for atomic instructions on the
      `wasm32-unknown-unknown` target. Atomic instructions are not yet stable in
      WebAssembly itself but there are multiple implementations and LLVM has support
      for the proposed instruction set, so let's work on exposing it!
      
      Here there are a few inclusions:
      
      * The `atomics` feature was whitelisted for LLVM, allowing code in Rust to
        enable/disable/gate on this.
      
      * The `singlethread` option is turned off for wasm when the `atomics` feature is
        enabled. This means that by default wasm won't be lowering with atomics, but
        when atomics are enabled globally we'll turn off single-threaded mode to
        actually codegen atomics. This probably isn't what we'll want in the long term
        but for now it should work.
      
      * Finally the maximum atomic width is increased to 64 to reflect the current
        wasm spec.
      fc497d00
  18. 31 8月, 2018 1 次提交
  19. 30 8月, 2018 3 次提交
  20. 26 8月, 2018 6 次提交
  21. 25 8月, 2018 1 次提交
  22. 23 8月, 2018 1 次提交
  23. 19 8月, 2018 1 次提交
  24. 18 8月, 2018 2 次提交
  25. 16 8月, 2018 1 次提交
    • A
      Start adding an `aarch64-pc-windows-msvc` target · fccc04d3
      Alex Crichton 提交于
      This commit adds the necessary definitions for target specs and such as well as
      the necessary support in libstd to compile basic `aarch64-pc-windows-msvc`
      binaries. The target is not currently built on CI, but it can be built locally
      with:
      
          ./configure --target=aarch64-pc-windows-msvc --set rust.lld
          ./x.py build src/libstd --target aarch64-pc-windows-msvc
      
      Currently this fails to build `libtest` due to a linker bug (seemingly in LLD?)
      which hasn't been investigate yet. Otherwise though with libstd you can build a
      hello world program (linked with LLD). I've not tried to execute it yet, but it
      at least links!
      
      Full support for this target is still a long road ahead, but this is hopefully a
      good stepping stone to get started.
      
      Points of note about this target are:
      
      * Currently defaults to `panic=abort` as support is still landing in LLVM for
        SEH on AArch64.
      * Currently defaults to LLD as a linker as I was able to get farther with it
        than I was with `link.exe`
      fccc04d3
  26. 12 8月, 2018 1 次提交
  27. 10 8月, 2018 1 次提交
  28. 09 8月, 2018 1 次提交
  29. 08 8月, 2018 1 次提交
  30. 07 8月, 2018 1 次提交
  31. 01 8月, 2018 1 次提交