aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorgingerBill <bill@gingerbill.org>2023-09-21 11:03:25 +0100
committergingerBill <bill@gingerbill.org>2023-09-21 11:03:25 +0100
commit735bb147e271fc441f265435dfafc143b1d2e71a (patch)
tree3a38214599630ea2809c453ee63b9ec09360d13e
parent7a511308ef985897dcfb47ffa4fb5c08bf0481a4 (diff)
Add asan lib for Windows
-rw-r--r--bin/llvm/windows/clang_rt.asan-x86_64.libbin0 -> 5091492 bytes
-rw-r--r--build.bat24
-rw-r--r--src/llvm_backend.cpp15
3 files changed, 35 insertions, 4 deletions
diff --git a/bin/llvm/windows/clang_rt.asan-x86_64.lib b/bin/llvm/windows/clang_rt.asan-x86_64.lib
new file mode 100644
index 000000000..9b6971395
--- /dev/null
+++ b/bin/llvm/windows/clang_rt.asan-x86_64.lib
Binary files differ
diff --git a/build.bat b/build.bat
index d9ebb5e98..5890ce4e0 100644
--- a/build.bat
+++ b/build.bat
@@ -82,9 +82,9 @@ set libs= ^
rem DO NOT TOUCH!
rem THIS TILDE STUFF IS FOR DEVELOPMENT ONLY!
-set tilde_backend=0
+set tilde_backend=1
if %tilde_backend% EQU 1 (
- set libs=%libs% src\tilde\tb.lib
+ set libs=%libs% src\tilde\tb.lib onecore.lib
set compiler_defines=%compiler_defines% -DODIN_TILDE_BACKEND
)
rem DO NOT TOUCH!
@@ -107,10 +107,26 @@ del *.ilk > NUL 2> NUL
cl %compiler_settings% "src\main.cpp" "src\libtommath.cpp" /link %linker_settings% -OUT:%exe_name%
if %errorlevel% neq 0 goto end_of_build
-call build_vendor.bat
+rem call build_vendor.bat
+rem if %errorlevel% neq 0 goto end_of_build
+
+rem if %release_mode% EQU 0 odin run examples/demo
+
+rem %exe_name% check examples/all -show-timings
+rem %exe_name% build examples/demo -show-timings -keep-temp-files
+%exe_name% run examples/bug -show-timings -o:none -sanitize:address
+rem %exe_name% run examples/bug -tilde -debug
+
+
if %errorlevel% neq 0 goto end_of_build
-if %release_mode% EQU 0 odin run examples/demo
+pushd W:\JangaFX\EmberGen\embergen2
+ rem W:\Odin\odin build . -show-timings
+ rem W:\Odin\odin run . -show-timings
+popd
+
+
+rem %exe_name% check examples/all -vet -strict-style -show-timings
del *.obj > NUL 2> NUL
diff --git a/src/llvm_backend.cpp b/src/llvm_backend.cpp
index 32b02eb1b..492559a4f 100644
--- a/src/llvm_backend.cpp
+++ b/src/llvm_backend.cpp
@@ -2586,6 +2586,21 @@ gb_internal bool lb_generate_code(lbGenerator *gen) {
return false;
}
+
+ if (build_context.sanitizer_flags & SanitizerFlag_Address) {
+ auto paths = array_make<String>(heap_allocator(), 0, 1);
+ if (build_context.metrics.os == TargetOs_windows) {
+ String path = concatenate_strings(permanent_allocator(), build_context.ODIN_ROOT, str_lit("\\bin\\llvm\\windows\\clang_rt.asan-x86_64.lib"));
+ array_add(&paths, path);
+ }
+ Entity *lib = alloc_entity_library_name(nullptr, make_token_ident("asan_lib"), nullptr, slice_from_array(paths), str_lit("asan_lib"));
+ array_add(&gen->foreign_libraries, lib);
+ }
+ if (build_context.sanitizer_flags & SanitizerFlag_Memory) {
+ }
+ if (build_context.sanitizer_flags & SanitizerFlag_Thread) {
+ }
+
gb_sort_array(gen->foreign_libraries.data, gen->foreign_libraries.count, foreign_library_cmp);
return true;