Commit 45be803646

Ryan Sepassi <rsepassi@gmail.com>
2024-07-11 22:20:06
Update `__chkstk_ms` to have weak linkage (#20138)
* Update `__chkstk_ms` to have weak linkage `__chkstk_ms` was causing conflicts during linking in some circumstances (specifically with linking object files from Rust sources). This PR switches `__chkstk_ms` to have weak linkage. #15107 * Update stack_probe.zig to weak linkage for all symbols
1 parent 95d9292
Changed files (1)
lib
compiler_rt
lib/compiler_rt/stack_probe.zig
@@ -16,16 +16,16 @@ comptime {
     if (builtin.os.tag == .windows) {
         // Default stack-probe functions emitted by LLVM
         if (is_mingw) {
-            @export(_chkstk, .{ .name = "_alloca", .linkage = strong_linkage });
-            @export(___chkstk_ms, .{ .name = "___chkstk_ms", .linkage = strong_linkage });
+            @export(_chkstk, .{ .name = "_alloca", .linkage = linkage });
+            @export(___chkstk_ms, .{ .name = "___chkstk_ms", .linkage = linkage });
 
             if (arch.isAARCH64()) {
-                @export(__chkstk, .{ .name = "__chkstk", .linkage = strong_linkage });
+                @export(__chkstk, .{ .name = "__chkstk", .linkage = linkage });
             }
         } else if (!builtin.link_libc) {
             // This symbols are otherwise exported by MSVCRT.lib
-            @export(_chkstk, .{ .name = "_chkstk", .linkage = strong_linkage });
-            @export(__chkstk, .{ .name = "__chkstk", .linkage = strong_linkage });
+            @export(_chkstk, .{ .name = "_chkstk", .linkage = linkage });
+            @export(__chkstk, .{ .name = "__chkstk", .linkage = linkage });
         }
     }