1. 09 5月, 2016 1 次提交
  2. 07 5月, 2016 1 次提交
  3. 05 5月, 2016 2 次提交
  4. 03 5月, 2016 1 次提交
  5. 25 4月, 2016 2 次提交
  6. 21 4月, 2016 1 次提交
  7. 19 4月, 2016 1 次提交
  8. 09 4月, 2016 1 次提交
  9. 08 4月, 2016 1 次提交
  10. 23 3月, 2016 2 次提交
  11. 21 3月, 2016 1 次提交
  12. 05 3月, 2016 1 次提交
    • A
      rustc: Add an i586-pc-windows-msvc target · 01a2a7f9
      Alex Crichton 提交于
      Similarly to #31629 where an i586-unknown-linux-gnu target was added, there is
      sometimes a desire to compile for x86 Windows as well where SSE2 is disabled.
      This commit mirrors the i586-unknown-linux-gnu target and simply adds a variant
      for Windows as well.
      
      This is motivated by a recent [Gecko bug][ff] where crashes were seen on 32-bit
      Windows due to users having CPUs that don't support SSE2 instructions. It was
      requested that we could have non-SSE2 builds of the standard library available
      so they could continue to use vanilla releases and nightlies.
      
      [ff]: https://bugzilla.mozilla.org/show_bug.cgi?id=1253202
      01a2a7f9
  13. 22 2月, 2016 2 次提交
  14. 18 2月, 2016 1 次提交
  15. 17 2月, 2016 1 次提交
  16. 14 2月, 2016 1 次提交
  17. 13 2月, 2016 1 次提交
  18. 12 2月, 2016 2 次提交
  19. 11 2月, 2016 3 次提交
  20. 09 2月, 2016 1 次提交
    • A
      rustc: Use llvm-ar for custom targets by default · d66f3948
      Alex Crichton 提交于
      The compiler currently vendors its own version of "llvm-ar" (not literally the
      binary but rather the library support) and uses it for all major targets by
      default (e.g. everything defined in `src/librustc_back/target`). All custom
      target specs, however, still search for an `ar` tool by default. This commit
      changes this default behavior to using the internally bundled llvm-ar with the
      GNU format.
      
      Currently all targets use the GNU format except for OSX which uses the BSD
      format (surely makes sense, right?), and custom targets can change the format
      via the `archive-format` key in custom target specs.
      
      I suspect that we can outright remove support for invoking an external `ar`
      utility, but I figure for now there may be some crazy target relying on that so
      we should leave support in for now.
      d66f3948
  21. 08 2月, 2016 1 次提交
    • A
      rustc: Tweak exe allocator for MinGW/rumprun · 79a63735
      Alex Crichton 提交于
      Both of these targets have jemalloc disabled unconditionally right now, so using
      `maybe_jemalloc` here isn't right. This fixes the case where a Linux compiler
      (which is itself configured to use jemalloc) attempts to cross-compile to MinGW,
      causing it to try to find an `alloc_jemalloc` crate (and failing).
      79a63735
  22. 07 2月, 2016 3 次提交
  23. 02 2月, 2016 1 次提交
    • A
      Remove "powerpc64le" and "mipsel" target_arch · 8f803c20
      Alex Crichton 提交于
      Currently the `mipsel-unknown-linux-gnu` target doesn't actually set the
      `target_arch` value to `mipsel` but it rather uses `mips`. Alternatively the
      `powerpc64le` target does indeed set the `target_arch` as `powerpc64le`,
      causing a bit of inconsistency between theset two.
      
      As these are just the same instance of one instruction set, let's use
      `target_endian` to switch between them and only set the `target_arch` as one
      value. This should cut down on the number of `#[cfg]` annotations necessary and
      all around be a little more ergonomic.
      8f803c20
  24. 01 2月, 2016 2 次提交
  25. 31 1月, 2016 3 次提交
  26. 30 1月, 2016 3 次提交
    • A
      rustc: Set MIPS cpu/features in the compiler · 0316013b
      Alex Crichton 提交于
      Currently any compilation to MIPS spits out the warning:
      
          'generic' is not a recognized processor for this target (ignoring processor)
      
      Doesn't make for a great user experience! We don't encounter this in the normal
      bootstrap because the cpu/feature set are set by the makefiles. Instead let's
      just propagate these to the defaults for the entire target all the time (still
      overridable from the command line) and prevent warnings from being emitted by
      default.
      0316013b
    • A
      trans: Reimplement unwinding on MSVC · 3e9589c0
      Alex Crichton 提交于
      This commit transitions the compiler to using the new exception handling
      instructions in LLVM for implementing unwinding for MSVC. This affects both 32
      and 64-bit MSVC as they're both now using SEH-based strategies. In terms of
      standard library support, lots more details about how SEH unwinding is
      implemented can be found in the commits.
      
      In terms of trans, this change necessitated a few modifications:
      
      * Branches were added to detect when the old landingpad instruction is used or
        the new cleanuppad instruction is used to `trans::cleanup`.
      * The return value from `cleanuppad` is not stored in an `alloca` (because it
        cannot be).
      * Each block in trans now has an `Option<LandingPad>` instead of `is_lpad: bool`
        for indicating whether it's in a landing pad or not. The new exception
        handling intrinsics require that on MSVC each `call` inside of a landing pad
        is annotated with which landing pad that it's in. This change to the basic
        block means that whenever a `call` or `invoke` instruction is generated we
        know whether to annotate it as part of a cleanuppad or not.
      * Lots of modifications were made to the instruction builders to construct the
        new instructions as well as pass the tagging information for the call/invoke
        instructions.
      * The translation of the `try` intrinsics for MSVC has been overhauled to use
        the new `catchpad` instruction. The filter function is now also a
        rustc-generated function instead of a purely libstd-defined function. The
        libstd definition still exists, it just has a stable ABI across architectures
        and leaves some of the really weird implementation details to the compiler
        (e.g. the `localescape` and `localrecover` intrinsics).
      3e9589c0
    • J
      add support for mips(el)-unknown-linux-musl · 7b026f03
      Jorge Aparicio 提交于
      This target covers MIPS devices that run the trunk version of OpenWRT.
      
      The x86_64-unknown-linux-musl target always links statically to C libraries. For
      the mips(el)-unknown-linux-musl target, we opt for dynamic linking (like most of
      other targets do) to keep binary size down.
      
      As for the C compiler flags used in the build system, we use the same flags used
      for the mips(el)-unknown-linux-gnu target.
      7b026f03