Comments (8)
Not a volunteer, but as someone who had a good share of "fighting with bors", I wish anyone who mounts an attempt the best of luck.
from compiler-builtins.
@est31 Hey, don't scare away the volunteers!
from compiler-builtins.
Note, now that rust-lang/rust#38482 is merged, i128 support is required as well.
Just using the C implementation is not enough as the C implementation only is enabled and works on non windows 64 bit platforms (that was the reason the PR had to implement the intrinsics in Rust in the first place).
See #133 that attempts to add support.
Also note that during the making of that PR I not just had linker issues with calls to panic, it also complained about calls to eh_personality, which in some cases survives while panic does not.
from compiler-builtins.
Added i128 support to the list. After #133 lands, we would still need the famility of floatundif intrinsics, I believe.
Also added changing the ABI of (some?) intrinsics from C to aapcs on ARM. cc #116
compile functions with hidden visibility
And I believe this issue was fixed in rust-lang/rust proper? cc @alexcrichton
from compiler-builtins.
With #133 merged, the following float functions are required to be ported:
__fixsfti
__fixdfti
__fixunsdfti
__fixunssfti
__floattidf
__floattisf
__floatuntidf
__floatuntisf
They all need extern "unadjusted"
instead of extern "C"
on windows.
from compiler-builtins.
I think that powisf2 and powidf2 may need to be changed to AAPCS too. Honestly, I'm no longer sure what's the state of those intrinsics on LLVM 3.9 vs 4.0.
from compiler-builtins.
OK. I believe that all the required intrinsics to land this in rust-lang/rust have been implemented. All that's left is: (a) check that the compiler-rt submodule in this repo matches the revision being used in rust-lang/rust and then (b) fight with bors and land this in rust-lang/rust.
Any volunteers? Here's what needs to be done for (b):
- Remove the
src/libcompiler_builtins
directory in rust-lang/rust - Replace it with a git submodule that points to this repo
- Create a libcompiler_builtins_shim Cargo project that builds this repo with the right Cargo features (the "rustbuild" feature). The std crate will depend on that shim. (I lost track of the comment that explained why the shim was necessary. Sorry)
- Likely update the part of the boostrap tool that cares of building the sanitizers' runtimes to use the new location of the compiler-rt code. (src/compiler-rt -> src/libcompiler_builtins/compiler-rt)
All in one PR. You should test locally as a sanity check and then we can feed it to bors.
Here's an old attempt of mine: rust-lang/rust#37802. All the Makefile changes in that PR won't be necessary as the Makefiles have been removed.
from compiler-builtins.
Done now!
from compiler-builtins.
Related Issues (20)
- `__extenddftf2` is found to be missing at runtime when using the WASI SDK to build Rust crates' C code HOT 2
- Getting C-defined intrinsics into a project that uses the stable compiler doesn't work because of all the `#![feature]` checks HOT 2
- Unable to find long double symbols on `aarch64-apple-darwin` HOT 4
- Adding feature to port `libm` for any target HOT 3
- Unable to use static macOS libraries in Unreal Engine projects HOT 2
- Regression: build failure on i686-pc-windows-gnu due to multiple definition of `_alloca` HOT 15
- Undefined reference to __chkstk, __alloca when building target i686-unknown-uefi
- aarch64 windows build failure HOT 1
- `aarch64-linux` `multf3` symbol has incorrect rounding HOT 1
- Unable to `-Zbuild-std` because std depends on `compiler-builtins` without the `no-f16-f128` features HOT 5
- Rounding error in `__mulsf3` HOT 6
- Inconsistent truncation of -0.0 HOT 6
- powerpc64le truncation failure HOT 1
- Errors building latest version on arm-android HOT 7
- Infinite recursion in sqrt HOT 4
- "was built for iOS 16.4" warning HOT 4
- Infinite recursion in `__extendhfsf2` and `__truncsfhf2` on "no-f16-f128" platforms HOT 6
- Various symbols on win/apple are no longer weak after #598 HOT 13
- Presence of `f16` in signatures causes missing symbols on PPC HOT 2
- Optimizing Compiler builtins causes build failure on VxWorks HOT 3
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from compiler-builtins.