Skip to content

Add support for alternative C libraries #7283

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

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
# for free to join this conversation on GitHub. Already have an account? # 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