Use weak linkage for libc symbols
Created by: NilSet
Problem: Linking both libstd and newlib causes duplicate symbol errors due to the symbols we define in extern.rs
Solution: Use weak linkage for the libc functions we define in libstd
Drawbacks: When linking both newlib and libstd, rust code will execute the newlib version of the functions.