| ... | @@ -19,7 +19,7 @@ pub fn build(b: *Builder) !void { | ... | @@ -19,7 +19,7 @@ pub fn build(b: *Builder) !void { |
| 19 | const single_threaded = b.option(bool, "single-threaded", "Build artifacts that run in single threaded mode"); | 19 | const single_threaded = b.option(bool, "single-threaded", "Build artifacts that run in single threaded mode"); |
| 20 | const use_zig_libcxx = b.option(bool, "use-zig-libcxx", "If libc++ is needed, use zig's bundled version, don't try to integrate with the system") orelse false; | 20 | const use_zig_libcxx = b.option(bool, "use-zig-libcxx", "If libc++ is needed, use zig's bundled version, don't try to integrate with the system") orelse false; |
| 21 | | 21 | |
| 22 | var docgen_exe = b.addExecutable("docgen", "doc/docgen.zig"); | 22 | const docgen_exe = b.addExecutable("docgen", "doc/docgen.zig"); |
| 23 | docgen_exe.single_threaded = single_threaded; | 23 | docgen_exe.single_threaded = single_threaded; |
| 24 | | 24 | |
| 25 | const rel_zig_exe = try fs.path.relative(b.allocator, b.build_root, b.zig_exe); | 25 | const rel_zig_exe = try fs.path.relative(b.allocator, b.build_root, b.zig_exe); |
| ... | @@ -27,7 +27,7 @@ pub fn build(b: *Builder) !void { | ... | @@ -27,7 +27,7 @@ pub fn build(b: *Builder) !void { |
| 27 | b.allocator, | 27 | b.allocator, |
| 28 | &[_][]const u8{ b.cache_root, "langref.html" }, | 28 | &[_][]const u8{ b.cache_root, "langref.html" }, |
| 29 | ) catch unreachable; | 29 | ) catch unreachable; |
| 30 | var docgen_cmd = docgen_exe.run(); | 30 | const docgen_cmd = docgen_exe.run(); |
| 31 | docgen_cmd.addArgs(&[_][]const u8{ | 31 | docgen_cmd.addArgs(&[_][]const u8{ |
| 32 | rel_zig_exe, | 32 | rel_zig_exe, |
| 33 | "doc" ++ fs.path.sep_str ++ "langref.html.in", | 33 | "doc" ++ fs.path.sep_str ++ "langref.html.in", |
| ... | @@ -60,6 +60,7 @@ pub fn build(b: *Builder) !void { | ... | @@ -60,6 +60,7 @@ pub fn build(b: *Builder) !void { |
| 60 | const skip_install_lib_files = b.option(bool, "skip-install-lib-files", "Do not copy lib/ files to installation prefix") orelse false; | 60 | const skip_install_lib_files = b.option(bool, "skip-install-lib-files", "Do not copy lib/ files to installation prefix") orelse false; |
| 61 | | 61 | |
| 62 | const only_install_lib_files = b.option(bool, "lib-files-only", "Only install library files") orelse false; | 62 | const only_install_lib_files = b.option(bool, "lib-files-only", "Only install library files") orelse false; |
| | 63 | |
| 63 | const is_stage1 = b.option(bool, "stage1", "Build the stage1 compiler, put stage2 behind a feature flag") orelse false; | 64 | const is_stage1 = b.option(bool, "stage1", "Build the stage1 compiler, put stage2 behind a feature flag") orelse false; |
| 64 | const omit_stage2 = b.option(bool, "omit-stage2", "Do not include stage2 behind a feature flag inside stage1") orelse false; | 65 | const omit_stage2 = b.option(bool, "omit-stage2", "Do not include stage2 behind a feature flag inside stage1") orelse false; |
| 65 | const static_llvm = b.option(bool, "static-llvm", "Disable integration with system-installed LLVM, Clang, LLD, and libc++") orelse false; | 66 | const static_llvm = b.option(bool, "static-llvm", "Disable integration with system-installed LLVM, Clang, LLD, and libc++") orelse false; |
| ... | @@ -135,9 +136,9 @@ pub fn build(b: *Builder) !void { | ... | @@ -135,9 +136,9 @@ pub fn build(b: *Builder) !void { |
| 135 | break :blk 4; | 136 | break :blk 4; |
| 136 | }; | 137 | }; |
| 137 | | 138 | |
| 138 | const main_file = if (is_stage1) "src/stage1.zig" else "src/main.zig"; | 139 | const main_file: ?[]const u8 = if (is_stage1) null else "src/main.zig"; |
| 139 | | 140 | |
| 140 | var exe = b.addExecutable("zig", main_file); | 141 | const exe = b.addExecutable("zig", main_file); |
| 141 | exe.strip = strip; | 142 | exe.strip = strip; |
| 142 | exe.install(); | 143 | exe.install(); |
| 143 | exe.setBuildMode(mode); | 144 | exe.setBuildMode(mode); |
| ... | @@ -145,6 +146,7 @@ pub fn build(b: *Builder) !void { | ... | @@ -145,6 +146,7 @@ pub fn build(b: *Builder) !void { |
| 145 | if (!skip_stage2_tests) { | 146 | if (!skip_stage2_tests) { |
| 146 | toolchain_step.dependOn(&exe.step); | 147 | toolchain_step.dependOn(&exe.step); |
| 147 | } | 148 | } |
| | 149 | |
| 148 | b.default_step.dependOn(&exe.step); | 150 | b.default_step.dependOn(&exe.step); |
| 149 | exe.single_threaded = single_threaded; | 151 | exe.single_threaded = single_threaded; |
| 150 | | 152 | |
| ... | @@ -166,56 +168,6 @@ pub fn build(b: *Builder) !void { | ... | @@ -166,56 +168,6 @@ pub fn build(b: *Builder) !void { |
| 166 | exe_options.addOption(bool, "llvm_has_arc", llvm_has_arc); | 168 | exe_options.addOption(bool, "llvm_has_arc", llvm_has_arc); |
| 167 | exe_options.addOption(bool, "force_gpa", force_gpa); | 169 | exe_options.addOption(bool, "force_gpa", force_gpa); |
| 168 | | 170 | |
| 169 | if (enable_llvm) { | | |
| 170 | const cmake_cfg = if (static_llvm) null else findAndParseConfigH(b, config_h_path_option); | | |
| 171 | | | |
| 172 | if (is_stage1) { | | |
| 173 | exe.addIncludePath("src"); | | |
| 174 | exe.addIncludePath("deps/SoftFloat-3e/source/include"); | | |
| 175 | | | |
| 176 | test_stage2.addIncludePath("src"); | | |
| 177 | test_stage2.addIncludePath("deps/SoftFloat-3e/source/include"); | | |
| 178 | // This is intentionally a dummy path. stage1.zig tries to @import("compiler_rt") in case | | |
| 179 | // of being built by cmake. But when built by zig it's gonna get a compiler_rt so that | | |
| 180 | // is pointless. | | |
| 181 | exe.addPackagePath("compiler_rt", "src/empty.zig"); | | |
| 182 | exe.defineCMacro("ZIG_LINK_MODE", "Static"); | | |
| 183 | test_stage2.defineCMacro("ZIG_LINK_MODE", "Static"); | | |
| 184 | | | |
| 185 | const softfloat = b.addStaticLibrary("softfloat", null); | | |
| 186 | softfloat.setBuildMode(.ReleaseFast); | | |
| 187 | softfloat.setTarget(target); | | |
| 188 | softfloat.addIncludePath("deps/SoftFloat-3e-prebuilt"); | | |
| 189 | softfloat.addIncludePath("deps/SoftFloat-3e/source/8086"); | | |
| 190 | softfloat.addIncludePath("deps/SoftFloat-3e/source/include"); | | |
| 191 | softfloat.addCSourceFiles(&softfloat_sources, &[_][]const u8{ "-std=c99", "-O3" }); | | |
| 192 | softfloat.single_threaded = single_threaded; | | |
| 193 | | | |
| 194 | exe.linkLibrary(softfloat); | | |
| 195 | test_stage2.linkLibrary(softfloat); | | |
| 196 | | | |
| 197 | exe.addCSourceFiles(&stage1_sources, &exe_cflags); | | |
| 198 | exe.addCSourceFiles(&optimized_c_sources, &[_][]const u8{ "-std=c99", "-O3" }); | | |
| 199 | | | |
| 200 | test_stage2.addCSourceFiles(&stage1_sources, &exe_cflags); | | |
| 201 | test_stage2.addCSourceFiles(&optimized_c_sources, &[_][]const u8{ "-std=c99", "-O3" }); | | |
| 202 | } | | |
| 203 | if (cmake_cfg) |cfg| { | | |
| 204 | // Inside this code path, we have to coordinate with system packaged LLVM, Clang, and LLD. | | |
| 205 | // That means we also have to rely on stage1 compiled c++ files. We parse config.h to find | | |
| 206 | // the information passed on to us from cmake. | | |
| 207 | if (cfg.cmake_prefix_path.len > 0) { | | |
| 208 | b.addSearchPrefix(cfg.cmake_prefix_path); | | |
| 209 | } | | |
| 210 | | | |
| 211 | try addCmakeCfgOptionsToExe(b, cfg, exe, use_zig_libcxx); | | |
| 212 | try addCmakeCfgOptionsToExe(b, cfg, test_stage2, use_zig_libcxx); | | |
| 213 | } else { | | |
| 214 | // Here we are -Denable-llvm but no cmake integration. | | |
| 215 | try addStaticLlvmOptionsToExe(exe); | | |
| 216 | try addStaticLlvmOptionsToExe(test_stage2); | | |
| 217 | } | | |
| 218 | } | | |
| 219 | if (link_libc) { | 171 | if (link_libc) { |
| 220 | exe.linkLibC(); | 172 | exe.linkLibC(); |
| 221 | test_stage2.linkLibC(); | 173 | test_stage2.linkLibC(); |
| ... | @@ -227,12 +179,12 @@ pub fn build(b: *Builder) !void { | ... | @@ -227,12 +179,12 @@ pub fn build(b: *Builder) !void { |
| 227 | | 179 | |
| 228 | const opt_version_string = b.option([]const u8, "version-string", "Override Zig version string. Default is to find out with git."); | 180 | const opt_version_string = b.option([]const u8, "version-string", "Override Zig version string. Default is to find out with git."); |
| 229 | const version = if (opt_version_string) |version| version else v: { | 181 | const version = if (opt_version_string) |version| version else v: { |
| 230 | const version_string = b.fmt("{d}.{d}.{d}", .{ zig_version.major, zig_version.minor, zig_version.patch }); | | |
| 231 | | | |
| 232 | if (!std.process.can_spawn) { | 182 | if (!std.process.can_spawn) { |
| 233 | std.debug.print("error: version info cannot be retrieved from git. Zig version must be provided using -Dversion-string\n", .{}); | 183 | std.debug.print("error: version info cannot be retrieved from git. Zig version must be provided using -Dversion-string\n", .{}); |
| 234 | std.process.exit(1); | 184 | std.process.exit(1); |
| 235 | } | 185 | } |
| | 186 | const version_string = b.fmt("{d}.{d}.{d}", .{ zig_version.major, zig_version.minor, zig_version.patch }); |
| | 187 | |
| 236 | var code: u8 = undefined; | 188 | var code: u8 = undefined; |
| 237 | const git_describe_untrimmed = b.execAllowFail(&[_][]const u8{ | 189 | const git_describe_untrimmed = b.execAllowFail(&[_][]const u8{ |
| 238 | "git", "-C", b.build_root, "describe", "--match", "*.*.*", "--tags", | 190 | "git", "-C", b.build_root, "describe", "--match", "*.*.*", "--tags", |
| ... | @@ -280,6 +232,108 @@ pub fn build(b: *Builder) !void { | ... | @@ -280,6 +232,108 @@ pub fn build(b: *Builder) !void { |
| 280 | }; | 232 | }; |
| 281 | exe_options.addOption([:0]const u8, "version", try b.allocator.dupeZ(u8, version)); | 233 | exe_options.addOption([:0]const u8, "version", try b.allocator.dupeZ(u8, version)); |
| 282 | | 234 | |
| | 235 | if (enable_llvm) { |
| | 236 | const cmake_cfg = if (static_llvm) null else findAndParseConfigH(b, config_h_path_option); |
| | 237 | |
| | 238 | if (is_stage1) { |
| | 239 | const softfloat = b.addStaticLibrary("softfloat", null); |
| | 240 | softfloat.setBuildMode(.ReleaseFast); |
| | 241 | softfloat.setTarget(target); |
| | 242 | softfloat.addIncludePath("deps/SoftFloat-3e-prebuilt"); |
| | 243 | softfloat.addIncludePath("deps/SoftFloat-3e/source/8086"); |
| | 244 | softfloat.addIncludePath("deps/SoftFloat-3e/source/include"); |
| | 245 | softfloat.addCSourceFiles(&softfloat_sources, &[_][]const u8{ "-std=c99", "-O3" }); |
| | 246 | softfloat.single_threaded = single_threaded; |
| | 247 | |
| | 248 | const zig0 = b.addExecutable("zig0", null); |
| | 249 | zig0.addCSourceFiles(&.{"src/stage1/zig0.cpp"}, &exe_cflags); |
| | 250 | zig0.addIncludePath("zig-cache/tmp"); // for config.h |
| | 251 | zig0.defineCMacro("ZIG_VERSION_MAJOR", b.fmt("{d}", .{zig_version.major})); |
| | 252 | zig0.defineCMacro("ZIG_VERSION_MINOR", b.fmt("{d}", .{zig_version.minor})); |
| | 253 | zig0.defineCMacro("ZIG_VERSION_PATCH", b.fmt("{d}", .{zig_version.patch})); |
| | 254 | zig0.defineCMacro("ZIG_VERSION_STRING", b.fmt("\"{s}\"", .{version})); |
| | 255 | |
| | 256 | for ([_]*std.build.LibExeObjStep{ zig0, exe }) |artifact| { |
| | 257 | artifact.addIncludePath("src"); |
| | 258 | artifact.addIncludePath("deps/SoftFloat-3e/source/include"); |
| | 259 | artifact.addIncludePath("deps/SoftFloat-3e-prebuilt"); |
| | 260 | |
| | 261 | artifact.defineCMacro("ZIG_LINK_MODE", "Static"); |
| | 262 | |
| | 263 | artifact.addCSourceFiles(&stage1_sources, &exe_cflags); |
| | 264 | artifact.addCSourceFiles(&optimized_c_sources, &[_][]const u8{ "-std=c99", "-O3" }); |
| | 265 | |
| | 266 | artifact.linkLibrary(softfloat); |
| | 267 | artifact.linkLibCpp(); |
| | 268 | } |
| | 269 | |
| | 270 | try addStaticLlvmOptionsToExe(zig0); |
| | 271 | |
| | 272 | const zig1_obj_ext = target.getObjectFormat().fileExt(target.getCpuArch()); |
| | 273 | const zig1_obj_path = b.pathJoin(&.{ "zig-cache", "tmp", b.fmt("zig1{s}", .{zig1_obj_ext}) }); |
| | 274 | const zig1_compiler_rt_path = b.pathJoin(&.{ b.pathFromRoot("lib"), "std", "special", "compiler_rt.zig" }); |
| | 275 | |
| | 276 | const zig1_obj = zig0.run(); |
| | 277 | zig1_obj.addArgs(&.{ |
| | 278 | "src/stage1.zig", |
| | 279 | "-target", |
| | 280 | try target.zigTriple(b.allocator), |
| | 281 | "-mcpu=baseline", |
| | 282 | "--name", |
| | 283 | "zig1", |
| | 284 | "--zig-lib-dir", |
| | 285 | b.pathFromRoot("lib"), |
| | 286 | b.fmt("-femit-bin={s}", .{b.pathFromRoot(zig1_obj_path)}), |
| | 287 | "-fcompiler-rt", |
| | 288 | "-lc", |
| | 289 | }); |
| | 290 | { |
| | 291 | zig1_obj.addArgs(&.{ "--pkg-begin", "build_options" }); |
| | 292 | zig1_obj.addFileSourceArg(exe_options.getSource()); |
| | 293 | zig1_obj.addArgs(&.{ "--pkg-end", "--pkg-begin", "compiler_rt", zig1_compiler_rt_path, "--pkg-end" }); |
| | 294 | } |
| | 295 | switch (mode) { |
| | 296 | .Debug => {}, |
| | 297 | .ReleaseFast => { |
| | 298 | zig1_obj.addArg("-OReleaseFast"); |
| | 299 | zig1_obj.addArg("--strip"); |
| | 300 | }, |
| | 301 | .ReleaseSafe => { |
| | 302 | zig1_obj.addArg("-OReleaseSafe"); |
| | 303 | zig1_obj.addArg("--strip"); |
| | 304 | }, |
| | 305 | .ReleaseSmall => { |
| | 306 | zig1_obj.addArg("-OReleaseSmall"); |
| | 307 | zig1_obj.addArg("--strip"); |
| | 308 | }, |
| | 309 | } |
| | 310 | if (single_threaded orelse false) { |
| | 311 | zig1_obj.addArg("-fsingle-threaded"); |
| | 312 | } |
| | 313 | |
| | 314 | exe.step.dependOn(&zig1_obj.step); |
| | 315 | exe.addObjectFile(zig1_obj_path); |
| | 316 | |
| | 317 | // This is intentionally a dummy path. stage1.zig tries to @import("compiler_rt") in case |
| | 318 | // of being built by cmake. But when built by zig it's gonna get a compiler_rt so that |
| | 319 | // is pointless. |
| | 320 | exe.addPackagePath("compiler_rt", "src/empty.zig"); |
| | 321 | } |
| | 322 | if (cmake_cfg) |cfg| { |
| | 323 | // Inside this code path, we have to coordinate with system packaged LLVM, Clang, and LLD. |
| | 324 | // That means we also have to rely on stage1 compiled c++ files. We parse config.h to find |
| | 325 | // the information passed on to us from cmake. |
| | 326 | if (cfg.cmake_prefix_path.len > 0) { |
| | 327 | b.addSearchPrefix(cfg.cmake_prefix_path); |
| | 328 | } |
| | 329 | |
| | 330 | try addCmakeCfgOptionsToExe(b, cfg, exe, use_zig_libcxx); |
| | 331 | } else { |
| | 332 | // Here we are -Denable-llvm but no cmake integration. |
| | 333 | try addStaticLlvmOptionsToExe(exe); |
| | 334 | } |
| | 335 | } |
| | 336 | |
| 283 | const semver = try std.SemanticVersion.parse(version); | 337 | const semver = try std.SemanticVersion.parse(version); |
| 284 | exe_options.addOption(std.SemanticVersion, "semver", semver); | 338 | exe_options.addOption(std.SemanticVersion, "semver", semver); |
| 285 | | 339 | |
| ... | @@ -548,7 +602,6 @@ fn addCxxKnownPath( | ... | @@ -548,7 +602,6 @@ fn addCxxKnownPath( |
| 548 | ) !void { | 602 | ) !void { |
| 549 | if (!std.process.can_spawn) | 603 | if (!std.process.can_spawn) |
| 550 | return error.RequiredLibraryNotFound; | 604 | return error.RequiredLibraryNotFound; |
| 551 | | | |
| 552 | const path_padded = try b.exec(&[_][]const u8{ | 605 | const path_padded = try b.exec(&[_][]const u8{ |
| 553 | ctx.cxx_compiler, | 606 | ctx.cxx_compiler, |
| 554 | b.fmt("-print-file-name={s}", .{objname}), | 607 | b.fmt("-print-file-name={s}", .{objname}), |
| ... | @@ -695,15 +748,19 @@ fn toNativePathSep(b: *Builder, s: []const u8) []u8 { | ... | @@ -695,15 +748,19 @@ fn toNativePathSep(b: *Builder, s: []const u8) []u8 { |
| 695 | | 748 | |
| 696 | const softfloat_sources = [_][]const u8{ | 749 | const softfloat_sources = [_][]const u8{ |
| 697 | "deps/SoftFloat-3e/source/8086/f128M_isSignalingNaN.c", | 750 | "deps/SoftFloat-3e/source/8086/f128M_isSignalingNaN.c", |
| | 751 | "deps/SoftFloat-3e/source/8086/extF80M_isSignalingNaN.c", |
| 698 | "deps/SoftFloat-3e/source/8086/s_commonNaNToF128M.c", | 752 | "deps/SoftFloat-3e/source/8086/s_commonNaNToF128M.c", |
| | 753 | "deps/SoftFloat-3e/source/8086/s_commonNaNToExtF80M.c", |
| 699 | "deps/SoftFloat-3e/source/8086/s_commonNaNToF16UI.c", | 754 | "deps/SoftFloat-3e/source/8086/s_commonNaNToF16UI.c", |
| 700 | "deps/SoftFloat-3e/source/8086/s_commonNaNToF32UI.c", | 755 | "deps/SoftFloat-3e/source/8086/s_commonNaNToF32UI.c", |
| 701 | "deps/SoftFloat-3e/source/8086/s_commonNaNToF64UI.c", | 756 | "deps/SoftFloat-3e/source/8086/s_commonNaNToF64UI.c", |
| 702 | "deps/SoftFloat-3e/source/8086/s_f128MToCommonNaN.c", | 757 | "deps/SoftFloat-3e/source/8086/s_f128MToCommonNaN.c", |
| | 758 | "deps/SoftFloat-3e/source/8086/s_extF80MToCommonNaN.c", |
| 703 | "deps/SoftFloat-3e/source/8086/s_f16UIToCommonNaN.c", | 759 | "deps/SoftFloat-3e/source/8086/s_f16UIToCommonNaN.c", |
| 704 | "deps/SoftFloat-3e/source/8086/s_f32UIToCommonNaN.c", | 760 | "deps/SoftFloat-3e/source/8086/s_f32UIToCommonNaN.c", |
| 705 | "deps/SoftFloat-3e/source/8086/s_f64UIToCommonNaN.c", | 761 | "deps/SoftFloat-3e/source/8086/s_f64UIToCommonNaN.c", |
| 706 | "deps/SoftFloat-3e/source/8086/s_propagateNaNF128M.c", | 762 | "deps/SoftFloat-3e/source/8086/s_propagateNaNF128M.c", |
| | 763 | "deps/SoftFloat-3e/source/8086/s_propagateNaNExtF80M.c", |
| 707 | "deps/SoftFloat-3e/source/8086/s_propagateNaNF16UI.c", | 764 | "deps/SoftFloat-3e/source/8086/s_propagateNaNF16UI.c", |
| 708 | "deps/SoftFloat-3e/source/8086/softfloat_raiseFlags.c", | 765 | "deps/SoftFloat-3e/source/8086/softfloat_raiseFlags.c", |
| 709 | "deps/SoftFloat-3e/source/f128M_add.c", | 766 | "deps/SoftFloat-3e/source/f128M_add.c", |
| ... | @@ -723,6 +780,7 @@ const softfloat_sources = [_][]const u8{ | ... | @@ -723,6 +780,7 @@ const softfloat_sources = [_][]const u8{ |
| 723 | "deps/SoftFloat-3e/source/f128M_to_f16.c", | 780 | "deps/SoftFloat-3e/source/f128M_to_f16.c", |
| 724 | "deps/SoftFloat-3e/source/f128M_to_f32.c", | 781 | "deps/SoftFloat-3e/source/f128M_to_f32.c", |
| 725 | "deps/SoftFloat-3e/source/f128M_to_f64.c", | 782 | "deps/SoftFloat-3e/source/f128M_to_f64.c", |
| | 783 | "deps/SoftFloat-3e/source/f128M_to_extF80M.c", |
| 726 | "deps/SoftFloat-3e/source/f128M_to_i32.c", | 784 | "deps/SoftFloat-3e/source/f128M_to_i32.c", |
| 727 | "deps/SoftFloat-3e/source/f128M_to_i32_r_minMag.c", | 785 | "deps/SoftFloat-3e/source/f128M_to_i32_r_minMag.c", |
| 728 | "deps/SoftFloat-3e/source/f128M_to_i64.c", | 786 | "deps/SoftFloat-3e/source/f128M_to_i64.c", |
| ... | @@ -731,6 +789,20 @@ const softfloat_sources = [_][]const u8{ | ... | @@ -731,6 +789,20 @@ const softfloat_sources = [_][]const u8{ |
| 731 | "deps/SoftFloat-3e/source/f128M_to_ui32_r_minMag.c", | 789 | "deps/SoftFloat-3e/source/f128M_to_ui32_r_minMag.c", |
| 732 | "deps/SoftFloat-3e/source/f128M_to_ui64.c", | 790 | "deps/SoftFloat-3e/source/f128M_to_ui64.c", |
| 733 | "deps/SoftFloat-3e/source/f128M_to_ui64_r_minMag.c", | 791 | "deps/SoftFloat-3e/source/f128M_to_ui64_r_minMag.c", |
| | 792 | "deps/SoftFloat-3e/source/extF80M_add.c", |
| | 793 | "deps/SoftFloat-3e/source/extF80M_div.c", |
| | 794 | "deps/SoftFloat-3e/source/extF80M_eq.c", |
| | 795 | "deps/SoftFloat-3e/source/extF80M_le.c", |
| | 796 | "deps/SoftFloat-3e/source/extF80M_lt.c", |
| | 797 | "deps/SoftFloat-3e/source/extF80M_mul.c", |
| | 798 | "deps/SoftFloat-3e/source/extF80M_rem.c", |
| | 799 | "deps/SoftFloat-3e/source/extF80M_roundToInt.c", |
| | 800 | "deps/SoftFloat-3e/source/extF80M_sqrt.c", |
| | 801 | "deps/SoftFloat-3e/source/extF80M_sub.c", |
| | 802 | "deps/SoftFloat-3e/source/extF80M_to_f16.c", |
| | 803 | "deps/SoftFloat-3e/source/extF80M_to_f32.c", |
| | 804 | "deps/SoftFloat-3e/source/extF80M_to_f64.c", |
| | 805 | "deps/SoftFloat-3e/source/extF80M_to_f128M.c", |
| 734 | "deps/SoftFloat-3e/source/f16_add.c", | 806 | "deps/SoftFloat-3e/source/f16_add.c", |
| 735 | "deps/SoftFloat-3e/source/f16_div.c", | 807 | "deps/SoftFloat-3e/source/f16_div.c", |
| 736 | "deps/SoftFloat-3e/source/f16_eq.c", | 808 | "deps/SoftFloat-3e/source/f16_eq.c", |
| ... | @@ -742,9 +814,12 @@ const softfloat_sources = [_][]const u8{ | ... | @@ -742,9 +814,12 @@ const softfloat_sources = [_][]const u8{ |
| 742 | "deps/SoftFloat-3e/source/f16_roundToInt.c", | 814 | "deps/SoftFloat-3e/source/f16_roundToInt.c", |
| 743 | "deps/SoftFloat-3e/source/f16_sqrt.c", | 815 | "deps/SoftFloat-3e/source/f16_sqrt.c", |
| 744 | "deps/SoftFloat-3e/source/f16_sub.c", | 816 | "deps/SoftFloat-3e/source/f16_sub.c", |
| | 817 | "deps/SoftFloat-3e/source/f16_to_extF80M.c", |
| 745 | "deps/SoftFloat-3e/source/f16_to_f128M.c", | 818 | "deps/SoftFloat-3e/source/f16_to_f128M.c", |
| 746 | "deps/SoftFloat-3e/source/f16_to_f64.c", | 819 | "deps/SoftFloat-3e/source/f16_to_f64.c", |
| | 820 | "deps/SoftFloat-3e/source/f32_to_extF80M.c", |
| 747 | "deps/SoftFloat-3e/source/f32_to_f128M.c", | 821 | "deps/SoftFloat-3e/source/f32_to_f128M.c", |
| | 822 | "deps/SoftFloat-3e/source/f64_to_extF80M.c", |
| 748 | "deps/SoftFloat-3e/source/f64_to_f128M.c", | 823 | "deps/SoftFloat-3e/source/f64_to_f128M.c", |
| 749 | "deps/SoftFloat-3e/source/f64_to_f16.c", | 824 | "deps/SoftFloat-3e/source/f64_to_f16.c", |
| 750 | "deps/SoftFloat-3e/source/i32_to_f128M.c", | 825 | "deps/SoftFloat-3e/source/i32_to_f128M.c", |
| ... | @@ -752,6 +827,7 @@ const softfloat_sources = [_][]const u8{ | ... | @@ -752,6 +827,7 @@ const softfloat_sources = [_][]const u8{ |
| 752 | "deps/SoftFloat-3e/source/s_addCarryM.c", | 827 | "deps/SoftFloat-3e/source/s_addCarryM.c", |
| 753 | "deps/SoftFloat-3e/source/s_addComplCarryM.c", | 828 | "deps/SoftFloat-3e/source/s_addComplCarryM.c", |
| 754 | "deps/SoftFloat-3e/source/s_addF128M.c", | 829 | "deps/SoftFloat-3e/source/s_addF128M.c", |
| | 830 | "deps/SoftFloat-3e/source/s_addExtF80M.c", |
| 755 | "deps/SoftFloat-3e/source/s_addM.c", | 831 | "deps/SoftFloat-3e/source/s_addM.c", |
| 756 | "deps/SoftFloat-3e/source/s_addMagsF16.c", | 832 | "deps/SoftFloat-3e/source/s_addMagsF16.c", |
| 757 | "deps/SoftFloat-3e/source/s_addMagsF32.c", | 833 | "deps/SoftFloat-3e/source/s_addMagsF32.c", |
| ... | @@ -762,12 +838,14 @@ const softfloat_sources = [_][]const u8{ | ... | @@ -762,12 +838,14 @@ const softfloat_sources = [_][]const u8{ |
| 762 | "deps/SoftFloat-3e/source/s_approxRecip_1Ks.c", | 838 | "deps/SoftFloat-3e/source/s_approxRecip_1Ks.c", |
| 763 | "deps/SoftFloat-3e/source/s_compare128M.c", | 839 | "deps/SoftFloat-3e/source/s_compare128M.c", |
| 764 | "deps/SoftFloat-3e/source/s_compare96M.c", | 840 | "deps/SoftFloat-3e/source/s_compare96M.c", |
| | 841 | "deps/SoftFloat-3e/source/s_compareNonnormExtF80M.c", |
| 765 | "deps/SoftFloat-3e/source/s_countLeadingZeros16.c", | 842 | "deps/SoftFloat-3e/source/s_countLeadingZeros16.c", |
| 766 | "deps/SoftFloat-3e/source/s_countLeadingZeros32.c", | 843 | "deps/SoftFloat-3e/source/s_countLeadingZeros32.c", |
| 767 | "deps/SoftFloat-3e/source/s_countLeadingZeros64.c", | 844 | "deps/SoftFloat-3e/source/s_countLeadingZeros64.c", |
| 768 | "deps/SoftFloat-3e/source/s_countLeadingZeros8.c", | 845 | "deps/SoftFloat-3e/source/s_countLeadingZeros8.c", |
| 769 | "deps/SoftFloat-3e/source/s_eq128.c", | 846 | "deps/SoftFloat-3e/source/s_eq128.c", |
| 770 | "deps/SoftFloat-3e/source/s_invalidF128M.c", | 847 | "deps/SoftFloat-3e/source/s_invalidF128M.c", |
| | 848 | "deps/SoftFloat-3e/source/s_invalidExtF80M.c", |
| 771 | "deps/SoftFloat-3e/source/s_isNaNF128M.c", | 849 | "deps/SoftFloat-3e/source/s_isNaNF128M.c", |
| 772 | "deps/SoftFloat-3e/source/s_le128.c", | 850 | "deps/SoftFloat-3e/source/s_le128.c", |
| 773 | "deps/SoftFloat-3e/source/s_lt128.c", | 851 | "deps/SoftFloat-3e/source/s_lt128.c", |
| ... | @@ -778,7 +856,9 @@ const softfloat_sources = [_][]const u8{ | ... | @@ -778,7 +856,9 @@ const softfloat_sources = [_][]const u8{ |
| 778 | "deps/SoftFloat-3e/source/s_mulAddF32.c", | 856 | "deps/SoftFloat-3e/source/s_mulAddF32.c", |
| 779 | "deps/SoftFloat-3e/source/s_mulAddF64.c", | 857 | "deps/SoftFloat-3e/source/s_mulAddF64.c", |
| 780 | "deps/SoftFloat-3e/source/s_negXM.c", | 858 | "deps/SoftFloat-3e/source/s_negXM.c", |
| | 859 | "deps/SoftFloat-3e/source/s_normExtF80SigM.c", |
| 781 | "deps/SoftFloat-3e/source/s_normRoundPackMToF128M.c", | 860 | "deps/SoftFloat-3e/source/s_normRoundPackMToF128M.c", |
| | 861 | "deps/SoftFloat-3e/source/s_normRoundPackMToExtF80M.c", |
| 782 | "deps/SoftFloat-3e/source/s_normRoundPackToF16.c", | 862 | "deps/SoftFloat-3e/source/s_normRoundPackToF16.c", |
| 783 | "deps/SoftFloat-3e/source/s_normRoundPackToF32.c", | 863 | "deps/SoftFloat-3e/source/s_normRoundPackToF32.c", |
| 784 | "deps/SoftFloat-3e/source/s_normRoundPackToF64.c", | 864 | "deps/SoftFloat-3e/source/s_normRoundPackToF64.c", |
| ... | @@ -789,6 +869,7 @@ const softfloat_sources = [_][]const u8{ | ... | @@ -789,6 +869,7 @@ const softfloat_sources = [_][]const u8{ |
| 789 | "deps/SoftFloat-3e/source/s_remStepMBy32.c", | 869 | "deps/SoftFloat-3e/source/s_remStepMBy32.c", |
| 790 | "deps/SoftFloat-3e/source/s_roundMToI64.c", | 870 | "deps/SoftFloat-3e/source/s_roundMToI64.c", |
| 791 | "deps/SoftFloat-3e/source/s_roundMToUI64.c", | 871 | "deps/SoftFloat-3e/source/s_roundMToUI64.c", |
| | 872 | "deps/SoftFloat-3e/source/s_roundPackMToExtF80M.c", |
| 792 | "deps/SoftFloat-3e/source/s_roundPackMToF128M.c", | 873 | "deps/SoftFloat-3e/source/s_roundPackMToF128M.c", |
| 793 | "deps/SoftFloat-3e/source/s_roundPackToF16.c", | 874 | "deps/SoftFloat-3e/source/s_roundPackToF16.c", |
| 794 | "deps/SoftFloat-3e/source/s_roundPackToF32.c", | 875 | "deps/SoftFloat-3e/source/s_roundPackToF32.c", |
| ... | @@ -817,9 +898,12 @@ const softfloat_sources = [_][]const u8{ | ... | @@ -817,9 +898,12 @@ const softfloat_sources = [_][]const u8{ |
| 817 | "deps/SoftFloat-3e/source/s_subMagsF32.c", | 898 | "deps/SoftFloat-3e/source/s_subMagsF32.c", |
| 818 | "deps/SoftFloat-3e/source/s_subMagsF64.c", | 899 | "deps/SoftFloat-3e/source/s_subMagsF64.c", |
| 819 | "deps/SoftFloat-3e/source/s_tryPropagateNaNF128M.c", | 900 | "deps/SoftFloat-3e/source/s_tryPropagateNaNF128M.c", |
| | 901 | "deps/SoftFloat-3e/source/s_tryPropagateNaNExtF80M.c", |
| 820 | "deps/SoftFloat-3e/source/softfloat_state.c", | 902 | "deps/SoftFloat-3e/source/softfloat_state.c", |
| 821 | "deps/SoftFloat-3e/source/ui32_to_f128M.c", | 903 | "deps/SoftFloat-3e/source/ui32_to_f128M.c", |
| 822 | "deps/SoftFloat-3e/source/ui64_to_f128M.c", | 904 | "deps/SoftFloat-3e/source/ui64_to_f128M.c", |
| | 905 | "deps/SoftFloat-3e/source/ui32_to_extF80M.c", |
| | 906 | "deps/SoftFloat-3e/source/ui64_to_extF80M.c", |
| 823 | }; | 907 | }; |
| 824 | | 908 | |
| 825 | const stage1_sources = [_][]const u8{ | 909 | const stage1_sources = [_][]const u8{ |