Fix building issues with arm32

This commit is contained in:
gingerBill
2022-05-01 23:28:32 +01:00
parent 10a311092b
commit 0e27b27b81
2 changed files with 29 additions and 18 deletions
+12 -2
View File
@@ -378,7 +378,7 @@ gb_global TargetMetrics target_linux_arm32 = {
TargetArch_arm32, TargetArch_arm32,
4, 4,
8, 8,
str_lit("aapcs-linux-gnu"), str_lit("arm-linux-gnu"),
str_lit("e-m:o-p:32:32-Fi8-i64:64-v128:64:128-a:0:32-n32-S64"), str_lit("e-m:o-p:32:32-Fi8-i64:64-v128:64:128-a:0:32-n32-S64"),
}; };
@@ -1127,6 +1127,15 @@ void init_build_context(TargetMetrics *cross_target) {
bc->link_flags = str_lit("-arch x86 "); bc->link_flags = str_lit("-arch x86 ");
break; break;
} }
} else if (bc->metrics.arch == TargetArch_arm32) {
switch (bc->metrics.os) {
case TargetOs_linux:
bc->link_flags = str_lit("-arch arm ");
break;
default:
gb_printf_err("Compiler Error: Unsupported architecture\n");
gb_exit(1);
}
} else if (bc->metrics.arch == TargetArch_arm64) { } else if (bc->metrics.arch == TargetArch_arm64) {
switch (bc->metrics.os) { switch (bc->metrics.os) {
case TargetOs_darwin: case TargetOs_darwin:
@@ -1214,7 +1223,7 @@ bool init_build_paths(String init_filename) {
return false; return false;
} }
GB_ASSERT(find_result.windows_sdk_um_library_path.len > 0); if (find_result.windows_sdk_um_library_path.len > 0) {
GB_ASSERT(find_result.windows_sdk_ucrt_library_path.len > 0); GB_ASSERT(find_result.windows_sdk_ucrt_library_path.len > 0);
if (find_result.windows_sdk_root.len > 0) { if (find_result.windows_sdk_root.len > 0) {
@@ -1236,6 +1245,7 @@ bool init_build_paths(String init_filename) {
if (find_result.vs_library_path.len > 0) { if (find_result.vs_library_path.len > 0) {
bc->build_paths[BuildPath_VS_LIB] = path_from_string(ha, find_result.vs_library_path); bc->build_paths[BuildPath_VS_LIB] = path_from_string(ha, find_result.vs_library_path);
} }
}
gb_free(ha, find_result.windows_sdk_root.text); gb_free(ha, find_result.windows_sdk_root.text);
gb_free(ha, find_result.windows_sdk_um_library_path.text); gb_free(ha, find_result.windows_sdk_um_library_path.text);
+1
View File
@@ -944,6 +944,7 @@ void init_universal(void) {
{"Unknown", TargetArch_Invalid}, {"Unknown", TargetArch_Invalid},
{"amd64", TargetArch_amd64}, {"amd64", TargetArch_amd64},
{"i386", TargetArch_i386}, {"i386", TargetArch_i386},
{"arm32", TargetArch_arm32},
{"arm64", TargetArch_arm64}, {"arm64", TargetArch_arm64},
{"wasm32", TargetArch_wasm32}, {"wasm32", TargetArch_wasm32},
{"wasm64", TargetArch_wasm64}, {"wasm64", TargetArch_wasm64},