aboutsummaryrefslogtreecommitdiff
path: root/src/build_settings.cpp
diff options
context:
space:
mode:
authorgingerBill <bill@gingerbill.org>2022-05-01 23:28:32 +0100
committergingerBill <bill@gingerbill.org>2022-05-01 23:28:32 +0100
commit0e27b27b81f4b51ae4691d4dc84ae130867b3f67 (patch)
treee99711332315a454d3e51085860f3b056140bfb9 /src/build_settings.cpp
parent10a311092b3a025921bdf62710972bcd91b57730 (diff)
Fix building issues with arm32
Diffstat (limited to 'src/build_settings.cpp')
-rw-r--r--src/build_settings.cpp44
1 files changed, 27 insertions, 17 deletions
diff --git a/src/build_settings.cpp b/src/build_settings.cpp
index 1619c342b..e596e54e5 100644
--- a/src/build_settings.cpp
+++ b/src/build_settings.cpp
@@ -378,7 +378,7 @@ gb_global TargetMetrics target_linux_arm32 = {
TargetArch_arm32,
4,
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"),
};
@@ -1127,6 +1127,15 @@ void init_build_context(TargetMetrics *cross_target) {
bc->link_flags = str_lit("-arch x86 ");
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) {
switch (bc->metrics.os) {
case TargetOs_darwin:
@@ -1214,27 +1223,28 @@ bool init_build_paths(String init_filename) {
return false;
}
- GB_ASSERT(find_result.windows_sdk_um_library_path.len > 0);
- GB_ASSERT(find_result.windows_sdk_ucrt_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);
- if (find_result.windows_sdk_root.len > 0) {
- bc->build_paths[BuildPath_Win_SDK_Root] = path_from_string(ha, find_result.windows_sdk_root);
- }
+ if (find_result.windows_sdk_root.len > 0) {
+ bc->build_paths[BuildPath_Win_SDK_Root] = path_from_string(ha, find_result.windows_sdk_root);
+ }
- if (find_result.windows_sdk_um_library_path.len > 0) {
- bc->build_paths[BuildPath_Win_SDK_UM_Lib] = path_from_string(ha, find_result.windows_sdk_um_library_path);
- }
+ if (find_result.windows_sdk_um_library_path.len > 0) {
+ bc->build_paths[BuildPath_Win_SDK_UM_Lib] = path_from_string(ha, find_result.windows_sdk_um_library_path);
+ }
- if (find_result.windows_sdk_ucrt_library_path.len > 0) {
- bc->build_paths[BuildPath_Win_SDK_UCRT_Lib] = path_from_string(ha, find_result.windows_sdk_ucrt_library_path);
- }
+ if (find_result.windows_sdk_ucrt_library_path.len > 0) {
+ bc->build_paths[BuildPath_Win_SDK_UCRT_Lib] = path_from_string(ha, find_result.windows_sdk_ucrt_library_path);
+ }
- if (find_result.vs_exe_path.len > 0) {
- bc->build_paths[BuildPath_VS_EXE] = path_from_string(ha, find_result.vs_exe_path);
- }
+ if (find_result.vs_exe_path.len > 0) {
+ bc->build_paths[BuildPath_VS_EXE] = path_from_string(ha, find_result.vs_exe_path);
+ }
- if (find_result.vs_library_path.len > 0) {
- bc->build_paths[BuildPath_VS_LIB] = path_from_string(ha, find_result.vs_library_path);
+ if (find_result.vs_library_path.len > 0) {
+ bc->build_paths[BuildPath_VS_LIB] = path_from_string(ha, find_result.vs_library_path);
+ }
}
gb_free(ha, find_result.windows_sdk_root.text);