-
Notifications
You must be signed in to change notification settings - Fork 8
Adjust libstd to make non-Rust dependencies optional #54
New issue
Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? # to your account
Comments
FWIW, here's the libstd feature config that Miri uses to avoid any C dependencies. Since rust-lang/backtrace-rs#297 landed, that avoids any C dependency, and we have CI on the Miri side to ensure this remains the case. Another problem is that libstd by default is built as rlib and dylib, and building a dylib also usually requires a target toolchain. However, std-aware cargo might already work around this, I am not sure. (Miri works around this by only doing a check-build of libstd.) |
There is a hack in Cargo to force it to skip the dylib. You even commented on it. 😜 Ideally there would be first-class support for that, but that is off-topic. |
Ah lol, my memory is getting worse it seems. ;) |
At this point, std now uses gimli rather than libbacktrace. |
Triage: Given that the only C dependency has been replaced with a Rust dependency, can this be closed or is the underlying issue still worth solving? |
I'd say the underlying issue has been solved -- even working backtraces requires no non-Rust dependency. |
linux-musl still requires a C compiler (and I think fortanix-sgx does, too). I'm not sure if there needs to be 100% coverage for all targets, but I'm not sure where to draw the line. |
I'm working on refactoring |
Cross-compiling C dependencies is a major pain. The only such dependency libstd has currently to the best of my knowledge is
backtrace-sys
. I would much rather have an easy time building libstd without an ability to produce backtraces than having to fiddle getting full toolchain set-up for a thing as obscure as, say, netbsd.The text was updated successfully, but these errors were encountered: