Aaron Hill
8e8828259a
Use macro callsite spans in backtrace
...
This mirrors what we do in the debuginfo used for runtime backtraces.
2020-10-05 17:29:55 -04:00
bors
95f0ad191b
Auto merge of #1573 - RalfJung:rustup, r=RalfJung
...
rustup; disable opt level >=2 tests due to ICE
Cc https://github.com/rust-lang/rust/issues/77564 for the ICE
2020-10-05 08:31:18 +00:00
Ralf Jung
808032a0ed
rustup; disable opt level >=2 tests due to ICE
2020-10-05 10:30:50 +02:00
bors
60c1075820
Auto merge of #1564 - Aaron1011:readlink, r=RalfJung
...
Implement `readlink`
Due to the truncating behavior of `readlink`, I was not able to
directly use any of the existing C-cstring helper functions.
2020-10-04 21:07:55 +00:00
Ralf Jung
3aaab3dd98
more punctuation
2020-10-04 23:07:19 +02:00
Aaron Hill
c1c82c2503
Properly capitalize PathConversion
2020-10-04 16:28:09 -04:00
Aaron Hill
4eea02e725
Normalize MIRI_TEMP before using it
2020-10-04 16:26:09 -04:00
bors
9202f7ddc6
Auto merge of #1572 - RalfJung:rustup, r=RalfJung
...
rustup; test NaN conversion issue
2020-10-04 16:57:56 +00:00
Ralf Jung
02257870a6
rustup; test NaN conversion issue
2020-10-04 18:56:51 +02:00
Aaron Hill
9e6320f101
Move convert_path_separator
to trait and use it in readlink
2020-10-04 12:34:13 -04:00
Aaron Hill
bbba87ce54
Swap order of assertions for easier debugging
2020-10-04 12:06:51 -04:00
Aaron Hill
462f58298a
Make helper functions freestanding
2020-10-04 12:06:51 -04:00
Aaron Hill
5fc5490bc8
Add trailing punctuation
...
Co-authored-by: Ralf Jung <post@ralfj.de>
2020-10-04 12:06:51 -04:00
Aaron Hill
0e59b6f673
Merge fs
and fs_libc
tests
2020-10-04 12:06:51 -04:00
Aaron Hill
8b89c7e1da
Use panicking coversions instead of as
2020-10-04 12:06:51 -04:00
Aaron Hill
186d59a3ec
Move some helper functions around
2020-10-04 12:06:51 -04:00
Aaron Hill
78bc89b4fc
Implement readlink
...
Due to the truncating behavior of `readlink`, I was not able to
directly use any of the existing C-cstring helper functions.
2020-10-04 12:06:51 -04:00
bors
00106b9f1f
Auto merge of #1563 - lzutao:dummy-actions, r=RalfJung
...
Add a dummy actions template to enable it on CI
I already had a complete template to transition from Travis and Appveyor.
Since actions will not run on repo haven't enabled it before.
I have this dummy template first to enable it on default branch.
We should address a few todo here, merge it and I will send another patch
to complete the migration.
2020-10-04 13:14:43 +00:00
Lzu Tao
1c9db02508
Add a dummy actions template to enable it on CI
2020-10-04 18:53:13 +07:00
bors
3fafb835ea
Auto merge of #1570 - RalfJung:syscalls, r=RalfJung
...
check that all syscall arguments are scalars
`@m-ou-se` do you think this check makes sense?
The `abi` of a layout contains everything needed for the calling convention (as far as I know), so this should ensure that all the ignored arguments are passed like integers and do not otherwise mess up argument passing.
The one thing I am not sure about is what happens when more arguments are passed than fit in registers. The `syscall` man page says that all calling conventions support at least 6 arguments, except for "mips/o32" where it says that
```
[1] The mips/o32 system call convention passes arguments 5 through 8 on the user stack.
```
If we assume that passing these extra arguments to futex is legal even with that calling convention, that would mean that those user stack arguments are just silently ignored as well, which seems plausible to me -- but I know very little about calling conventions.
2020-10-03 15:49:15 +00:00
Ralf Jung
2b2a3a0cc1
check that all syscall arguments are scalars
2020-10-03 16:01:53 +02:00
bors
5620ad015d
Auto merge of #1569 - RalfJung:rustup, r=RalfJung
...
bump Rust version and a bit of cleanup
2020-10-03 13:28:37 +00:00
Ralf Jung
a4cbbddc8e
merge parking test into general synchronization test
2020-10-03 15:27:23 +02:00
Ralf Jung
b350c80a31
add backtics back in isolation error message
2020-10-03 15:25:30 +02:00
Ralf Jung
044c9ca206
rustup
2020-10-03 15:19:57 +02:00
bors
b0e02f0218
Auto merge of #1568 - fusion-engineering-forks:futex, r=RalfJung
...
Implement futex_wait and futex_wake.
Fixes https://github.com/rust-lang/rust/issues/77406 and fixes #1562 .
This makes std's park(), park_timeout(), and unpark() work. That means std::sync::Once is usable again and the test pass again with the latest rustc.
This also makes parking_lot work.
2020-10-03 12:36:03 +00:00
Mara Bos
68776d2921
Add FIXME about type of addr
in futex implementation.
...
Co-authored-by: Ralf Jung <post@ralfj.de>
2020-10-03 14:32:30 +02:00
Mara Bos
c268ee2bcb
Add note about use of force_ptr in futex implementation.
...
Co-authored-by: Ralf Jung <post@ralfj.de>
2020-10-03 14:21:37 +02:00
Mara Bos
dfcb46a4e0
Update syscall FIXME to include note about 'wrong' types.
2020-10-03 13:39:16 +02:00
Mara Bos
dc36988f38
Add test for futex syscall.
2020-10-03 13:34:49 +02:00
Mara Bos
9d764c5750
Add FIXME note about variadic syscall().
2020-10-03 12:18:38 +02:00
Mara Bos
6df54c47a7
Use read_scalar_at_offset in futex_wait instead of memory.get_raw.
2020-10-03 12:11:24 +02:00
Mara Bos
5880e7d809
Update expected error messages in tests.
2020-10-03 12:00:29 +02:00
Mara Bos
66282754ff
Remove backtics from isolation error.
...
Otherwise `FUTEX_WAIT with timeout` will look weird.
2020-10-03 11:38:16 +02:00
Mara Bos
924fd56944
Only allow FUTEX_WAIT with timeout when isoloation is disabled.
2020-10-03 11:35:13 +02:00
Mara Bos
c9627b25fb
Use correct return type for syscall(SYS_futex).
2020-10-03 00:40:53 +02:00
Mara Bos
81138825b3
Add park/park_timeout/unpark test.
2020-10-02 23:35:00 +02:00
Mara Bos
e64ead2f46
Implement timeouts for FUTEX_WAIT.
2020-10-02 23:34:14 +02:00
Mara Bos
d5b3f54b46
Use force_ptr in futex implementation.
2020-10-02 21:59:11 +02:00
Mara Bos
422b5053a9
Add note about arguments in futex implementation.
...
Co-authored-by: Ralf Jung <post@ralfj.de>
2020-10-02 20:56:01 +02:00
Mara Bos
dabd980567
Update note about number of arguments to SYS_futex.
2020-10-02 20:53:31 +02:00
Mara Bos
ee3eb4b223
Add comments that document SYS_futex better.
2020-10-02 10:47:53 +02:00
Mara Bos
712e8006b3
Improve handling of the addr
argument in SYS_futex.
2020-10-02 10:47:36 +02:00
Mara Bos
c2fa27c3b8
Check maximum amount of arguments to SYS_futex.
2020-10-02 10:46:57 +02:00
Mara Bos
1c582e7c96
Return correct value from futex_wait.
2020-10-02 01:49:20 +02:00
Mara Bos
69cea1dc92
Only check futex pointer in futex_wait and not in futex_wake.
...
futex_wake doesn't access the futex itself, so should accept pointers to
memory that's no longer there.
2020-10-01 22:57:27 +02:00
Mara Bos
6c2f36eb6b
Erase tag from futex pointers.
2020-10-01 21:06:16 +02:00
Mara Bos
281a538226
Move futex syscall to its own file.
2020-10-01 21:03:36 +02:00
Mara Bos
1ffc5bb563
Implement futex_wait and futex_wake.
...
This does not support futex_wait with a timeout yet.
2020-10-01 20:55:54 +02:00
bors
266b75faec
Auto merge of #1566 - RalfJung:backtrace, r=RalfJung
...
normalize backtrace stderr even more
The test previously failed on rustc CI with this diff:
```
$DIR/backtrace-api.rs:21:59 (func_c)
$DIR/backtrace-api.rs:20:53 (func_b)
$DIR/backtrace-api.rs:19:50 (func_a)
$DIR/backtrace-api.rs:25:18 (main)
-RUSTLIB/src/rust/library/core/src/ops/function.rs:LL:COL (<fn() as std::ops::FnOnce<()>>::call_once - shim(fn()))
-RUSTLIB/src/rust/library/std/src/sys_common/backtrace.rs:LL:COL (std::sys_common::backtrace::__rust_begin_short_backtrace)
-RUSTLIB/src/rust/library/std/src/rt.rs:LL:COL (std::rt::lang_start::{closure#0})
-RUSTLIB/src/rust/library/core/src/ops/function.rs:LL:COL (std::ops::function::impls::call_once)
-RUSTLIB/src/rust/library/std/src/panicking.rs:LL:COL (std::panicking::r#try::do_call)
-RUSTLIB/src/rust/library/std/src/panicking.rs:LL:COL (std::panicking::r#try)
-RUSTLIB/src/rust/library/std/src/panic.rs:LL:COL (std::panic::catch_unwind)
-RUSTLIB/src/rust/library/std/src/rt.rs:LL:COL (std::rt::lang_start_internal)
-RUSTLIB/src/rust/library/std/src/rt.rs:LL:COL (std::rt::lang_start)
+/checkout/library/core/src/ops/function.rs:227:5 (<fn() as std::ops::FnOnce<()>>::call_once - shim(fn()))
+/checkout/library/std/src/sys_common/backtrace.rs:137:18 (std::sys_common::backtrace::__rust_begin_short_backtrace)
+/checkout/library/std/src/rt.rs:66:18 (std::rt::lang_start::{closure#0})
+/checkout/library/core/src/ops/function.rs:259:13 (std::ops::function::impls::call_once)
+/checkout/library/std/src/panicking.rs:381:40 (std::panicking::r#try::do_call)
+/checkout/library/std/src/panicking.rs:345:19 (std::panicking::r#try)
+/checkout/library/std/src/panic.rs:382:14 (std::panic::catch_unwind)
+/checkout/library/std/src/rt.rs:51:25 (std::rt::lang_start_internal)
+/checkout/library/std/src/rt.rs:65:5 (std::rt::lang_start)
```
Cc `@Aaron1011`
2020-09-30 08:03:14 +00:00