Commit Graph

501 Commits

Author SHA1 Message Date
Jorge Aparicio
2446cc468f drop binfmt_misc dependency
Instead use the Cargo runner feature. The binfmt_misc approach requires running a privileged
container for setup. Not all docker setups support privileged containers so the test suite should be
more accessible with this change as no privileged container is needed.
2017-10-07 22:19:37 +02:00
bors
5b96befbc5 Auto merge of #115 - Amanieu:linux-arm-atomic, r=alexcrichton
Add atomic support for pre-ARMv6 on Linux

This uses the [kernel user helpers](https://www.kernel.org/doc/Documentation/arm/kernel_user_helpers.txt) which are available starting from kernel 2.6.15. Since Rust currently requires 2.6.18 at a minimum, this should be fine in practice. I did not include support for 64-bit atomics since that functionality is only available in kernel 3.1.

This PR allows Rust to work on older ARM versions such as ARMv4 and ARMv5 with the full libstd.
2017-10-06 23:08:42 +00:00
Amanieu d'Antras
73e38dcf2f Add atomic support for pre-ARMv6 on Linux 2017-10-05 12:44:12 +01:00
Alex Crichton
fe8d893a6b Update target specs 2017-10-03 02:28:49 -07:00
Alex Crichton
0b9844764e Merge pull request #198 from est31/master
Partial revert of the float conversion refactor in #192
2017-09-29 01:54:05 -05:00
est31
c781759498 Partially revert a272d753f5
This partially reverts commit "Convert float_to_int! into a function"
2017-09-29 02:20:27 +02:00
est31
a20840262e Partially revert 482d98318f
This partially reverts "Convert int_to_float! to a function".
2017-09-29 02:19:40 +02:00
Alex Crichton
789e8c159f Merge pull request #196 from alexcrichton/cc
Update to the `cc` dependency
2017-09-27 17:38:06 -05:00
Alex Crichton
006f173f85 Ignore failing test on mips 2017-09-22 21:31:27 -07:00
Alex Crichton
6cf8fe7932 Update to the cc dependency 2017-09-22 21:30:12 -07:00
bors
67e0908d7f Auto merge of #195 - alexcrichton:32-darwin-empty, r=alexcrichton
Disable empty intrinsics on i686-apple-darwin

These all currently just produce empty object files
2017-09-17 22:25:49 +00:00
Alex Crichton
1be538be1e Disable empty intrinsics on i686-apple-darwin
These all currently just produce empty object files
2017-09-17 15:25:34 -07:00
bors
4d9df62fb7 Auto merge of #194 - mattico:i386, r=alexcrichton
Implement x86 chkstk in "rust"

cc #183

Basically the same as the x86_64 ones, except `__alloca` doesn't need to fix the parameter register. I've manually verified that the disassembly is the same, and that these work in a compiled rust program.

The second commit disables compiling probestack functions for `feature = mangled-names`. They aren't needed during testing because they aren't comparison tested and the unmangled versions are the ones that actually get used.

r? @alexcrichton
2017-09-16 02:58:04 +00:00
Matt Ickstadt
a40cc6a12d Don't compile probestack functions during testing 2017-09-15 18:13:06 -05:00
Matt Ickstadt
b3679bcfba Implement x86 chkstk in "rust" 2017-09-15 18:04:59 -05:00
bors
a767bab639 Auto merge of #193 - alexcrichton:update, r=alexcrichton
Update MinGW download location
2017-09-15 22:59:44 +00:00
Alex Crichton
f06f7c7bd6 Update MinGW download location 2017-09-15 15:59:15 -07:00
bors
35dec6bd8a Auto merge of #192 - est31:master, r=alexcrichton
Refactor float implementation

Refactors the float implementation. Fixes #169. Parts of the PR were inspired a previous PR by @mattico .
2017-09-14 17:27:43 +00:00
est31
0cd476220b Remove duplication by adding a macro 2017-09-14 17:39:25 +02:00
est31
3efae7f7d9 Convert add! to a function 2017-09-14 17:33:44 +02:00
est31
482d98318f Convert int_to_float! to a function 2017-09-14 16:32:50 +02:00
est31
ff63f7b80f Convert float_to_int! into a function 2017-09-14 14:59:32 +02:00
bors
ef4951582f Auto merge of #189 - tamird:update-comment-rustbuild, r=alexcrichton
Update rustbuild commentary

r? @nikomatsakis

This is the reason that https://github.com/rust-lang/rust/pull/44509 doesn't work - the `rustbuild` feature _is_ actually used, it was just incorrectly documented here and I missed it.
2017-09-14 00:46:30 +00:00
est31
a272d753f5 Don't use the Wrapping wrapper in float addition
Inspired by a patch by mattico.
2017-09-14 02:08:28 +02:00
est31
72ed4c8bce Don't use a macro for pow calculation 2017-09-14 01:59:02 +02:00
est31
8313cec597 Extend the Float trait by some constants and supertraits 2017-09-14 01:57:52 +02:00
bors
915293c528 Auto merge of #191 - est31:master, r=alexcrichton
Small refactor to use associated consts

Yeey less chars.

r? @alexcrichton
2017-09-13 23:12:44 +00:00
est31
2c1d7dccc1 Use the newly added ONE constant in float addition 2017-09-14 00:10:16 +02:00
est31
46cfa05650 Introduce a float_impl! macro to avoid duplication 2017-09-13 22:44:56 +02:00
est31
9bdedec38e Refactor float builtins to use associated consts 2017-09-13 22:09:52 +02:00
est31
c9a261895e Refactor int builtins to use associated consts 2017-09-13 22:09:31 +02:00
Tamir Duberstein
a32e76eaea
Update rustbuild commentary
Also use `cfg!(feature = "rustbuild")` instead of the environment
variable to ease grep-ability.
2017-09-12 20:54:32 -04:00
bors
23f14d3f05 Auto merge of #188 - tamird:remove-unused-rustbuild, r=alexcrichton
Remove unused rustbuild feature

I can't tell if this was ever used, but it's not used today.
2017-09-10 15:35:24 +00:00
Tamir Duberstein
9d536cf96a
Remove unused rustbuild feature
I can't tell if this was ever used, but it's not used today.
2017-09-10 09:30:47 -04:00
bors
38ffaf97aa Auto merge of #187 - est31:master, r=alexcrichton
Update the gcc crate to 0.3.53 and disable compilation warnings

The update is needed because you'd otherwise get a deprecation warning about `Config` being deprecated, as rust-lang/rust has updated the gcc crate.

The compilation warnings are inside the compiler-rt submodule, about which we don't have
direct control over, so we disable them.
2017-09-07 05:51:19 +00:00
est31
02ea9e5f54 Update the gcc crate to 0.3.53 and disable compilation warnings
They are inside the compiler-rt submodule, about which we don't have
direct control over.
2017-09-07 07:49:34 +02:00
bors
94c4c1c534 Auto merge of #184 - DirkyJerky:patch-1, r=alexcrichton
Fix README relative link.
2017-08-22 05:03:25 +00:00
Geoff Yoerger
fe6197e2f2 Fix README relative link. 2017-08-21 16:17:04 -05:00
bors
6b9281d2b2 Auto merge of #181 - TimNN:no-memcpy, r=alexcrichton
Avoid memcpy references in unoptimized code

Fixes rust-lang/rust#43411.
2017-07-23 05:10:08 +00:00
Tim Neumann
c138713df1 Avoid memcpy references in unoptimized code 2017-07-22 23:10:30 +02:00
bors
f6c4034d59 Auto merge of #179 - ollie27:chkstk, r=alexcrichton
Don't include custom chkstk on MSVC

MSVC includes its own __chkstk so these aren't used.

These aren't included in compiler-rt: cb42103777/lib/builtins/CMakeLists.txt (L224-L284).
They also weren't included in compiler-builtins: 1685c92986/src/libcompiler_builtins/build.rs (L255-L293) until rust-lang/rust#42899.
2017-07-12 22:28:43 +00:00
Oliver Middleton
064452423a Don't include custom chkstk on MSVC
MSVC includes its own __chkstk so these aren't used.
2017-07-12 22:40:49 +01:00
bors
5e49856003 Auto merge of #176 - alexcrichton:probestack2, r=alexcrichton
Tweak definition of probestack functions

It looks like the old `__rust_probestack` routine is incompatible with newer
linux kernels. My best guess for this is that the kernel's auto-growth logic is
failing to trigger, causing what looks like a legitimate segfault to get
delivered. My best guess for why *that's* happening is that the faulting address
is below `%rsp`, whereas previously all faulting stack addresses were above
`%rsp`. The probestack routine does not modify `%rsp` as it's probing the stack,
and presumably newer kernels are interpreting this as a legitimate violation.

This commit tweaks the probestack routine to instead update `%rsp` incrementally
as probing happens. The ABI of the function, however, requires that `%rsp`
isn't changed as part of the function so it's restored at the end to the
previous value.
2017-07-08 03:36:04 +00:00
Alex Crichton
91eaa85902 Don't mangle probes all the time 2017-07-07 20:35:14 -07:00
Alex Crichton
f9f6bd0589 Tweak definition of probestack functions
It looks like the old `__rust_probestack` routine is incompatible with newer
linux kernels. My best guess for this is that the kernel's auto-growth logic is
failing to trigger, causing what looks like a legitimate segfault to get
delivered. My best guess for why *that's* happening is that the faulting address
is below `%rsp`, whereas previously all faulting stack addresses were above
`%rsp`. The probestack routine does not modify `%rsp` as it's probing the stack,
and presumably newer kernels are interpreting this as a legitimate violation.

This commit tweaks the probestack routine to instead update `%rsp` incrementally
as probing happens. The ABI of the function, however, requires that `%rsp`
isn't changed as part of the function so it's restored at the end to the
previous value.
2017-07-07 10:16:03 -07:00
bors
e9b258bc0c Auto merge of #175 - alexcrichton:probestack, r=alexcrichton
Add `__rust_probestack` intrinsic

Will be required for rust-lang/rust#42816
2017-07-06 13:59:05 +00:00
Alex Crichton
7ccf8408d0 Add __rust_probestack intrinsic
Will be required for rust-lang/rust#42816
2017-07-06 06:58:32 -07:00
Alex Crichton
238647af80 Fix unused imports on iOS 2017-07-03 19:11:34 -07:00
Alex Crichton
a1700f9da9 Fix a typo in the build script 2017-07-03 15:28:03 -07:00
Alex Crichton
070990f10a Compile ffsdi2 with rustbuild feature
This is not used by LLVM/Rust, but is apparently used by gcc/C which jemalloc
can require at least.
2017-07-03 15:00:51 -07:00