aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--core/os/os_linux.odin4
-rw-r--r--src/build_settings.cpp22
2 files changed, 21 insertions, 5 deletions
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,13 +41,20 @@ 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("");
String cross_compile_lib_dir = 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(" ");