Fix compilation error #272

This commit is contained in:
gingerBill
2018-10-17 15:27:36 +01:00
parent ef2931d4a5
commit 307c58d908
2 changed files with 21 additions and 5 deletions

View File

@@ -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 ---;

View File

@@ -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(" ");