-
Notifications
You must be signed in to change notification settings - Fork 12.7k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Remove C++ dependencies #11103
Remove C++ dependencies #11103
Conversation
Bravo. This is a holiday miracle. |
std++ will be statically linked into librustc along with LLVM, so no. |
This truly is a christmas miracle, amazing work! Is there a reason that this also doesn't drop all the |
'cause I haven't stumbled upon it yet... Why do we need Btw, shouldn't |
Hm, I just assume that it would need stage0, but if it gets past stage0 without a problem then it's fine by me. I know that stage0-generated code will be looking for a function called You shouldn't drop pthread unless it's only for windows, all unixes still need pthread. |
exception_class: _Unwind_Exception_Class, | ||
ue_header: *_Unwind_Exception, | ||
context: *_Unwind_Context) -> _Unwind_Reason_Code; | ||
} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We may need __gcc_personality_seh0
or __gcc_personality_sjlj0
if one wants to build rust on mingw-w64 with seh/sjlj support. Maybe we can add others with #[cfg(...)]
flags and set v0 (win32) and seh0 (win64) as default.
Seems that |
It seems that my build failure was due to incompleteness of |
What's really exciting about this to me is that having bindings to libunwind should allow us to make a working backtrace function on all platforms, eliminating all of the places where we hardcode file and line number information. |
Created new PR #11121 |
This PR removes Rust's dependency on C++ for exception handling. Instead, it will use the unwind library API directly.
LLVM still depends on libstdc++, but these bits can be linked into librustc statically, so we no longer need to redistribute libstdc++-6.dll on Windows.
closes #10469