Commit c01d8c8b20

Veikka Tuominen <git@vexu.eu>
2024-06-02 09:10:35
pass `-fno-builtin` when testing `lib/c.zig`, `lib/compiler_rt.zig`
1 parent 06d9f88
Changed files (4)
lib
std
Build
src
codegen
test
lib/std/Build/Step/Compile.zig
@@ -211,6 +211,8 @@ is_linking_libc: bool = false,
 /// Computed during make().
 is_linking_libcpp: bool = false,
 
+no_builtin: bool = false,
+
 pub const ExpectedCompileErrors = union(enum) {
     contains: []const u8,
     exact: []const []const u8,
@@ -1572,6 +1574,10 @@ fn make(step: *Step, prog_node: std.Progress.Node) !void {
         }
     }
 
+    if (compile.no_builtin) {
+        try zig_args.append("-fno-builtin");
+    }
+
     if (b.sysroot) |sysroot| {
         try zig_args.appendSlice(&[_][]const u8{ "--sysroot", sysroot });
     }
src/codegen/llvm.zig
@@ -3115,8 +3115,7 @@ pub const Object = struct {
 
         try variable_index.setInitializer(try o.lowerValue(decl_val), &o.builder);
         variable_index.setLinkage(.internal, &o.builder);
-        const llvm_miscompiles_const_anon = o.module.getTarget().isDarwin();
-        if (!llvm_miscompiles_const_anon) variable_index.setMutability(.constant, &o.builder);
+        variable_index.setMutability(.constant, &o.builder);
         variable_index.setUnnamedAddr(.unnamed_addr, &o.builder);
         variable_index.setAlignment(alignment.toLlvm(), &o.builder);
         return variable_index;
test/tests.zig
@@ -984,6 +984,7 @@ const ModuleTestOptions = struct {
     skip_non_native: bool,
     skip_libc: bool,
     max_rss: usize = 0,
+    no_builtin: bool = false,
 };
 
 pub fn addModuleTests(b: *std.Build, options: ModuleTestOptions) *Step {
@@ -1070,6 +1071,7 @@ pub fn addModuleTests(b: *std.Build, options: ModuleTestOptions) *Step {
             .pic = test_target.pic,
             .strip = test_target.strip,
         });
+        if (options.no_builtin) these_tests.no_builtin = true;
         const single_threaded_suffix = if (test_target.single_threaded == true) "-single" else "";
         const backend_suffix = if (test_target.use_llvm == true)
             "-llvm"
build.zig
@@ -489,6 +489,7 @@ pub fn build(b: *std.Build) !void {
         .skip_single_threaded = true,
         .skip_non_native = skip_non_native,
         .skip_libc = true,
+        .no_builtin = true,
     }));
 
     test_step.dependOn(tests.addModuleTests(b, .{
@@ -501,6 +502,7 @@ pub fn build(b: *std.Build) !void {
         .skip_single_threaded = true,
         .skip_non_native = skip_non_native,
         .skip_libc = true,
+        .no_builtin = true,
     }));
 
     test_step.dependOn(tests.addCompareOutputTests(b, test_filters, optimization_modes));