Skip to content
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

Add support for alternative C libraries #7283

Closed
brson opened this issue Jun 21, 2013 · 10 comments
Closed

Add support for alternative C libraries #7283

brson opened this issue Jun 21, 2013 · 10 comments
Labels
A-runtime Area: std's runtime and "pre-main" init for handling backtraces, unwinds, stack overflows

Comments

@brson
Copy link
Contributor

brson commented Jun 21, 2013

Makes snapshots more compatible. Required for microcontroller Rust. musl is the favorite.

@vi
Copy link
Contributor

vi commented Jul 11, 2013

Vote up. I don't want musl-gcc (or similar things) to be the sole way to create little system stand-alone executables. I hope it will mix well with https://github.com/pcwalton/zero.rs

@thestinger
Copy link
Contributor

We can eventually avoid the libc dependency completely in runtime-less Rust. It's not very hard to do system calls natively on x86 (interrupts) and x86_64 (syscall instruction). We would also need to support using the vdso to avoid unnecessary overhead on operations like checking the time, because those are optimized to read kernel-space memory without a context-switch.

@vi
Copy link
Contributor

vi commented Jul 11, 2013

Mixed "little C library + little Rust runtime" can also be helpful, for projects using both C and Rust code.

Ideally it should be flexible: the more features you use, the more runtime and dependencies the program have.

@catamorphism
Copy link
Contributor

Visiting for bug triage. Not a release blocker IMO.

@emberian
Copy link
Member

emberian commented Jan 6, 2014

Triage. Easy to do with #[no_std], I don't think it should be a priority atm.

@thestinger
Copy link
Contributor

#2124 would make this very easy. In fact, it will probably just work out-of-the-box with most alternative C libraries if we did that.

@alexchandel
Copy link

Rust currently depends on gcc_s for task unwinding on linux and bsd. Dropping this dependency is necessary for systems without glibc/gcc.

@vi
Copy link
Contributor

vi commented Dec 3, 2014

Is task unwinding only for debugging and/or error handling, or it is needed for any Rust code to run?

@alexchandel
Copy link

@vi Task unwinding is only for handling panics in the calling task. It is debatable whether this is even the correct behavior.

@steveklabnik
Copy link
Member

I'm pulling a massive triage effort to get us ready for 1.0. As part of this, I'm moving stuff that's wishlist-like to the RFCs repo, as that's where major new things should get discussed/prioritized.

This issue has been moved to the RFCs repo: rust-lang/rfcs#625

flip1995 pushed a commit to flip1995/rust that referenced this issue Jun 3, 2021
Document to only push the created tag and not everything

Inspired by https://stackoverflow.com/a/5195913

changelog: none
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
A-runtime Area: std's runtime and "pre-main" init for handling backtraces, unwinds, stack overflows
Projects
None yet
Development

No branches or pull requests

7 participants