1. 18 8月, 2023 1 次提交
  2. 04 4月, 2022 1 次提交
  3. 07 7月, 2021 1 次提交
    • J
      Update targets to use target_abi · c3fbafdd
      Josh Triplett 提交于
      All eabi targets have target_abi = "eabi".
      All eabihf targets have target_abi = "eabihf".
      armv6_unknown_freebsd and armv7_unknown_freebsd have target_abi = "eabihf".
      All abi64 targets have target_abi = "abi64".
      All ilp32 targets have target_abi = "ilp32".
      All softfloat targets have target_abi = "softfloat".
      All *-uwp-windows-* targets have target_abi = "uwp".
      All spe targets have target_abi = "spe".
      All macabi targets have target_abi = "macabi".
      aarch64-apple-ios-sim has target_abi = "sim".
      x86_64-fortanix-unknown-sgx has target_abi = "fortanix".
      x86_64-unknown-linux-gnux32 has target_abi = "x32".
      
      Add FIXME entries for targets for which existing values need to change
      once cfg_target_abi becomes stable. (All of them are tier 3 targets.)
      
      Add a test for target_abi in `--print cfg`.
      c3fbafdd
  4. 06 7月, 2021 1 次提交
    • S
      Replace per-target ABI denylist with an allowlist · 8240e7aa
      Simonas Kazlauskas 提交于
      It makes very little sense to maintain denylists of ABIs when, as far as
      non-generic ABIs are concerned, targets usually only support a small
      subset of the available ABIs.
      
      This has historically been a cause of bugs such as us allowing use of
      the platform-specific ABIs on x86 targets – these in turn would cause
      LLVM errors or assertions to fire.
      
      Fixes #57182
      
      Sponsored by: standard.ai
      8240e7aa
  5. 11 11月, 2020 1 次提交
  6. 08 11月, 2020 1 次提交
    • V
      rustc_target: Rename some target options to avoid tautology · dc004d48
      Vadim Petrochenkov 提交于
      `target.target_endian` -> `target.endian`
      `target.target_c_int_width` -> `target.c_int_width`
      `target.target_os` -> `target.os`
      `target.target_env` -> `target.env`
      `target.target_vendor` -> `target.vendor`
      `target.target_family` -> `target.os_family`
      `target.target_mcount` -> `target.mcount`
      dc004d48
  7. 07 11月, 2020 6 次提交
  8. 15 10月, 2020 1 次提交
    • E
      Use integer literals for builtin target_pointer_width fields · 64ba25d0
      est31 提交于
      Also change target_pointer_width to pointer_width.
      
      Preparation for a subsequent type change of
      target_pointer_width to an integer together with a rename
      to pointer_width.
      
      On its own, this commit breaks the build. I don't like making
      build-breaking commits, but in this instance I believe that it
      makes review easier, as the "real" changes of this PR can be
      seen much more easily.
      
      Result of running:
      
      find compiler/rustc_target/src/spec/ -type f -exec sed -i -e 's/target_pointer_width: "\(.*\)"\..*,/pointer_width: \1,/g' {} \;
      64ba25d0
  9. 06 10月, 2020 1 次提交
  10. 30 8月, 2020 1 次提交
  11. 09 7月, 2020 1 次提交
    • T
      Avoid "blacklist" · 1e567c11
      Tamir Duberstein 提交于
      Other terms are more inclusive and precise.
      
      Clippy still has a lint named "blacklisted-name", but renaming it would
      be a breaking change, so is left for future work.
      
      The target configuration option "abi-blacklist" has been depreciated and
      renamed to "unsupported-abis". The old name continues to work.
      1e567c11
  12. 23 12月, 2019 1 次提交
  13. 24 7月, 2019 1 次提交
  14. 10 7月, 2019 1 次提交
  15. 31 3月, 2019 1 次提交
  16. 30 3月, 2019 1 次提交
  17. 08 2月, 2019 1 次提交
  18. 26 12月, 2018 1 次提交
  19. 26 4月, 2018 2 次提交
  20. 06 12月, 2017 1 次提交
  21. 08 10月, 2017 1 次提交
    • J
      enable strict alignment (+strict-align) on ARMv6 · 2b8f190d
      Jorge Aparicio 提交于
      As discovered in #44538 ARMv6 devices may or may not support unaligned memory accesses. ARMv6
      Linux *seems* to have no problem with unaligned accesses but this is because the kernel is stepping
      in to fix each unaligned memory access -- this incurs in a performance penalty.
      
      This commit enforces aligned memory accesses on all our in-tree ARM targets that may be used with
      ARMv6 devices. This should improve performance of Rust programs on ARMv6 devices. For the record,
      clang also applies this attribute when targeting ARMv6 devices that are not running Darwin or
      NetBSD.
      2b8f190d
  22. 30 9月, 2017 1 次提交
  23. 07 4月, 2017 1 次提交
    • J
      -Z linker-flavor · 9d11b089
      Jorge Aparicio 提交于
      This patch adds a `-Z linker-flavor` flag to rustc which can be used to invoke
      the linker using a different interface.
      
      For example, by default rustc assumes that all the Linux targets will be linked
      using GCC. This makes it impossible to use LLD as a linker using just `-C
      linker=ld.lld` because that will invoke LLD with invalid command line
      arguments. (e.g. rustc will pass -Wl,--gc-sections to LLD but LLD doesn't
      understand that; --gc-sections would be the right argument)
      
      With this patch one can pass `-Z linker-flavor=ld` to rustc to invoke the linker
      using a LD-like interface. This way, `rustc -C linker=ld.lld -Z
      linker-flavor=ld` will invoke LLD with the right arguments.
      
      `-Z linker-flavor` accepts 4 different arguments: `em` (emcc), `ld`,
      `gcc`, `msvc` (link.exe). `em`, `gnu` and `msvc` cover all the existing linker
      interfaces. `ld` is a new flavor for interfacing GNU's ld and LLD.
      
      This patch also changes target specifications. `linker-flavor` is now a
      mandatory field that specifies the *default* linker flavor that the target will
      use. This change also makes the linker interface *explicit*; before, it used to
      be derived from other fields like linker-is-gnu, is-like-msvc,
      is-like-emscripten, etc.
      
      Another change to target specifications is that the fields `pre-link-args`,
      `post-link-args` and `late-link-args` now expect a map from flavor to linker
      arguments.
      
      ``` diff
      -    "pre-link-args": ["-Wl,--as-needed", "-Wl,-z,-noexecstack"],
      +    "pre-link-args": {
      +        "gcc": ["-Wl,--as-needed", "-Wl,-z,-noexecstack"],
      +        "ld": ["--as-needed", "-z,-noexecstack"],
      +    },
      ```
      
      [breaking-change]  for users of custom targets specifications
      9d11b089
  24. 24 10月, 2016 1 次提交
  25. 04 10月, 2016 1 次提交
  26. 28 7月, 2016 1 次提交
    • D
      librustc_back: convert fn target() to return Result · eafecbf8
      Doug Goldstein 提交于
      Change all the target generation functions to return a Result<Target,
      String> so that targets that are unable to be instantiated can be
      expressed as an Err instead of a panic!(). This should improve #33497 as
      well.
      eafecbf8
  27. 09 5月, 2016 1 次提交
  28. 05 5月, 2016 1 次提交
    • A
      rustc: Change target_env for ARM targets to `gnu` · 29875c2e
      Alex Crichton 提交于
      Right now they're `gnueabihf` and `gnueabi`, but when adding new platforms like
      musl on ARM it's unfortunate to have to test for all three (`musl`, `musleabi`,
      and `musleabihf`). This PR switches everything currently to `gnu`, and the new
      musl targets can also use `musl` when they land.
      
      Closes #33244
      29875c2e
  29. 19 4月, 2016 1 次提交
  30. 24 9月, 2015 1 次提交
    • S
      rustc: Add target_vendor for target triples · af68cdfe
      Sebastian Wicki 提交于
      This adds a new target property, `target_vendor` which can be used as a
      matcher for conditional compilation. The vendor is part of the autoconf
      target triple: <arch><sub>-<vendor>-<os>-<env>
      
      The default value for `target_vendor` is "unknown".
      
      Matching against the `target_vendor` with `#[cfg]` is currently feature
      gated as `cfg_target_vendor`.
      af68cdfe
  31. 17 7月, 2015 1 次提交
    • A
      trans: Clean up handling the LLVM data layout · 958d5638
      Alex Crichton 提交于
      Turns out for OSX our data layout was subtly wrong and the LLVM update must have
      exposed this. Instead of fixing this I've removed all data layouts from the
      compiler to just use the defaults that LLVM provides for all targets. All data
      layouts (and a number of dead modules) are removed from the compiler here.
      Custom target specifications can still provide a custom data layout, but it is
      now an optional key as the default will be used if one isn't specified.
      958d5638
  32. 28 4月, 2015 1 次提交
    • A
      rustc: Add target_env for triples by default · ba2380d7
      Alex Crichton 提交于
      This adds a new `#[cfg]` matcher against the `target_env` property of the
      destination target triple. For example all windows triples today end with `-gnu`
      but we will also hopefully support non-`gnu` targets for Windows, at which point
      we'll need to differentiate between the two. This new `target_env` matches is
      provided and filled in with the target's environment name.
      
      Currently the only non-empty value of this name is `gnu`, but `musl` will be
      shortly added for the linux triples.
      ba2380d7
  33. 08 1月, 2015 1 次提交
  34. 28 12月, 2014 1 次提交