diff --git a/include/bits/wchar.h b/include/bits/wchar.h index f0e2dd9a49..1619cb0fab 100644 --- a/include/bits/wchar.h +++ b/include/bits/wchar.h @@ -6,7 +6,9 @@ #define WCHAR_MIN (0) #define WCHAR_MAX (0x7fffffff) -typedef int32_t wchar_t; -typedef uint32_t wint_t; +#define __need_size_t +#define __need_wchar_t +#define __need_wint_t +#define __need_NULL #endif /* _BITS_WCHAR_H */ diff --git a/include/stddef.h b/include/stddef.h index 0ee2d47174..d9fbabd932 100644 --- a/include/stddef.h +++ b/include/stddef.h @@ -7,6 +7,7 @@ typedef signed long long ptrdiff_t; typedef int32_t wchar_t; +typedef int32_t wint_t; typedef unsigned long long size_t; diff --git a/src/crti/src/lib.rs b/src/crti/src/lib.rs index 9843734faf..eb80c7c57a 100644 --- a/src/crti/src/lib.rs +++ b/src/crti/src/lib.rs @@ -30,7 +30,7 @@ global_asm!(r#" .global _init .type _init,%function _init: - stp x29,x30,[sp,-16] + stp x29,x30,[sp,-16]! mov x29,sp // stp: "stores two doublewords from the first and second argument to memory addressed by addr" // Body will be filled in by gcc and ended by crtn.o @@ -39,7 +39,7 @@ global_asm!(r#" .global _fini .type _fini,%function _fini: - stp x29,x30,[sp,-16] + stp x29,x30,[sp,-16]! mov x29,sp // stp: "stores two doublewords from the first and second argument to memory addressed by addr" // Body will be filled in by gcc and ended by crtn.o diff --git a/src/header/mod.rs b/src/header/mod.rs index 901238bfa6..34a1eae146 100644 --- a/src/header/mod.rs +++ b/src/header/mod.rs @@ -30,6 +30,7 @@ pub mod stdio; pub mod stdlib; pub mod string; pub mod strings; +pub mod sys_auxv; pub mod sys_file; pub mod sys_ioctl; pub mod sys_mman; diff --git a/src/header/sys_auxv/cbindgen.toml b/src/header/sys_auxv/cbindgen.toml new file mode 100644 index 0000000000..08b9683cb9 --- /dev/null +++ b/src/header/sys_auxv/cbindgen.toml @@ -0,0 +1,6 @@ +include_guard = "_SYS_AUXV_H" +language = "C" +style = "Tag" + +[enum] +prefix_with_name = true diff --git a/src/header/sys_auxv/mod.rs b/src/header/sys_auxv/mod.rs new file mode 100644 index 0000000000..eeabca08ff --- /dev/null +++ b/src/header/sys_auxv/mod.rs @@ -0,0 +1,11 @@ +//! sys/auxv.h implementation + +use platform::types::*; +use platform::{Pal, Sys}; + +pub const AT_HWCAP: usize = 16; + +#[no_mangle] +pub extern "C" fn getauxval(_t: c_ulong) -> c_ulong { + 0 +}