aboutsummaryrefslogtreecommitdiff
path: root/src/build_settings.cpp
diff options
context:
space:
mode:
authorChristian Seibold <krixano@protonmail.com>2020-09-14 15:22:35 -0500
committerChristian Seibold <krixano@protonmail.com>2020-09-14 15:22:35 -0500
commit577be4a8ae27d641c9c23857c07ad37b6cda3670 (patch)
treedb98230b56f543e1538c2caf72e126ae86ad23dd /src/build_settings.cpp
parentac126a8cd744472bede1d5f4f7d1d3b7444a65d2 (diff)
Get Odin compiling and produced exe's running on FreeBSD
Diffstat (limited to 'src/build_settings.cpp')
-rw-r--r--src/build_settings.cpp16
1 files changed, 13 insertions, 3 deletions
diff --git a/src/build_settings.cpp b/src/build_settings.cpp
index b9968019c..39deb4063 100644
--- a/src/build_settings.cpp
+++ b/src/build_settings.cpp
@@ -216,15 +216,15 @@ gb_global TargetMetrics target_freebsd_386 = {
TargetArch_386,
4,
8,
- str_lit("i386-unknown-freebsd"),
+ str_lit("i386-unknown-freebsd-elf"),
};
gb_global TargetMetrics target_freebsd_amd64 = {
TargetOs_freebsd,
- TargetArch_386,
+ TargetArch_amd64,
8,
16,
- str_lit("x86_64-unknown-freebsd"),
+ str_lit("x86_64-unknown-freebsd-elf"),
str_lit("e-m:w-i64:64-f80:128-n8:16:32:64-S128"),
};
@@ -653,6 +653,8 @@ void init_build_context(TargetMetrics *cross_target) {
metrics = &target_windows_amd64;
#elif defined(GB_SYSTEM_OSX)
metrics = &target_darwin_amd64;
+ #elif defined(GB_SYSTEM_FREEBSD)
+ metrics = &target_freebsd_amd64;
#else
metrics = &target_linux_amd64;
#endif
@@ -661,6 +663,8 @@ void init_build_context(TargetMetrics *cross_target) {
metrics = &target_windows_386;
#elif defined(GB_SYSTEM_OSX)
#error "Build Error: Unsupported architecture"
+ #elif defined(GB_SYSTEM_FREEBSD)
+ metrics = &target_freebsd_386;
#else
metrics = &target_linux_386;
#endif
@@ -709,6 +713,9 @@ void init_build_context(TargetMetrics *cross_target) {
case TargetOs_linux:
bc->link_flags = str_lit("-arch x86-64 ");
break;
+ case TargetOs_freebsd:
+ bc->link_flags = str_lit("-arch x86-64");
+ break;
}
} else if (bc->metrics.arch == TargetArch_386) {
llc_flags = gb_string_appendc(llc_flags, "-march=x86 ");
@@ -724,6 +731,9 @@ void init_build_context(TargetMetrics *cross_target) {
case TargetOs_linux:
bc->link_flags = str_lit("-arch x86 ");
break;
+ case TargetOs_freebsd:
+ bc->link_flags = str_lit("-arch x86");
+ break;
}
} else if (bc->metrics.arch == TargetArch_wasm32) {
bc->link_flags = str_lit("--no-entry --export-table --export-all --allow-undefined ");