Commit graph

207 commits

Author SHA1 Message Date
Mazdak Farrokhzad
1db4bbcced
Rollup merge of #63155 - mfkl:uwp-msvc, r=alexcrichton
Add UWP MSVC targets

Hi,

- The README URI change is the correct one for VS2019 community edition, which I suspect most people would use. Doesn't _need_ to be merged though.
- This 5e6619edd1 fixes the UWP build (msvc or not, doesn't matter). I suspect it broke with recent changes unnoticed because no CI.
- Store lib location is found through the VCToolsInstallDir env variable. The end of the path is currently for the VS2019 store lib locations only.
- I could not test the aarch64_uwp_windows_msvc target because the rust build script does not currently support arm64 msvc AFAIU.
2019-08-15 14:33:58 +02:00
Martin Finkel
89044a908e move store lib probing code to librustc_codegen_ssa 2019-08-08 18:25:47 +02:00
Jeremy Soller
0498da9a3d
redox: convert to target_family unix 2019-08-06 16:18:23 -06:00
Martin Finkel
e3d8b6817e review feedback: find lib root path from registry 2019-08-05 16:24:20 +02:00
Mazdak Farrokhzad
a2735a3e0d
Rollup merge of #63107 - adrian-budau:master, r=alexcrichton
Added support for armv7-unknown-linux-gnueabi/musleabi

Fixes #63101

Some things that are not done and I hope someone can help me with:

* During the ci build of `armv7-unknown-linux-gnueabi` `openssl` must be built (to build cargo) but `openssl` does not yet support this target. This feels slightly like a chicken-and-egg problem, any feedback is welcome.
* Should I add any tests for any of these targets?
2019-08-03 00:09:04 +02:00
Adrian Budau
2b0f4483d2
Added support for armv7-unknown-linux-gnueabi and armv7-unknown-linux-musleabi.
Support for the targets in the compiler and std build in the CI.
2019-08-02 20:06:36 +03:00
Vadim Petrochenkov
5947db1c53 librustc_target: Unconfigure tests during normal build 2019-08-02 01:59:01 +03:00
Martin Finkel
3c6f6f0316 Fix tidy checks 2019-07-31 17:15:26 +07:00
Martin Finkel
6e4d02369a Add UWP MSVC targets 2019-07-31 16:39:38 +07:00
Mazdak Farrokhzad
778b631ff0
Rollup merge of #62809 - alexcrichton:wasm-llvm-9, r=nikic
rustc: Update wasm32 support for LLVM 9

This commit brings in a number of minor updates for rustc's support for
the wasm target which has changed in the LLVM 9 update. Notable updates
include:

* The compiler now no longer manually inserts the `producers` section,
  instead relying on LLVM to do so. LLVM uses the `llvm.ident` metadata
  for the `processed-by` directive (which is now emitted on the wasm
  target in this PR) and it uses debuginfo to figure out what `language`
  to put in the `producers` section.

* Threaded WebAssembly code now requires different flags to be passed
  with LLD. In LLD we now pass:

  * `--shared-memory` - required since objects are compiled with
    atomics. This also means that the generated memory will be marked as
    `shared`.
  * `--max-memory=1GB` - required with the `--shared-memory` argument
    since shared memories in WebAssembly must have a maximum size. The
    1GB number is intended to be a conservative estimate for rustc, but
    it should be overridable with `-C link-arg` if necessary.
  * `--passive-segments` - this has become the default for multithreaded
    memory, but when compiling a threaded module all data segments need
    to be marked as passive to ensure they don't re-initialize memory
    for each thread. This will also cause LLD to emit a synthetic
    function to initialize memory which users will have to arrange to
    call.
  * The `__heap_base` and `__data_end` globals are explicitly exported
    since they're now hidden by default due to the `--export` flags we
    pass to LLD.
2019-07-29 02:10:52 +02:00
Mazdak Farrokhzad
ba835dffe6
Rollup merge of #62904 - nikic:arm-d32, r=alexcrichton
Disable d32 on armv6 hf targets

We already do this on armv7 targets. It seems that this now gets enabled by default if '+vfp2` is specified, so disable it explicitly.

Hopefully fixes #62841.

r? @alexcrichton
2019-07-26 18:56:48 +02:00
Mazdak Farrokhzad
632ce7402f
Rollup merge of #62801 - bjorn3:remove_lower_128bit_ops, r=alexcrichton
Remove support for -Zlower-128bit-ops

It is broken and unused

cc https://github.com/rust-lang/rust/issues/58969

blocked https://github.com/rust-lang-nursery/compiler-builtins/pull/302 (removes definitions of the lang items removed in this PR)

r? @alexcrichton
2019-07-26 18:56:43 +02:00
Hugo Beauzée-Luyssen
7ed5c36934 Add UWP mingw targets 2019-07-25 21:30:08 +02:00
Alex Crichton
dc50a633f3 std: Use native #[thread_local] TLS on wasm
This commit moves `thread_local!` on WebAssembly targets to using the
`#[thread_local]` attribute in LLVM. This was recently implemented
upstream and is [in the process of being documented][dox]. This change
only takes affect if modules are compiled with `+atomics` which is
currently unstable and a pretty esoteric method of compiling wasm
artifacts.

This "new power" of the wasm toolchain means that the old
`wasm-bindgen-threads` feature of the standard library can be removed
since it should now be possible to create a fully functioning threaded
wasm module without intrusively dealing with libstd symbols or
intrinsics. Yay!

[dox]: https://github.com/WebAssembly/tool-conventions/pull/116
2019-07-25 11:17:07 -07:00
Mazdak Farrokhzad
6e1ed3a116
Rollup merge of #62903 - swolchok:ios-sdkroot, r=alexcrichton
Support SDKROOT env var on iOS

Following what clang does (296a80102a/clang/lib/Driver/ToolChains/Darwin.cpp (L1661-L1678)), allow allow SDKROOT to tell us where the Apple SDK lives so we don't have to invoke xcrun.

Replaces #62551.
2019-07-25 01:05:05 +02:00
Mazdak Farrokhzad
5a7db0e19a
Rollup merge of #62901 - petrochenkov:serde, r=Centril
cleanup: Remove `extern crate serialize as rustc_serialize`s
2019-07-25 01:05:03 +02:00
Mazdak Farrokhzad
b1a866012d
Rollup merge of #62814 - androm3da:hexagon_19jul_2019, r=alexcrichton
add support for hexagon-unknown-linux-musl
2019-07-25 01:05:00 +02:00
Mazdak Farrokhzad
8d9000d38c
Rollup merge of #62784 - Disasm:riscv32i, r=estebank
Add riscv32i-unknown-none-elf target

This target is likely to be useful for constrained FPGA soft-cores, such as picorv32 and HeavyX.
2019-07-25 01:04:59 +02:00
Scott Wolchok
287db19e9a Add comment 2019-07-24 10:28:14 -07:00
bors
27a6a304e2 Auto merge of #62908 - fakenine:normalize_use_of_backticks_compiler_messages_p17, r=alexreg
normalize use of backticks for compiler messages in remaining modules

https://github.com/rust-lang/rust/issues/60532
2019-07-24 10:03:20 +00:00
Samy Kacimi
66815c613a
normalize use of backticks for compiler messages in remaining modules
https://github.com/rust-lang/rust/issues/60532
2019-07-23 23:09:59 +02:00
Scott Wolchok
a4ff823f5d fix check 2019-07-23 13:37:17 -07:00
Nikita Popov
fe4cdd3078 Disable d32 on armv6 hf targets 2019-07-23 20:30:57 +02:00
Vadim Petrochenkov
614037171b cleanup: Remove extern crate serialize as rustc_serializes 2019-07-23 19:20:16 +03:00
Brian Cain
4b339688b5 add support for hexagon-unknown-linux-musl 2019-07-22 09:44:58 -05:00
CrLF0710
10d415938e Revert "Disable stack probing for gnux32."
This reverts commit 42d652ecd6.
2019-07-20 01:29:47 +08:00
bjorn3
3427a14bdf Remove support for -Zlower-128bit-ops
It is broken and unused
2019-07-19 14:21:06 +02:00
Vadim Kaushan
bb9bf0ca9a
Add riscv32i-unknown-none-elf target 2019-07-18 18:37:23 +03:00
Baoshan Pang
b7939173de update data_layout and features 2019-07-17 01:06:33 -07:00
Scott Wolchok
ccb5d0a7c1 Support SDKROOT env var on iOS
Following what clang does (296a80102a/clang/lib/Driver/ToolChains/Darwin.cpp (L1661-L1678)), allow allow SDKROOT to tell us where the Apple SDK lives so we don't have to invoke xcrun.
2019-07-16 13:29:40 -07:00
bors
07e0c3651c Auto merge of #61946 - BaoshanPang:vxworks, r=alexcrichton
port rust for vxWorks

The supporting for vxWorks has been enabled in this branch. Although there are still a lots of work to do, I would like to upstream the code and fix the problems later.

Please let me know if there is anything I have to do before upstream the code.

r? @alexcrichton

Thanks,
Baoshan
2019-07-16 19:26:53 +00:00
Baoshan Pang
4c0c0f6158 Add supporting for vxWorks
r? @alexcrichton
2019-07-16 00:13:07 -07:00
Jethro Beekman
35c248f6f0 SGX target: don't pretend to be GNU/Linux to LLVM 2019-07-15 11:23:39 -07:00
Mazdak Farrokhzad
6c0a406b1c
Rollup merge of #62474 - nikic:update-llvm, r=alexcrichton
Prepare for LLVM 9 update

Main changes:

 * In preparation for opaque pointer types, the `byval` attribute now takes a type. As such, the argument type needs to be threaded through to the function/callsite attribute application logic.
 * On ARM the `+fp-only-sp` and `+d16` features have become `-fp64` and `-d32`. I've switched the target definitions to use the new names, but also added bidirectional emulation so either can be used on any LLVM version for backwards compatibility.
 * The datalayout can now specify function pointer alignment. In particular on ARM `Fi8` is specified, which means that function pointer alignment is independent of function alignment. I've added this to our datalayouts to match LLVM (which is something we check) and strip the fnptr alignment for older LLVM versions.
 * The fmul/fadd reductions now always respect the accumulator (including for unordered reductions), so we should pass the identity instead of undef.

Open issues:

 * https://reviews.llvm.org/D62106 causes linker errors with ld.bdf due to https://sourceware.org/bugzilla/show_bug.cgi?id=24784. To avoid this I've enabled `RelaxELFRelocations`, which results in a GOTPCRELX relocation for `__tls_get_addr` and avoids the issue. However, this is likely not acceptable because relax relocations are not supported by older linker versions. We may need an LLVM option to keep using PLT for `__tls_get_addr` despite `RtLibUseGOT`.

The corresponding llvm-project PR is https://github.com/rust-lang/llvm-project/pull/19.

r? @ghost
2019-07-10 05:14:10 +02:00
Mazdak Farrokhzad
1e48be948a
Rollup merge of #62283 - fintelia:patch-5, r=Mark-Simulacrum
Target::arch can take more than listed options

A list of options in a comment like this is almost guaranteed to become out of date: right now it is missing "riscv32" and "riscv64" and perhaps other architectures as well.
2019-07-10 05:14:07 +02:00
Nikita Popov
5324b42a59 Add function pointer alignment to ARM/Thumb data layout 2019-07-09 21:55:29 +02:00
Nikita Popov
3170b62cca Use new feature names in target feature lists 2019-07-09 21:55:29 +02:00
bors
4393768faa Auto merge of #62281 - Disasm:riscv-pic, r=nagisa
Add support for pc-relative addressing on 64-bit RISC-V

These changes allow Rust to generate position-independent code on `riscv64` targets with code model `medium`.

Closes: https://github.com/rust-lang/rust/issues/59802
See also: https://github.com/rust-embedded/riscv-rt/issues/25, https://github.com/rust-embedded/wg/issues/218
2019-07-07 01:14:42 +00:00
Mark Rousskov
7d5d59160a
Rollup merge of #62021 - crlf0710:msvc_link_output_improve, r=alexcrichton
MSVC link output improve

Resolves #35785.

However i haven't come up with a idea to add test case for this :(

r? @retep998
2019-07-03 09:59:10 -04:00
Jonathan Behrens
515da7249e
Target::arch can take more than listed options
A list of options in a comment like this is almost guaranteed to become out of date. This list is missing "riscv32" and "riscv64" and perhaps other architectures as well.
2019-07-01 17:31:52 -04:00
Vadim Kaushan
c65ffa789d
Use code model 'medium' for 64-bit RISC-V targets 2019-07-01 23:52:40 +03:00
CrLF0710
8339211809 Added comment description. 2019-06-27 20:59:17 +08:00
Igor Matuszewski
12806b7050 Fix clippy::redundant_field_names 2019-06-26 13:59:58 +02:00
CrLF0710
19f86224a6 Just switch to English linker output using environment variable when using msvc. 2019-06-24 19:56:50 +08:00
Julien Cretin
b8106b59d2 Fix meta-variable binding errors in macros
The errors are either:
- The meta-variable used in the right-hand side is not bound (or defined) in the
  left-hand side.
- The meta-variable used in the right-hand side does not repeat with the same
  kleene operator as its binder in the left-hand side. Either it does not repeat
  enough, or it uses a different operator somewhere.

This change should have no semantic impact.
2019-06-23 01:30:41 +02:00
bors
dbebcee8d0 Auto merge of #59752 - Zoxc:dylib-fix, r=alexcrichton
Limit dylib symbols

This makes `windows-gnu` match the behavior of `windows-msvc`. It probably doesn't make sense to export these symbols on other platforms either.
2019-06-15 10:18:09 +00:00
Mazdak Farrokhzad
b03ffbc69a
Rollup merge of #61761 - lzutao:target-tuple-solaris, r=varkor
Add an alias for x86_64-sun-solaris target tuple

Closes #40531

r? @varkor
2019-06-13 01:49:32 +02:00
John Kåre Alsaker
52bd4f263b Add a limit_rdylib_exports option and disable it for Solaris 2019-06-12 23:07:13 +02:00
Lzu Tao
7c8644dc23 Add an alias for x86_64-sun-solaris target tuple 2019-06-12 19:04:43 +00:00
Jonathan Behrens
493d1b473a Include frame pointer for bare metal RISC-V targets 2019-06-08 19:21:38 -04:00