We don't want duplicate ctru-sys crates in the dependency graph. Same
for libc. We can patch them here to avoid any issues.
Now that we don't have duplicate ctru-sys crates, we can add back the
links field. This field is important because it warns us when there are
two crates linking to the same library (ex. duplicate ctru-sys crates).
This fixes the panic issue (not calling `panic_count::increase`) as well
as the missing debug info. The static lib contained a second copy of the
rust std, which caused these issues.
A side effect of removing this std is that the linker fix and pthread
library modules need to be "reachable" from the main module for Rust to
link them correctly. If the init methods of the modules are not called
somewhere, then a linker error will be emitted saying some symbols are
not found. The linker fix module didn't need this before because the
std included in the pthread static lib required those symbols, so they
were included. Now that the std is linked in later, Rust thinks these
symbols are unused (hence the init method).
Also moved the linker fix to be a dependency on ctru-rs. ctru-sys should
just be about interfacing with libctru.
I'd thought that it would be necessary for implementing features such as the std::os::raw types in ctr-std, but I do not believe that that is the case.