Skip to content

Commit db00913

Browse files
committed
[compiler/api]
- Use regular C runtime to handle executable startup. - Add support for clang address sanitizer on Linux and Mac. - Fix hash table issues with reuse of deleted slots. - RPATH is now listed first in a group when LD is called on Linux or Mac. - LD is invoked with all dependencies in --start-group --end-group block on Linux. - DLib now use correct dynamic runtime on Windows.
1 parent 4f7e540 commit db00913

42 files changed

Lines changed: 271 additions & 212 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

CHANGELOG.txt

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,12 @@ master
5151
- Revamp implementation of multi-value expressions.
5252
- Add support for unroll multi-return value in assignment statement.
5353
- Fix issues with multi-value declarations in global scope.
54+
- Use regular C runtime to handle executable startup.
55+
- Add support for clang address sanitizer on Linux and Mac.
56+
- Fix hash table issues with reuse of deleted slots.
57+
- RPATH is now listed first in a group when LD is called on Linux or Mac.
58+
- LD is invoked with all dependencies in --start-group --end-group block on Linux.
59+
- DLib now use correct dynamic runtime on Windows.
5460

5561
[Modules]
5662

RELEASE_STEPS.md

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,4 +42,11 @@
4242
[Deprecated]
4343

4444
- Push master branch.
45-
- Make sure everything works...
45+
- Make sure everything works...
46+
47+
# LLVM Upgrade
48+
49+
- Precompile Windows package.
50+
- Rebuild asan module to match new LLVM version.
51+
- Rebuild LLVM linker.
52+
- Check if ASAN works on Windows.

lib/bl/api/build/build.bl

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -178,6 +178,8 @@ Target :: struct { // !!! ABI sync TargetOptions !!!
178178
enable_experimental_targets: bool;
179179
/// Target triple according to LLVM.
180180
triple: TargetTriple;
181+
/// Enable runtime LLVM address sanitizer.
182+
sanitize_address: bool;
181183
}
182184

183185
ScopeDumpMode :: enum {
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
libasan.so.8.0.0
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
libasan.so.8.0.0
1.79 MB
Binary file not shown.
3.64 MB
Binary file not shown.
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
version: 20260407
2+
supported: "x86_64-pc-linux-gnu, x86_64-unknown-linux-gnu, arm64-apple-darwin"
3+
4+
# ASAN runtime is broken on Windows for some reason, we currently use LLVM 18,
5+
# the issue might be fixed in newer LLVM, we should revisit this when upgrading
6+
# compiler LLVM.
7+
#x86_64-pc-windows-msvc:
8+
# linker_lib_path: "win32"
9+
# link_runtime: "clang_rt.asan_dynamic-x86_64"
10+
# linker_opt: "clang_rt.asan_dynamic_runtime_thunk-x86_64.lib"
11+
12+
x86_64-pc-linux-gnu:
13+
linker_lib_path: "linux"
14+
link_runtime: "asan"
15+
16+
x86_64-unknown-linux-gnu:
17+
linker_lib_path: "linux"
18+
link_runtime: "asan"
19+
20+
arm64-apple-darwin:
21+
linker_lib_path: "macos"
22+
link_runtime: "clang_rt.asan_osx_dynamic"
952 KB
Binary file not shown.
101 KB
Binary file not shown.

0 commit comments

Comments
 (0)