mirror of
https://github.com/Ed94/Odin.git
synced 2026-08-06 15:48:51 +00:00
Silence writable string warnings when compiling Odin on Linux.
This commit is contained in:
@@ -21,8 +21,8 @@
|
|||||||
#include "llvm_backend_stmt.cpp"
|
#include "llvm_backend_stmt.cpp"
|
||||||
#include "llvm_backend_proc.cpp"
|
#include "llvm_backend_proc.cpp"
|
||||||
|
|
||||||
char *get_default_microarchitecture() {
|
String get_default_microarchitecture() {
|
||||||
char * default_march = "generic";
|
String default_march = str_lit("generic");
|
||||||
if (build_context.metrics.arch == TargetArch_amd64) {
|
if (build_context.metrics.arch == TargetArch_amd64) {
|
||||||
// NOTE(bill): x86-64-v2 is more than enough for everyone
|
// NOTE(bill): x86-64-v2 is more than enough for everyone
|
||||||
//
|
//
|
||||||
@@ -32,9 +32,9 @@ char *get_default_microarchitecture() {
|
|||||||
// x86-64-v4: AVX512F, AVX512BW, AVX512CD, AVX512DQ, AVX512VL
|
// x86-64-v4: AVX512F, AVX512BW, AVX512CD, AVX512DQ, AVX512VL
|
||||||
if (ODIN_LLVM_MINIMUM_VERSION_12) {
|
if (ODIN_LLVM_MINIMUM_VERSION_12) {
|
||||||
if (build_context.metrics.os == TargetOs_freestanding) {
|
if (build_context.metrics.os == TargetOs_freestanding) {
|
||||||
default_march = "x86-64";
|
default_march = str_lit("x86-64");
|
||||||
} else {
|
} else {
|
||||||
default_march = "x86-64-v2";
|
default_march = str_lit("x86-64-v2");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -2509,16 +2509,16 @@ gb_internal bool lb_generate_code(lbGenerator *gen) {
|
|||||||
code_mode = LLVMCodeModelKernel;
|
code_mode = LLVMCodeModelKernel;
|
||||||
}
|
}
|
||||||
|
|
||||||
char const *host_cpu_name = LLVMGetHostCPUName();
|
String host_cpu_name = copy_string(permanent_allocator(), make_string_c(LLVMGetHostCPUName()));
|
||||||
char const *llvm_cpu = get_default_microarchitecture();
|
String llvm_cpu = get_default_microarchitecture();
|
||||||
char const *llvm_features = "";
|
char const *llvm_features = "";
|
||||||
if (build_context.microarch.len != 0) {
|
if (build_context.microarch.len != 0) {
|
||||||
if (build_context.microarch == "native") {
|
if (build_context.microarch == "native") {
|
||||||
llvm_cpu = host_cpu_name;
|
llvm_cpu = host_cpu_name;
|
||||||
} else {
|
} else {
|
||||||
llvm_cpu = alloc_cstring(permanent_allocator(), build_context.microarch);
|
llvm_cpu = copy_string(permanent_allocator(), build_context.microarch);
|
||||||
}
|
}
|
||||||
if (gb_strcmp(llvm_cpu, host_cpu_name) == 0) {
|
if (llvm_cpu == host_cpu_name) {
|
||||||
llvm_features = LLVMGetHostCPUFeatures();
|
llvm_features = LLVMGetHostCPUFeatures();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -2578,7 +2578,7 @@ gb_internal bool lb_generate_code(lbGenerator *gen) {
|
|||||||
|
|
||||||
for (auto const &entry : gen->modules) {
|
for (auto const &entry : gen->modules) {
|
||||||
LLVMTargetMachineRef target_machine = LLVMCreateTargetMachine(
|
LLVMTargetMachineRef target_machine = LLVMCreateTargetMachine(
|
||||||
target, target_triple, llvm_cpu,
|
target, target_triple, (const char *)llvm_cpu.text,
|
||||||
llvm_features,
|
llvm_features,
|
||||||
code_gen_level,
|
code_gen_level,
|
||||||
reloc_mode,
|
reloc_mode,
|
||||||
|
|||||||
+2
-2
@@ -2544,6 +2544,7 @@ int main(int arg_count, char const **arg_ptr) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
String default_march = get_default_microarchitecture();
|
||||||
if (print_microarch_list) {
|
if (print_microarch_list) {
|
||||||
if (build_context.microarch != "?") {
|
if (build_context.microarch != "?") {
|
||||||
gb_printf("Unknown microarchitecture '%.*s'.\n", LIT(build_context.microarch));
|
gb_printf("Unknown microarchitecture '%.*s'.\n", LIT(build_context.microarch));
|
||||||
@@ -2554,8 +2555,6 @@ int main(int arg_count, char const **arg_ptr) {
|
|||||||
String march_list = target_microarch_list[build_context.metrics.arch];
|
String march_list = target_microarch_list[build_context.metrics.arch];
|
||||||
String_Iterator it = {march_list, 0};
|
String_Iterator it = {march_list, 0};
|
||||||
|
|
||||||
String default_march = make_string_c(get_default_microarchitecture());
|
|
||||||
|
|
||||||
for (;;) {
|
for (;;) {
|
||||||
String str = string_split_iterator(&it, ',');
|
String str = string_split_iterator(&it, ',');
|
||||||
if (str == "") break;
|
if (str == "") break;
|
||||||
@@ -2574,6 +2573,7 @@ int main(int arg_count, char const **arg_ptr) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (build_context.show_debug_messages) {
|
if (build_context.show_debug_messages) {
|
||||||
|
debugf("Selected microarch: %.*s\n", LIT(default_march));
|
||||||
for_array(i, build_context.build_paths) {
|
for_array(i, build_context.build_paths) {
|
||||||
String build_path = path_to_string(heap_allocator(), build_context.build_paths[i]);
|
String build_path = path_to_string(heap_allocator(), build_context.build_paths[i]);
|
||||||
debugf("build_paths[%ld]: %.*s\n", i, LIT(build_path));
|
debugf("build_paths[%ld]: %.*s\n", i, LIT(build_path));
|
||||||
|
|||||||
Reference in New Issue
Block a user