diff --git a/core/os/os_linux.odin b/core/os/os_linux.odin index 4f6375701..92e1967d6 100644 --- a/core/os/os_linux.odin +++ b/core/os/os_linux.odin @@ -139,9 +139,9 @@ foreign libc { @(link_name="calloc") _unix_calloc :: proc(num, size: int) -> rawptr ---; @(link_name="free") _unix_free :: proc(ptr: rawptr) ---; @(link_name="realloc") _unix_realloc :: proc(ptr: rawptr, size: int) -> rawptr ---; - @(link_name="getenv") _unix_getenv :: proc(cstring) -> cstring --- -> !; + @(link_name="getenv") _unix_getenv :: proc(cstring) -> cstring ---; - @(link_name="exit") _unix_exit :: proc(status: int) ---; + @(link_name="exit") _unix_exit :: proc(status: int) -> ! ---; } foreign dl { @(link_name="dlopen") _unix_dlopen :: proc(filename: cstring, flags: int) -> rawptr ---; diff --git a/src/build_settings.cpp b/src/build_settings.cpp index cbf6fb689..90a80c158 100644 --- a/src/build_settings.cpp +++ b/src/build_settings.cpp @@ -18,6 +18,15 @@ enum TargetArchKind { TargetArch_COUNT, }; +enum TargetEndianKind { + TargetEndian_Invalid, + + TargetEndian_Little, + TargetEndian_Big, + + TargetEndian_COUNT, +}; + String target_os_names[TargetOs_COUNT] = { str_lit(""), str_lit("windows"), @@ -32,12 +41,19 @@ String target_arch_names[TargetArch_COUNT] = { str_lit("386"), }; -String target_arch_endian[TargetArch_COUNT] = { +String target_endian_names[TargetEndian_COUNT] = { str_lit(""), str_lit("little"), - str_lit("little"), + str_lit("big"), }; +TargetEndianKind target_endians[TargetArch_COUNT] = { + TargetEndian_Invalid, + TargetEndian_Little, + TargetEndian_Little, +}; + + String const ODIN_VERSION = str_lit("0.9.0"); String cross_compile_target = str_lit(""); @@ -521,7 +537,7 @@ void init_build_context(void) { bc->metrics = metrics; bc->ODIN_OS = target_os_names[metrics.os]; bc->ODIN_ARCH = target_arch_names[metrics.arch]; - bc->ODIN_ENDIAN = target_arch_endian[metrics.arch]; + bc->ODIN_ENDIAN = target_endian_names[target_endians[metrics.arch]]; bc->word_size = metrics.word_size; bc->max_align = metrics.max_align; bc->link_flags = str_lit(" ");