This prevents dropping the Gfx object before the console. We want to do
this because printing after dropping gfx doesn't do anything (gfx isn't
rendering the text anymore).
Note that even though Rust doesn't understand the relationship between
Console and println, even if you don't use the console variable Rust
will prevent Gfx dropping because Console's Drop code _might_ use the
Gfx object (it doesn't, but we get the error we want anyway).
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.
The only real use for thread names is so that they appear in panic messages. However, names set by this API won't appear in panic messages because we aren't `std::thread` and therefore don't have access to `sys_common::thread_info` where libstd stashes its thread names. So without that functionality, there's not much of a reason to have thread names at all.