# Libsystem, or, the great libstd refactor

**URL:** <https://internals.rust-lang.org/t/libsystem-or-the-great-libstd-refactor/2765>\
**Category:** libs\
**Created:** [October 9, 2015, 5:51pm UTC](https://internals.rust-lang.org/t/libsystem-or-the-great-libstd-refactor/2765 "2015-10-09T17:51:40Z")\
**Posts on this page:** 1\
**Showing post:** 33

<div class="post-metadata">

**Author:** ![retep998](https://sea2.discourse-cdn.com/flex002/user_avatar/internals.rust-lang.org/retep998/32/729_2.png) [@retep998](https://internals.rust-lang.org/u/retep998)\
**Post date:** [February 18, 2016, 5:52am UTC](https://internals.rust-lang.org/t/libsystem-or-the-great-libstd-refactor/2765/33 "2016-02-18T05:52:17Z")

</div>

> [@notriddle](#):
>
> I thought the MinGW toolchain used glibc...

No, MinGW uses MSVCRT still, it just uses the really _really_ old one in `msvcrt.dll` that you're not supposed to use, and because that `msvcrt.dll` is missing a significant amount of C stuff, MinGW implements the missing functionality on top of it. To use glibc on Windows would require a massive overhaul of it to use windows API instead of linux syscalls.

Furthermore Rust itself uses very little of the C standard library, just `strlen` and various math functions along with `memcpy` and friends. Everything else Rust does directly through Windows API.

---

_[View the full topic](https://internals.rust-lang.org/t/libsystem-or-the-great-libstd-refactor/2765)._
