Ralf Jung
962e2105df
remove an unnecessary as_str
2020-03-25 09:32:15 +01:00
Ralf Jung
47b91e619a
test unreachable intrinsic
2020-03-25 09:32:15 +01:00
Ralf Jung
9b0e9dec49
rustup, adjust for renames
2020-03-25 09:05:30 +01:00
Ralf Jung
e9e04e56fc
move path methods together, to the bottom of the string helpers
2020-03-24 09:11:48 +01:00
Ralf Jung
c4e29c8646
convert dir separators on path load/store
2020-03-24 09:11:48 +01:00
Ralf Jung
4ac91384ff
route all path reading/writing through central read/write methods
2020-03-24 09:11:47 +01:00
bors
ad7089f194
Auto merge of #1258 - RalfJung:rustup, r=RalfJung
...
Rustup
2020-03-24 07:29:25 +00:00
Ralf Jung
87f5495715
32bit macOS is no more
2020-03-24 08:25:37 +01:00
Ralf Jung
80088e131b
rustup for trait MachineStopType
2020-03-24 08:24:36 +01:00
JOE1994
5f9167bdaa
helper functions for env_var emulation in Windows
2020-03-23 19:40:22 -04:00
Ralf Jung
284067cc15
rustup
2020-03-23 23:48:24 +01:00
Ralf Jung
2f371774ef
fix conditional compilation condition for os_str <-> bytes conversion
2020-03-23 19:43:03 +01:00
Ralf Jung
b4b8750e44
bump Rust; HashMap should now work on macOS even with isolation
2020-03-23 10:34:15 +01:00
Ralf Jung
6e302b830a
link to some websites for UB explanations
2020-03-22 23:32:19 +01:00
Ralf Jung
dd4fef0cd9
fix outdated sysroot help message
2020-03-22 20:09:14 +01:00
Ralf Jung
6dcca62b63
move -Zmiri-disable-isolation hint to help
2020-03-22 19:48:59 +01:00
Ralf Jung
a1b823886c
give some context in error messages
2020-03-22 18:59:06 +01:00
Ralf Jung
d85f09c4e4
platform -> target
2020-03-22 08:55:39 +01:00
Ralf Jung
238ed49a07
detect UB: overflow in copy/write_bytes
2020-03-21 17:54:33 +01:00
Ralf Jung
6355228d4e
remove no longer needed (and sometimes broken) 'extern crate'
2020-03-21 13:13:08 +01:00
bors
b2605d809d
Auto merge of #1241 - RalfJung:dont-panic, r=RalfJung
...
whitelist platforms where panicking should work
@CAD97 [proposed](https://github.com/rust-lang/miri/issues/1059#issuecomment-601217992 ) trying to get a better error for failed panics on Windows.
Could you test if this works for you?
2020-03-21 09:55:23 +00:00
Ralf Jung
bde3111c61
test windows panic message
2020-03-21 10:17:57 +01:00
Ralf Jung
f430e54456
implement mach_absolute_time for macOS
2020-03-20 16:15:37 +01:00
Ralf Jung
04c937e281
assert platform in time shims
2020-03-20 15:11:54 +01:00
Ralf Jung
4608b94bd8
implement CLOCK_MONOTONIC on Linux
2020-03-19 23:01:24 +01:00
Ralf Jung
0f1713f67c
whitelist platforms where panicking should work
2020-03-19 15:54:09 +01:00
Ralf Jung
681819c8ad
getting a path should never fail
...
we basically treat them as lang items
2020-03-19 08:26:08 +01:00
Ralf Jung
e6e8773272
start messages in lower-case
2020-03-19 08:25:08 +01:00
Ralf Jung
1103a10e2c
adjust for error reform
2020-03-19 08:25:08 +01:00
bors
6b56aefa0b
Auto merge of #1239 - elichai:2020-03-abort-intrinsics, r=RalfJung
...
Abort instead of panic on asserting intrinsics
This fixes #1222
replacing the panic with an abort and a corresponding message.
the stack trace is already printed, this just adds an optional message the caller can pass, and I just pass the same message we passed to the panic but now to the abort instead.
r? @RalfJung
2020-03-18 12:20:30 +00:00
Elichai Turkel
52e1372e03
Abort instead of panic in asserting intrinsics, because they might not be panic safe
2020-03-18 14:14:23 +02:00
Elichai Turkel
1b8979c8c7
Add an optional message to abort
2020-03-18 14:14:23 +02:00
Ralf Jung
b82cf36117
rustup; remove no longer existing intrinsics
2020-03-17 21:11:19 +01:00
Ralf Jung
8b6af3eacb
avoid using unchecked casts or arithmetic
2020-03-17 15:21:43 +01:00
Youngsuk Kim
a664156440
Minor typo fix
...
"initializiation" => "initialization"
2020-03-15 18:06:21 -04:00
Ralf Jung
17a677f4a9
abort intrinsic is handled by librustc_mir now
2020-03-15 11:17:07 +01:00
Ralf Jung
1c4f27f1b2
adjust Miri to needs of changed unwinding strategy
2020-03-15 10:59:07 +01:00
Ralf Jung
a92b2274ce
fix typo and deduplicate comment
2020-03-14 12:05:25 +01:00
Ralf Jung
497fbcbf44
rustup, fix for intrinsic rename and transmute error change
2020-03-14 09:27:35 +01:00
Ralf Jung
13ae3147f0
refactor handling of diverging intrinsics/foreign functions
2020-03-12 21:20:16 +01:00
Ralf Jung
5531a79f4c
rustup, test Abort terminator
2020-03-12 20:48:04 +01:00
bors
0f22d8a208
Auto merge of #1213 - lcnr:master, r=RalfJung
...
rm custom `intrinsics::discriminant_value`
@RalfJung requires https://github.com/rust-lang/rust/pull/69825
2020-03-12 16:50:12 +00:00
Ralf Jung
76ee8ff458
use ctfe_backtracte variable for backtrace control
2020-03-11 20:39:18 +01:00
Ralf Jung
45d5a37787
rustup+fix
2020-03-11 20:39:18 +01:00
Ralf Jung
548c90e102
share some code between panic intrinsics, and fix the message
2020-03-11 19:53:07 +01:00
Elichai Turkel
e81ebffa59
Implement panic_if_any_invalid and panic_if_zero_invalid intrinsics
2020-03-11 16:00:08 +02:00
Ralf Jung
8394456247
properly panic in panic_if_uninhabited and align_offset shims
2020-03-08 20:00:40 +01:00
Christian Poveda
5dc60d974b
move environ place to EnvVars
2020-03-08 11:58:20 -05:00
Ralf Jung
87dbf10e84
move environ init to update_environ
2020-03-08 17:21:02 +01:00
Christian Poveda
8392a0c589
only expose environ on linux
2020-03-08 10:16:31 -05:00
Bastian Kauschke
6fd3c9174c
rm custom intrinsics::discriminant_value
2020-03-08 14:31:57 +01:00
Christian Poveda
18a71ef7b3
minor corrections
2020-03-07 11:35:00 -05:00
Christian Poveda
e31b8b3342
add _NSGetEnviron
foreign function for macos
2020-03-07 10:06:20 -05:00
Christian Poveda
aedc34c6e5
deallocate old environ
2020-03-06 18:11:05 -05:00
Ralf Jung
7882dfb3f5
fix env update, and expand test
2020-03-06 08:21:53 -05:00
Christian Poveda
4f5fdc5810
update the environ shim when environment changes
2020-03-06 08:21:52 -05:00
Christian Poveda
d13fe01f82
add working shim for environ
2020-03-06 08:19:56 -05:00
Ralf Jung
ade4c4e733
make the new option actually do something
2020-03-06 09:11:41 +01:00
Ralf Jung
d82d701360
add option to track a particular AllocId (does nothing yet)
2020-03-06 09:06:23 +01:00
Ralf Jung
148269dd4b
finally stop using min/max_value and the integer modules
2020-03-04 13:01:06 +01:00
bors
4f437099d8
Auto merge of #1202 - RalfJung:symbols, r=RalfJung
...
switch extern_statics map to symbols, and use FxHashMap everywhere
Cc @eddyb
2020-03-02 21:37:08 +00:00
Ralf Jung
92a28f8d8f
HashMap -> FxHashMap
2020-03-02 22:36:15 +01:00
Ralf Jung
0e021ad76c
switch extern_statics map to symbols
2020-03-02 22:30:20 +01:00
Ralf Jung
68f70195fa
rename xargo -> xargo_check
2020-03-02 22:10:48 +01:00
Aaron Hill
5960e8b80e
Rename XARGO env var to XARGO_CHECK
...
This reflects the fact that we want bootstrap to override `xargo-check`,
not `xargo
2020-03-02 14:17:14 -05:00
Ralf Jung
88c45f9891
adjust for rustc changes
2020-03-02 13:51:08 +01:00
Ralf Jung
59bddba5f3
remove unused import
2020-03-02 09:05:55 +01:00
Ralf Jung
90327335fc
canonicalize alloc ID for ptr-to-int cast
2020-03-02 09:03:08 +01:00
Ralf Jung
8ef303cd32
port from find_foreign_static to canonical_alloc_id
2020-03-02 09:03:08 +01:00
Ralf Jung
5d8fbfcb5f
rename memory kind: Env -> Machine
2020-03-02 09:01:23 +01:00
Ralf Jung
48a4e3f4d8
format a few things
2020-03-01 11:54:19 +01:00
Ralf Jung
af98bd9a53
fix trailing indent in xargo files
2020-03-01 11:53:34 +01:00
Ralf Jung
cc1ebd0af6
some formatting
2020-03-01 10:29:05 +01:00
Ralf Jung
ea5aa19487
rustup
2020-03-01 10:22:13 +01:00
Ralf Jung
2b04e3954a
Remove incorrect try_lock from Windows critical section shim
2020-02-29 20:47:57 +01:00
Ralf Jung
5187e5ddd6
avoid Scalar::to_bits
2020-02-28 10:00:20 +01:00
bors
c0934e1eca
Auto merge of #1152 - divergentdave:shim-directory, r=RalfJung
...
Add directory-related shims
This PR adds support for `mkdir`, `rmdir`, `opendir`, `closedir`, and `readdir64_r`.
Open directory streams are tracked through a HashMap indexed by pointer locations, which holds directory iterators. Since `DIR` is an opaque type in glibc, I represent them with 1-byte allocations, and then just use their pointers in HashMap lookups.
Tests are included to exercise the new functionality.
2020-02-26 14:15:55 +00:00
Ralf Jung
62f9f4c578
fix Windows build failure
2020-02-26 15:15:16 +01:00
David Cook
df59d7ff74
Review comments
2020-02-26 07:59:11 -06:00
Ralf Jung
7e128beff9
fix build failures
2020-02-26 13:50:33 +01:00
David Cook
ad8c784009
Return length from write_os_str_to_c_str
2020-02-24 19:50:25 -06:00
David Cook
9e03b41338
Migrate readdir_r from pointers to places
2020-02-24 19:38:17 -06:00
David Cook
9fcc8a2a91
Review comments
2020-02-24 19:16:41 -06:00
Ralf Jung
25ddc659d0
move validate field from memory to machine
2020-02-24 16:25:29 +01:00
Ralf Jung
274ae0438f
add an option to disable Stacked Borrows
2020-02-24 16:22:02 +01:00
Ralf Jung
443163f930
refactor cargo-miri a bit
2020-02-24 14:41:04 +01:00
Aaron Hill
e530829797
Use 'cargo check' to build the sysroot and target crate
...
Fixes #1057
Since we are no longer using "cargo rustc", we now use the rustc
arguments passed by Cargo to determine whether we are building a
build dependency, normal dependency, or "target" (final binary or test)
crate.
2020-02-24 14:41:04 +01:00
David Cook
dd00e5830f
Use ID numbers in lieu of allocations for DIR*
2020-02-23 15:46:18 -06:00
David Cook
89cbe0ae56
Add comments
2020-02-23 15:45:04 -06:00
David Cook
725d6bfa9c
Move error up, early return
2020-02-23 15:39:50 -06:00
David Cook
d6da4ab4b8
Add comments
2020-02-23 15:38:32 -06:00
David Cook
94f611348f
Use os_str_length_as_c_str in readdir[64]_r
2020-02-23 15:37:22 -06:00
David Cook
947fa1fa26
Miscellaneous review comments
2020-02-23 15:36:03 -06:00
David Cook
d4b73efa81
Fix interpreted OS detection
2020-02-23 15:33:37 -06:00
David Cook
9a6921a17f
Add doc comment inside DirHandler
2020-02-23 15:32:24 -06:00
David Cook
515d29aa2c
Fix dirent layout for macOS
2020-02-23 15:31:07 -06:00
David Cook
ba61a9b37c
Add shims for macOS-specific symbols
2020-02-23 15:26:42 -06:00
David Cook
974362ef64
Handle differing sizes of mode_t
...
mode_t is a u32 on Linux and a u16 on macOS
2020-02-23 15:08:44 -06:00
David Cook
5d35339111
Add shim for readdir64_r
2020-02-23 15:08:44 -06:00
David Cook
d7c3f588eb
Add shims for opendir and closedir
2020-02-23 15:02:49 -06:00
David Cook
5b34f06bae
Add shims for mkdir and rmdir
2020-02-23 15:02:49 -06:00
Ralf Jung
4a9a0a9078
avoid lowercasing platforms
2020-02-23 18:54:08 +01:00
Ralf Jung
e575fb1f57
improve comments
2020-02-23 18:52:12 +01:00
Ralf Jung
beb82ea4a4
add private helper trait for fs shim
2020-02-23 18:52:12 +01:00
Ralf Jung
5d35548985
helpers.rs cleanup
2020-02-23 18:52:12 +01:00
bors
2752d1b74b
Auto merge of #1167 - christianpoveda:shims-refactor, r=RalfJung
...
Reorganize shims by platform
Fixes https://github.com/rust-lang/miri/issues/1161 . I am currently testing which shims belong to which platform. If you are reading this and know the answer for any of those please write me :P
Edit: this is a list of the shims I haven't been able to figure out to which platform they belong:
-~~`malloc`~~
-~~`calloc`~~
-~~`posix_memalign`~~
-~~`free`~~
-~~`realloc`~~
-~~`__rust_alloc`~~
-~~`__rust_alloc_zeroed`~~
-~~`__rust_dealloc`~~
-~~`__rust_realloc`~~
-~~`__rust_maybe_catch_panic`~~
-~~`syscall`~~
-~~`getrandom`~~
-~~`dlsym`~~
-~~`memcmp`~~
-~~`memrchr`~~
-~~`memchr`~~
-~~`strlen`~~
-~~`signal`~~
-~~`sigaction`~~
-~~`sigaltstack`~~
-~~`sysconf`~~
-~~`sched_getaffinity`~~
-~~`isatty`~~
-~~`pthread_key_create`~~
-~~`pthread_key_delete`~~
-~~`pthread_getspecific`~~
-~~`pthread_setspecific`~~
-~~`pthread_attr_init`~~
-~~`pthread_attr_destroy`~~
-~~`pthread_self`~~
-~~`pthread_attr_setstacksize`~~
-~~`pthread_attr_getstack`~~
-~~`pthread_create`~~
-~~`pthread_mutexattr_init`~~
-~~`pthread_mutexattr_settype`~~
-~~`pthread_mutex_init`~~
-~~`pthread_mutexattr_destroy`~~
-~~`pthread_mutex_lock`~~
-~~`pthread_mutex_unlock`~~
-~~`pthread_mutex_destroy`~~
-~~`pthread_rwlock_rdlock`~~
-~~`pthread_rwlock_unlock`~~
-~~`pthread_rwlock_wrlock`~~
-~~`pthread_rwlock_destroy`~~
-~~`pthread_condattr_init`~~
-~~`pthread_condattr_setclock`~~
-~~`pthread_cond_init`~~
-~~`pthread_condattr_destroy`~~
-~~`pthread_cond_destroy`~~
-~~`pthread_atfork`~~
-~~`posix_fadvise`~~
-~~`mmap`~~
-~~`mprotect`~~
2020-02-23 17:03:30 +00:00
Christian Poveda
208665836e
panic if target platform is incorrect instead
2020-02-22 09:02:29 -05:00
Christian Poveda
c2bcab55b0
improve docs
2020-02-22 08:55:45 -05:00
Christian Poveda
9e9a090026
minor fixes
2020-02-22 02:18:42 -05:00
Ralf Jung
08332bc730
dont overwrite bootstrap flags
2020-02-21 20:06:31 +01:00
Christian Poveda
bb3a711b3e
rename platform specific shims
2020-02-19 17:53:33 -05:00
Christian Poveda
3418b40dac
remove syscall shim from macos and move getrandom to linux module
2020-02-19 17:48:16 -05:00
Christian Poveda
b213f88b58
promote memrchr to work on any platform
2020-02-19 17:48:15 -05:00
Christian Poveda
9a7bc3972c
promote open and lseek shims to posix
2020-02-19 17:48:15 -05:00
Christian Poveda
dbef2340b2
add docs for `emulate_foreign_item_by_bame
2020-02-19 17:48:15 -05:00
Christian Poveda
32bc015e35
reorganize comments for shim's classification
2020-02-19 17:48:15 -05:00
Christian Poveda
bc7513bffd
move CreateThread to windows shims
2020-02-19 17:48:15 -05:00
Christian Poveda
1dbc0c9869
remove hack for panics
2020-02-19 17:48:15 -05:00
Christian Poveda
b819493585
move remaining shims
2020-02-19 17:48:15 -05:00
Christian Poveda
63160c66cd
move pthread related functions
2020-02-19 17:48:15 -05:00
Christian Poveda
8fe7543191
add helper function for target platform checks
2020-02-19 17:47:34 -05:00
David Cook
ae7d98b68f
Extract constant for minimum fd
2020-02-18 18:06:33 -06:00
David Cook
8216f3c0f3
Back out placeholder variants from FileHandle
2020-02-17 22:24:33 -06:00
David Cook
a6a8f09f1e
Address review comments
2020-02-17 22:24:33 -06:00
David Cook
962a740426
Rewrite file descriptor handling
2020-02-17 22:24:33 -06:00
David Cook
eda35e153b
Add methods to FileHandler
2020-02-17 22:24:33 -06:00
David Cook
1de9d107cf
Style fixes
2020-02-17 22:24:33 -06:00
David Cook
3aff803868
Add comment
2020-02-17 22:24:33 -06:00
David Cook
085874d1ff
Add F_DUPFD/F_DUPFD_CLOEXEC to fcntl shim
2020-02-17 22:24:33 -06:00
bors
daaf9f7e28
Auto merge of #1177 - RalfJung:debug-assert, r=RalfJung
...
Make sure we evaluate debug assertions in local crate and libstd
Fixes https://github.com/rust-lang/miri/issues/1126
2020-02-16 13:04:06 +00:00
Ralf Jung
6ff5b3fcf9
make sure we also trigger debug assertions in libstd
2020-02-16 13:55:51 +01:00
Christian Poveda
c233c4ad9c
migrate more functions
2020-02-14 16:37:30 -05:00
Christian Poveda
f2f8fb2c20
migrate more functions
2020-02-14 16:37:30 -05:00
Christian Poveda
e7d6e718b9
reorganize shims by platform
2020-02-14 16:37:29 -05:00
bors
0a803c9752
Auto merge of #1158 - divergentdave:shim-rename, r=RalfJung
...
Add shim for rename
This adds a straightforward shim for rename, which is used by `std::fs::rename`. Testing is included.
As a heads up, I expect one or two merge conflicts between my PRs, since some of them touch the same `use` statements, or add items near the same places. I'll rebase and fix them as they come up.
2020-02-14 20:26:23 +00:00
Ralf Jung
26d25220ef
fix for Panic InterpError refactoring
2020-02-13 14:01:35 +01:00
David Cook
38204b6321
Add shim for rename
2020-02-08 22:33:49 -06:00
bors
f9615bfd67
Auto merge of #1159 - divergentdave:shim-seek, r=RalfJung
...
Add shim for seeking files
This adds a shim for `lseek64` (`lseek` on macOS). This enables the use of `<File as Seek>::seek`. Testing is included.
2020-02-08 13:54:33 +00:00
Ralf Jung
4b6a0d7a8e
bump rustc; adjust tests
2020-02-06 11:20:28 +01:00
bors
e7f5c4f155
Auto merge of #1151 - divergentdave:statx-AT_EMPTY_PATH, r=RalfJung
...
Add support for AT_EMPTY_PATH to statx shim
This enables use of `File::metadata()`.
2020-01-30 21:30:32 +00:00
Ralf Jung
ef154df607
pass MPlaceTy by-value, as we usually do
2020-01-30 13:38:49 +01:00
David Cook
2f25e4cd17
Error with EINVAL on unsupported whence
argument
2020-01-29 19:04:18 -06:00
David Cook
6e9abea272
Update comment
2020-01-28 22:59:28 -06:00
David Cook
d8da3968d6
Change function name, comments, and error message
2020-01-28 19:43:55 -06:00
David Cook
0d0902a1e1
Apply shim to lseek too (for macOS)
2020-01-26 18:07:31 -06:00
David Cook
01b5e8260e
Add no-op shim for posix_fadvise
2020-01-26 15:10:01 -06:00
David Cook
03b5d95cff
Add shim for lseek64
2020-01-26 12:36:36 -06:00
David Cook
90f3aae2de
Add fstat shim for OSX
2020-01-26 11:58:08 -06:00
David Cook
d94b88ef98
Add support for AT_EMPTY_PATH to statx shim
2020-01-25 22:21:33 -06:00
David Cook
625fa742bc
Shim intrinsics::atomic_singlethreadfence, etc.
2020-01-24 19:02:58 -06:00