The build script was added to obtain the correct values of the errno C preprocessor definitions. This way no matter what the platform has defined them as, they will be correct in the libraries code.
Pact
This library will provided the binding for the standard 'C' functions. Later, as a stretch goal, this library will attempt to implement those functions in Rust.
Features
This library handles several different ways of providing what is needed at the 'C' binding level.
Standard C Library
This is the default feature set.
It will provide a link to the 'C' standard library. This will make it so that your code is executable and can call functions and use structures from the standard 'C' library.
Rust C Library
default-features = false
features = ["rust_lib"]
Currently, this does not work. Later, this will provide a Rust version of all the 'C' standard library functions. This is a huge stretch goal. It may not happen, or it may take a really long time to get this done. This will require alot of platform specific work.
No Memory Manipulation
default-features = false
features = ["no_mem_manip"]
This feature tells the library to not define the memory manipulation functions that Rust requires for LLVM. These are:
- memcpy
- memmove
- memcmp
- memset
Weak
default-features = false
features = ["no_mem_manip", "weak"]
Activates weak linkage on ELF objects. This is only useful when combined with the 'no_mem_manip' feature.