mirror of
https://github.com/Ed94/Odin.git
synced 2026-06-13 01:21:38 -07:00
add tls when we have crt
This commit is contained in:
@@ -54,8 +54,8 @@ container_of :: #force_inline proc "contextless" (ptr: $P/^$Field_Type, $T: type
|
||||
|
||||
|
||||
when !NO_DEFAULT_TEMP_ALLOCATOR {
|
||||
when ODIN_ARCH == .i386 && ODIN_OS == .Windows {
|
||||
// Thread-local storage is problematic on Windows i386
|
||||
when ODIN_ARCH == .i386 && ODIN_OS == .Windows && ODIN_NO_CRT {
|
||||
// Thread-local storage doesn't work on Windows i386 without CRT
|
||||
global_default_temp_allocator_data: Default_Temp_Allocator
|
||||
} else {
|
||||
@thread_local global_default_temp_allocator_data: Default_Temp_Allocator
|
||||
|
||||
@@ -24,8 +24,8 @@ import "core:terminal/ansi"
|
||||
@(private="file") stop_test_passed: libc.sig_atomic_t
|
||||
@(private="file") stop_test_alert: libc.sig_atomic_t
|
||||
|
||||
when ODIN_ARCH == .i386 && ODIN_OS == .Windows {
|
||||
// Thread-local storage is problematic on Windows i386
|
||||
when ODIN_ARCH == .i386 && ODIN_OS == .Windows && ODIN_NO_CRT {
|
||||
// Thread-local storage doesn't work on Windows i386 without CRT
|
||||
@(private="file")
|
||||
local_test_index: libc.sig_atomic_t
|
||||
@(private="file")
|
||||
|
||||
+3
-2
@@ -3619,8 +3619,9 @@ int main(int arg_count, char const **arg_ptr) {
|
||||
// }
|
||||
|
||||
// Warn about Windows i386 thread-local storage limitations
|
||||
if (build_context.metrics.arch == TargetArch_i386 && build_context.metrics.os == TargetOs_windows) {
|
||||
gb_printf_err("Warning: Thread-local storage is disabled on Windows i386.\n");
|
||||
if (build_context.metrics.arch == TargetArch_i386 && build_context.metrics.os == TargetOs_windows && build_context.no_crt) {
|
||||
gb_printf_err("Warning: Thread-local storage is not supported on Windows i386 with -no-crt.\n");
|
||||
gb_printf_err(" Multi-threaded code will not work correctly.\n");
|
||||
}
|
||||
|
||||
// Check chosen microarchitecture. If not found or ?, print list.
|
||||
|
||||
Reference in New Issue
Block a user