1211 Commits

Author SHA1 Message Date
quininer
2baa073fb1 Add emulated TLS support
Currently LLVM uses emutls by default
for some targets (such as android, openbsd),
but rust does not use it, because `has_thread_local` is false.

This commit has some changes to allow users to enable emutls:

1. add `-Zhas-thread-local` flag to specify
    that std uses `#[thread_local]` instead of pthread key.
2. when using emutls, decorate symbol names
    to find thread local symbol correctly.
3. change `-Zforce-emulated-tls` to `-Ztls-model=emulated`
    to explicitly specify whether to generate emutls.
2023-12-07 00:21:32 +08:00
Guillaume Gomez
ebb7aa0b85 Apply suggestions 2023-12-04 17:33:18 +01:00
Guillaume Gomez
996635bad6 Fix chroot command 2023-12-04 15:29:23 +01:00
Guillaume Gomez
2ec8d46dd1 Correctly handle OVERWRITE_TARGET_TRIPLE env variable 2023-12-04 15:29:23 +01:00
Guillaume Gomez
53b2759bef Show command which failed 2023-12-04 15:29:23 +01:00
Guillaume Gomez
ff04316243 Remove --target option 2023-12-04 15:29:23 +01:00
Guillaume Gomez
970b2c7700 Fix build_sysroot by adding missing RUSTFLAGS environment variable 2023-12-04 15:29:23 +01:00
Guillaume Gomez
7d71b87691 Correctly set --cap-lints when running regex tests 2023-12-04 15:29:23 +01:00
Guillaume Gomez
ad1d5417e7 Set RUSTDOCFLAGS environment variable in run_cargo_command_with_callback function 2023-12-04 15:29:23 +01:00
Guillaume Gomez
7013eccc05 Add missing code comment 2023-12-04 15:29:23 +01:00
Guillaume Gomez
3c6bae7fa8 Use the correct folder when deleting rust UI tests 2023-12-04 15:29:23 +01:00
Guillaume Gomez
4bed89f79b Correctly pass toolchain to cargo command 2023-12-04 15:29:23 +01:00
Guillaume Gomez
d793f80bd4 Correctly pass cfg option 2023-12-04 15:29:23 +01:00
Guillaume Gomez
673661db8b Remove newline for llvm FileCheck binary path 2023-12-04 15:29:23 +01:00
Guillaume Gomez
23c97b545d Replace xargs command with pure Rust 2023-12-04 15:29:23 +01:00
Guillaume Gomez
87c284c9bc Only read rust test files 2023-12-04 15:29:23 +01:00
Guillaume Gomez
9d104a0cbf Clone rust repository before modifying it 2023-12-04 15:29:23 +01:00
Guillaume Gomez
c27fe3e036 Correctly handle channel in config 2023-12-04 15:29:23 +01:00
Guillaume Gomez
694a80d372 Add missing --build-sysroot option 2023-12-04 15:29:23 +01:00
Guillaume Gomez
8cc024c84d Fix invalid path in build_sysroot_inner 2023-12-04 15:29:23 +01:00
Guillaume Gomez
d3e14a49c9 Display stdout and stderr if a command failed to run 2023-12-04 15:29:23 +01:00
Guillaume Gomez
84ca4f59c2 Remove test.sh, config.sh and all calls and documentation pointing to it 2023-12-04 15:29:22 +01:00
Guillaume Gomez
7b76ac4eb7 Rustify test.sh 2023-12-04 15:28:53 +01:00
Guillaume Gomez
04f32f2016 Allow rustfmt to run on build_system 2023-12-04 15:28:53 +01:00
Nicholas Nethercote
f9a228df48 Rename some arguments.
`sess` is a terribly misleading name for a `Handler`! This confused me
for a bit.
2023-12-04 18:57:41 +11:00
antoyo
0a67e9cd60
Merge pull request #391 from GuillaumeGomez/fix-build-instructions
Fix build instructions
2023-12-02 11:42:37 -05:00
Guillaume Gomez
bb4d0be014 Fix build instructions 2023-12-02 16:28:28 +01:00
Andy Sadler
17b2c46c88
remove generic-arithmetic-pass from failing tests
This test now passes when tested with a patched libgccjit.  However, due
to [some compiler bugs][1], we can't enable this for non-patched
libgccjit yet.

[1]: https://github.com/sadlerap/rustc_codegen_gcc/actions/runs/6820180639/job/18548672444#step:15:4375

Signed-off-by: Andy Sadler <andrewsadler122@gmail.com>
2023-11-28 21:25:43 -06:00
Andy Sadler
3a221320eb
fix simd_neg implementation for ints
gcc_not would panic upon encountering a vector type, which is not what
we want here.

Signed-off-by: Andy Sadler <andrewsadler122@gmail.com>
2023-11-28 21:25:42 -06:00
Andy Sadler
03e11a214e
impl simd_ctlz/simd_cttz intrinsic
Signed-off-by: Andy Sadler <andrewsadler122@gmail.com>
2023-11-28 21:25:42 -06:00
Andy Sadler
8d42a82b6e
impl simd_bitreverse intrinsic
If we're running against a patched libgccjit, use an algorithm similar
to what LLVM uses for this intrinsic.  Otherwise, fallback to a
per-element bitreverse.

Signed-off-by: Andy Sadler <andrewsadler122@gmail.com>
2023-11-28 21:25:34 -06:00
Andy Sadler
70586a23a7
fix simd_frem intrinsic implementation
The simd intrinsic handler was delegating implementation of `simd_frem`
to `Builder::frem`, which wasn't able to handle vector-typed inputs.  To
fix this, teach this method how to handle vector inputs.

Signed-off-by: Andy Sadler <andrewsadler122@gmail.com>
2023-11-28 21:25:23 -06:00
Andy Sadler
6d13f949ee
remove generic-bswap-byte from failing test list
Signed-off-by: Andy Sadler <andrewsadler122@gmail.com>
2023-11-28 21:25:23 -06:00
Andy Sadler
cc7c9bea15
implement simd_bswap intrinsic
Implements lane-local byte swapping through vector shuffles.  While this
is more setup than non-vector shuffles, this implementation can shuffle
multiple integers concurrently.

Signed-off-by: Andy Sadler <andrewsadler122@gmail.com>
2023-11-28 21:25:17 -06:00
Nicholas Nethercote
8e13be084a Use rustc_fluent_macro::fluent_messages! directly.
Currently we always do this:
```
use rustc_fluent_macro::fluent_messages;
...
fluent_messages! { "./example.ftl" }
```
But there is no need, we can just do this everywhere:
```
rustc_fluent_macro::fluent_messages! { "./example.ftl" }
```
which is shorter.
2023-11-26 08:38:40 +11:00
Nicholas Nethercote
4de5d372aa Avoid need for {D,Subd}iagnosticMessage imports.
The `fluent_messages!` macro produces uses of
`crate::{D,Subd}iagnosticMessage`, which means that every crate using
the macro must have this import:
```
use rustc_errors::{DiagnosticMessage, SubdiagnosticMessage};
```

This commit changes the macro to instead use
`rustc_errors::{D,Subd}iagnosticMessage`, which avoids the need for the
imports.
2023-11-26 08:38:00 +11:00
antoyo
bcd0bf5450
Merge pull request #388 from rust-lang/sync_from_rust_2023_11_21
Sync from rust 2023/11/21
2023-11-22 08:11:06 -05:00
Antoni Boucher
fbb97bd593 Merge branch 'master' into sync_from_rust_2023_11_21 2023-11-22 07:41:52 -05:00
Antoni Boucher
a412e9c411 Update README 2023-11-22 07:40:14 -05:00
Antoni Boucher
456754c21a Pass TyCtxt by value 2023-11-19 14:04:40 -05:00
Antoni Boucher
75fce09751 Merge commit '2e8386e9fb3506cef991d04f8b3bc78f9a0c2630' into subtree-update_cg_gcc_2023-11-17 2023-11-19 13:42:13 -05:00
antoyo
2e8386e9fb
Merge pull request #387 from rust-lang/sync_from_rust_2023_11_17
Sync from rust 2023/11/17
2023-11-19 09:28:06 -05:00
Antoni Boucher
a3b6444909 Fix CI 2023-11-18 13:19:32 -05:00
Antoni Boucher
4d8b25c395 Update patch disabling portable-simd 2023-11-18 10:51:35 -05:00
Antoni Boucher
0e8e60c128 Merge branch 'master' into sync_from_rust_2023_11_17 2023-11-17 17:30:12 -05:00
Mark Rousskov
a6493c1f65 Bump cfg(bootstrap)s 2023-11-15 19:41:28 -05:00
Ralf Jung
b2add8a63e target_feature: make it more clear what that 'Option' means 2023-11-12 12:46:05 +01:00
antoyo
c6bc7ecd65
Merge pull request #377 from rust-lang/feature/comment-section
Feature/comment section
2023-11-08 18:53:15 -05:00
Antoni Boucher
4dbfa4d698 Set the .comment section 2023-11-08 17:24:04 -05:00
antoyo
551ea4b027
Merge pull request #374 from rust-lang/fix/eh-frame
Do not emit .eh_frame section if using -Cpanic=abort
2023-11-08 17:18:37 -05:00