| ... | @@ -45,6 +45,8 @@ const test_targets = blk: { | ... | @@ -45,6 +45,8 @@ const test_targets = blk: { |
| 45 | // lot of branches) | 45 | // lot of branches) |
| 46 | @setEvalBranchQuota(50000); | 46 | @setEvalBranchQuota(50000); |
| 47 | break :blk [_]TestTarget{ | 47 | break :blk [_]TestTarget{ |
| | 48 | // Native Targets |
| | 49 | |
| 48 | .{}, | 50 | .{}, |
| 49 | .{ | 51 | .{ |
| 50 | .link_libc = true, | 52 | .link_libc = true, |
| ... | @@ -52,6 +54,7 @@ const test_targets = blk: { | ... | @@ -52,6 +54,7 @@ const test_targets = blk: { |
| 52 | .{ | 54 | .{ |
| 53 | .single_threaded = true, | 55 | .single_threaded = true, |
| 54 | }, | 56 | }, |
| | 57 | |
| 55 | .{ | 58 | .{ |
| 56 | .optimize_mode = .ReleaseFast, | 59 | .optimize_mode = .ReleaseFast, |
| 57 | }, | 60 | }, |
| ... | @@ -94,226 +97,8 @@ const test_targets = blk: { | ... | @@ -94,226 +97,8 @@ const test_targets = blk: { |
| 94 | }, | 97 | }, |
| 95 | .link_libc = true, | 98 | .link_libc = true, |
| 96 | }, | 99 | }, |
| 97 | .{ | | |
| 98 | .target = .{ | | |
| 99 | .cpu_arch = .x86_64, | | |
| 100 | .os_tag = .linux, | | |
| 101 | .abi = .none, | | |
| 102 | }, | | |
| 103 | .use_llvm = false, | | |
| 104 | .use_lld = false, | | |
| 105 | }, | | |
| 106 | .{ | | |
| 107 | .target = .{ | | |
| 108 | .cpu_arch = .x86_64, | | |
| 109 | .cpu_model = .{ .explicit = &std.Target.x86.cpu.x86_64_v2 }, | | |
| 110 | .os_tag = .linux, | | |
| 111 | .abi = .none, | | |
| 112 | }, | | |
| 113 | .use_llvm = false, | | |
| 114 | .use_lld = false, | | |
| 115 | .pic = true, | | |
| 116 | }, | | |
| 117 | .{ | | |
| 118 | .target = .{ | | |
| 119 | .cpu_arch = .x86_64, | | |
| 120 | .cpu_model = .{ .explicit = &std.Target.x86.cpu.x86_64_v3 }, | | |
| 121 | .os_tag = .linux, | | |
| 122 | .abi = .none, | | |
| 123 | }, | | |
| 124 | .use_llvm = false, | | |
| 125 | .use_lld = false, | | |
| 126 | .strip = true, | | |
| 127 | }, | | |
| 128 | // Doesn't support new liveness | | |
| 129 | //.{ | | |
| 130 | // .target = .{ | | |
| 131 | // .cpu_arch = .aarch64, | | |
| 132 | // .os_tag = .linux, | | |
| 133 | // }, | | |
| 134 | // .use_llvm = false, | | |
| 135 | // .use_lld = false, | | |
| 136 | //}, | | |
| 137 | .{ | | |
| 138 | .target = .{ | | |
| 139 | .cpu_arch = .wasm32, | | |
| 140 | .os_tag = .wasi, | | |
| 141 | }, | | |
| 142 | .use_llvm = false, | | |
| 143 | .use_lld = false, | | |
| 144 | }, | | |
| 145 | .{ | | |
| 146 | .target = std.Target.Query.parse(.{ | | |
| 147 | .arch_os_abi = "spirv64-vulkan", | | |
| 148 | .cpu_features = "vulkan_v1_2+physical_storage_buffer+int64+float16+float64", | | |
| 149 | }) catch unreachable, | | |
| 150 | .use_llvm = false, | | |
| 151 | .use_lld = false, | | |
| 152 | .skip_modules = &.{ "c-import", "zigc", "std" }, | | |
| 153 | }, | | |
| 154 | // https://github.com/ziglang/zig/issues/13623 | | |
| 155 | //.{ | | |
| 156 | // .target = .{ | | |
| 157 | // .cpu_arch = .arm, | | |
| 158 | // .os_tag = .linux, | | |
| 159 | // }, | | |
| 160 | // .use_llvm = false, | | |
| 161 | // .use_lld = false, | | |
| 162 | //}, | | |
| 163 | // https://github.com/ziglang/zig/issues/13623 | | |
| 164 | //.{ | | |
| 165 | // .target = std.Target.Query.parse(.{ | | |
| 166 | // .arch_os_abi = "arm-linux-none", | | |
| 167 | // .cpu_features = "generic+v8a", | | |
| 168 | // }) catch unreachable, | | |
| 169 | // .use_llvm = false, | | |
| 170 | // .use_lld = false, | | |
| 171 | //}, | | |
| 172 | // Doesn't support new liveness | | |
| 173 | //.{ | | |
| 174 | // .target = .{ | | |
| 175 | // .cpu_arch = .aarch64, | | |
| 176 | // .os_tag = .macos, | | |
| 177 | // .abi = .none, | | |
| 178 | // }, | | |
| 179 | // .use_llvm = false, | | |
| 180 | // .use_lld = false, | | |
| 181 | //}, | | |
| 182 | .{ | | |
| 183 | .target = .{ | | |
| 184 | .cpu_arch = .x86_64, | | |
| 185 | .os_tag = .macos, | | |
| 186 | .abi = .none, | | |
| 187 | }, | | |
| 188 | .use_llvm = false, | | |
| 189 | .use_lld = false, | | |
| 190 | }, | | |
| 191 | .{ | | |
| 192 | .target = .{ | | |
| 193 | .cpu_arch = .x86_64, | | |
| 194 | .os_tag = .windows, | | |
| 195 | .abi = .gnu, | | |
| 196 | }, | | |
| 197 | .use_llvm = false, | | |
| 198 | .use_lld = false, | | |
| 199 | }, | | |
| 200 | | | |
| 201 | .{ | | |
| 202 | .target = .{ | | |
| 203 | .cpu_arch = .wasm32, | | |
| 204 | .os_tag = .wasi, | | |
| 205 | }, | | |
| 206 | .link_libc = false, | | |
| 207 | }, | | |
| 208 | .{ | | |
| 209 | .target = .{ | | |
| 210 | .cpu_arch = .wasm32, | | |
| 211 | .os_tag = .wasi, | | |
| 212 | }, | | |
| 213 | .link_libc = true, | | |
| 214 | }, | | |
| 215 | | | |
| 216 | .{ | | |
| 217 | .target = .{ | | |
| 218 | .cpu_arch = .x86_64, | | |
| 219 | .os_tag = .linux, | | |
| 220 | .abi = .none, | | |
| 221 | }, | | |
| 222 | }, | | |
| 223 | .{ | | |
| 224 | .target = .{ | | |
| 225 | .cpu_arch = .x86_64, | | |
| 226 | .os_tag = .linux, | | |
| 227 | .abi = .gnu, | | |
| 228 | }, | | |
| 229 | .link_libc = true, | | |
| 230 | }, | | |
| 231 | .{ | | |
| 232 | .target = .{ | | |
| 233 | .cpu_arch = .x86_64, | | |
| 234 | .os_tag = .linux, | | |
| 235 | .abi = .gnux32, | | |
| 236 | }, | | |
| 237 | .link_libc = true, | | |
| 238 | }, | | |
| 239 | .{ | | |
| 240 | .target = .{ | | |
| 241 | .cpu_arch = .x86_64, | | |
| 242 | .os_tag = .linux, | | |
| 243 | .abi = .musl, | | |
| 244 | }, | | |
| 245 | .link_libc = true, | | |
| 246 | }, | | |
| 247 | .{ | | |
| 248 | .target = .{ | | |
| 249 | .cpu_arch = .x86_64, | | |
| 250 | .os_tag = .linux, | | |
| 251 | .abi = .musl, | | |
| 252 | }, | | |
| 253 | .linkage = .dynamic, | | |
| 254 | .link_libc = true, | | |
| 255 | }, | | |
| 256 | .{ | | |
| 257 | .target = .{ | | |
| 258 | .cpu_arch = .x86_64, | | |
| 259 | .os_tag = .linux, | | |
| 260 | .abi = .muslx32, | | |
| 261 | }, | | |
| 262 | .link_libc = true, | | |
| 263 | }, | | |
| 264 | .{ | | |
| 265 | .target = .{ | | |
| 266 | .cpu_arch = .x86_64, | | |
| 267 | .os_tag = .linux, | | |
| 268 | .abi = .muslx32, | | |
| 269 | }, | | |
| 270 | .linkage = .dynamic, | | |
| 271 | .link_libc = true, | | |
| 272 | .extra_target = true, | | |
| 273 | }, | | |
| 274 | .{ | | |
| 275 | .target = .{ | | |
| 276 | .cpu_arch = .x86_64, | | |
| 277 | .os_tag = .linux, | | |
| 278 | .abi = .musl, | | |
| 279 | }, | | |
| 280 | .link_libc = true, | | |
| 281 | .use_lld = false, | | |
| 282 | }, | | |
| 283 | | 100 | |
| 284 | .{ | 101 | // Linux Targets |
| 285 | .target = .{ | | |
| 286 | .cpu_arch = .x86, | | |
| 287 | .os_tag = .linux, | | |
| 288 | .abi = .none, | | |
| 289 | }, | | |
| 290 | }, | | |
| 291 | .{ | | |
| 292 | .target = .{ | | |
| 293 | .cpu_arch = .x86, | | |
| 294 | .os_tag = .linux, | | |
| 295 | .abi = .musl, | | |
| 296 | }, | | |
| 297 | .link_libc = true, | | |
| 298 | }, | | |
| 299 | .{ | | |
| 300 | .target = .{ | | |
| 301 | .cpu_arch = .x86, | | |
| 302 | .os_tag = .linux, | | |
| 303 | .abi = .musl, | | |
| 304 | }, | | |
| 305 | .linkage = .dynamic, | | |
| 306 | .link_libc = true, | | |
| 307 | .extra_target = true, | | |
| 308 | }, | | |
| 309 | .{ | | |
| 310 | .target = .{ | | |
| 311 | .cpu_arch = .x86, | | |
| 312 | .os_tag = .linux, | | |
| 313 | .abi = .gnu, | | |
| 314 | }, | | |
| 315 | .link_libc = true, | | |
| 316 | }, | | |
| 317 | | 102 | |
| 318 | .{ | 103 | .{ |
| 319 | .target = .{ | 104 | .target = .{ |
| ... | @@ -347,14 +132,6 @@ const test_targets = blk: { | ... | @@ -347,14 +132,6 @@ const test_targets = blk: { |
| 347 | }, | 132 | }, |
| 348 | .link_libc = true, | 133 | .link_libc = true, |
| 349 | }, | 134 | }, |
| 350 | .{ | | |
| 351 | .target = .{ | | |
| 352 | .cpu_arch = .aarch64, | | |
| 353 | .os_tag = .windows, | | |
| 354 | .abi = .gnu, | | |
| 355 | }, | | |
| 356 | .link_libc = true, | | |
| 357 | }, | | |
| 358 | | 135 | |
| 359 | .{ | 136 | .{ |
| 360 | .target = .{ | 137 | .target = .{ |
| ... | @@ -528,71 +305,6 @@ const test_targets = blk: { | ... | @@ -528,71 +305,6 @@ const test_targets = blk: { |
| 528 | .link_libc = true, | 305 | .link_libc = true, |
| 529 | }, | 306 | }, |
| 530 | | 307 | |
| 531 | // Calls are normally lowered to branch instructions that only support +/- 16 MB range when | | |
| 532 | // targeting Thumb. This easily becomes insufficient for our test binaries, so use long | | |
| 533 | // calls to avoid out-of-range relocations. | | |
| 534 | .{ | | |
| 535 | .target = std.Target.Query.parse(.{ | | |
| 536 | .arch_os_abi = "thumb-linux-eabi", | | |
| 537 | .cpu_features = "baseline+long_calls", | | |
| 538 | }) catch unreachable, | | |
| 539 | .pic = false, // Long calls don't work with PIC. | | |
| 540 | }, | | |
| 541 | .{ | | |
| 542 | .target = std.Target.Query.parse(.{ | | |
| 543 | .arch_os_abi = "thumb-linux-eabihf", | | |
| 544 | .cpu_features = "baseline+long_calls", | | |
| 545 | }) catch unreachable, | | |
| 546 | .pic = false, // Long calls don't work with PIC. | | |
| 547 | }, | | |
| 548 | .{ | | |
| 549 | .target = std.Target.Query.parse(.{ | | |
| 550 | .arch_os_abi = "thumb-linux-musleabi", | | |
| 551 | .cpu_features = "baseline+long_calls", | | |
| 552 | }) catch unreachable, | | |
| 553 | .link_libc = true, | | |
| 554 | .pic = false, // Long calls don't work with PIC. | | |
| 555 | }, | | |
| 556 | .{ | | |
| 557 | .target = std.Target.Query.parse(.{ | | |
| 558 | .arch_os_abi = "thumb-linux-musleabihf", | | |
| 559 | .cpu_features = "baseline+long_calls", | | |
| 560 | }) catch unreachable, | | |
| 561 | .link_libc = true, | | |
| 562 | .pic = false, // Long calls don't work with PIC. | | |
| 563 | }, | | |
| 564 | | | |
| 565 | .{ | | |
| 566 | .target = std.Target.Query.parse(.{ | | |
| 567 | .arch_os_abi = "thumbeb-linux-eabi", | | |
| 568 | .cpu_features = "baseline+long_calls", | | |
| 569 | }) catch unreachable, | | |
| 570 | .pic = false, // Long calls don't work with PIC. | | |
| 571 | }, | | |
| 572 | .{ | | |
| 573 | .target = std.Target.Query.parse(.{ | | |
| 574 | .arch_os_abi = "thumbeb-linux-eabihf", | | |
| 575 | .cpu_features = "baseline+long_calls", | | |
| 576 | }) catch unreachable, | | |
| 577 | .pic = false, // Long calls don't work with PIC. | | |
| 578 | }, | | |
| 579 | .{ | | |
| 580 | .target = std.Target.Query.parse(.{ | | |
| 581 | .arch_os_abi = "thumbeb-linux-musleabi", | | |
| 582 | .cpu_features = "baseline+long_calls", | | |
| 583 | }) catch unreachable, | | |
| 584 | .link_libc = true, | | |
| 585 | .pic = false, // Long calls don't work with PIC. | | |
| 586 | }, | | |
| 587 | .{ | | |
| 588 | .target = std.Target.Query.parse(.{ | | |
| 589 | .arch_os_abi = "thumbeb-linux-musleabihf", | | |
| 590 | .cpu_features = "baseline+long_calls", | | |
| 591 | }) catch unreachable, | | |
| 592 | .link_libc = true, | | |
| 593 | .pic = false, // Long calls don't work with PIC. | | |
| 594 | }, | | |
| 595 | | | |
| 596 | .{ | 308 | .{ |
| 597 | .target = .{ | 309 | .target = .{ |
| 598 | .cpu_arch = .hexagon, | 310 | .cpu_arch = .hexagon, |
| ... | @@ -632,6 +344,7 @@ const test_targets = blk: { | ... | @@ -632,6 +344,7 @@ const test_targets = blk: { |
| 632 | .os_tag = .linux, | 344 | .os_tag = .linux, |
| 633 | .abi = .none, | 345 | .abi = .none, |
| 634 | }, | 346 | }, |
| | 347 | // https://github.com/ziglang/zig/issues/23696 |
| 635 | .skip_modules = &.{"std"}, | 348 | .skip_modules = &.{"std"}, |
| 636 | }, | 349 | }, |
| 637 | .{ | 350 | .{ |
| ... | @@ -641,6 +354,7 @@ const test_targets = blk: { | ... | @@ -641,6 +354,7 @@ const test_targets = blk: { |
| 641 | .abi = .musl, | 354 | .abi = .musl, |
| 642 | }, | 355 | }, |
| 643 | .link_libc = true, | 356 | .link_libc = true, |
| | 357 | // https://github.com/ziglang/zig/issues/23696 |
| 644 | .skip_modules = &.{"std"}, | 358 | .skip_modules = &.{"std"}, |
| 645 | }, | 359 | }, |
| 646 | .{ | 360 | .{ |
| ... | @@ -651,6 +365,7 @@ const test_targets = blk: { | ... | @@ -651,6 +365,7 @@ const test_targets = blk: { |
| 651 | }, | 365 | }, |
| 652 | .linkage = .dynamic, | 366 | .linkage = .dynamic, |
| 653 | .link_libc = true, | 367 | .link_libc = true, |
| | 368 | // https://github.com/ziglang/zig/issues/23696 |
| 654 | .skip_modules = &.{"std"}, | 369 | .skip_modules = &.{"std"}, |
| 655 | .extra_target = true, | 370 | .extra_target = true, |
| 656 | }, | 371 | }, |
| ... | @@ -661,6 +376,7 @@ const test_targets = blk: { | ... | @@ -661,6 +376,7 @@ const test_targets = blk: { |
| 661 | .abi = .gnu, | 376 | .abi = .gnu, |
| 662 | }, | 377 | }, |
| 663 | .link_libc = true, | 378 | .link_libc = true, |
| | 379 | // https://github.com/ziglang/zig/issues/23696 |
| 664 | .skip_modules = &.{"std"}, | 380 | .skip_modules = &.{"std"}, |
| 665 | }, | 381 | }, |
| 666 | | 382 | |
| ... | @@ -1061,20 +777,6 @@ const test_targets = blk: { | ... | @@ -1061,20 +777,6 @@ const test_targets = blk: { |
| 1061 | .link_libc = true, | 777 | .link_libc = true, |
| 1062 | }, | 778 | }, |
| 1063 | | 779 | |
| 1064 | .{ | | |
| 1065 | .target = std.Target.Query.parse(.{ | | |
| 1066 | .arch_os_abi = "riscv32-linux-none", | | |
| 1067 | .cpu_features = "baseline-d-f", | | |
| 1068 | }) catch unreachable, | | |
| 1069 | }, | | |
| 1070 | .{ | | |
| 1071 | .target = std.Target.Query.parse(.{ | | |
| 1072 | .arch_os_abi = "riscv32-linux-musl", | | |
| 1073 | .cpu_features = "baseline-d-f", | | |
| 1074 | }) catch unreachable, | | |
| 1075 | .link_libc = true, | | |
| 1076 | }, | | |
| 1077 | | | |
| 1078 | .{ | 780 | .{ |
| 1079 | .target = .{ | 781 | .target = .{ |
| 1080 | .cpu_arch = .riscv32, | 782 | .cpu_arch = .riscv32, |
| ... | @@ -1082,6 +784,12 @@ const test_targets = blk: { | ... | @@ -1082,6 +784,12 @@ const test_targets = blk: { |
| 1082 | .abi = .none, | 784 | .abi = .none, |
| 1083 | }, | 785 | }, |
| 1084 | }, | 786 | }, |
| | 787 | .{ |
| | 788 | .target = std.Target.Query.parse(.{ |
| | 789 | .arch_os_abi = "riscv32-linux-none", |
| | 790 | .cpu_features = "baseline-d-f", |
| | 791 | }) catch unreachable, |
| | 792 | }, |
| 1085 | .{ | 793 | .{ |
| 1086 | .target = .{ | 794 | .target = .{ |
| 1087 | .cpu_arch = .riscv32, | 795 | .cpu_arch = .riscv32, |
| ... | @@ -1100,6 +808,13 @@ const test_targets = blk: { | ... | @@ -1100,6 +808,13 @@ const test_targets = blk: { |
| 1100 | .link_libc = true, | 808 | .link_libc = true, |
| 1101 | .extra_target = true, | 809 | .extra_target = true, |
| 1102 | }, | 810 | }, |
| | 811 | .{ |
| | 812 | .target = std.Target.Query.parse(.{ |
| | 813 | .arch_os_abi = "riscv32-linux-musl", |
| | 814 | .cpu_features = "baseline-d-f", |
| | 815 | }) catch unreachable, |
| | 816 | .link_libc = true, |
| | 817 | }, |
| 1103 | .{ | 818 | .{ |
| 1104 | .target = .{ | 819 | .target = .{ |
| 1105 | .cpu_arch = .riscv32, | 820 | .cpu_arch = .riscv32, |
| ... | @@ -1112,17 +827,11 @@ const test_targets = blk: { | ... | @@ -1112,17 +827,11 @@ const test_targets = blk: { |
| 1112 | .{ | 827 | .{ |
| 1113 | .target = std.Target.Query.parse(.{ | 828 | .target = std.Target.Query.parse(.{ |
| 1114 | .arch_os_abi = "riscv64-linux-none", | 829 | .arch_os_abi = "riscv64-linux-none", |
| 1115 | .cpu_features = "baseline-d-f", | 830 | .cpu_features = "baseline+v+zbb", |
| 1116 | }) catch unreachable, | | |
| 1117 | }, | | |
| 1118 | .{ | | |
| 1119 | .target = std.Target.Query.parse(.{ | | |
| 1120 | .arch_os_abi = "riscv64-linux-musl", | | |
| 1121 | .cpu_features = "baseline-d-f", | | |
| 1122 | }) catch unreachable, | 831 | }) catch unreachable, |
| 1123 | .link_libc = true, | 832 | .use_llvm = false, |
| | 833 | .use_lld = false, |
| 1124 | }, | 834 | }, |
| 1125 | | | |
| 1126 | .{ | 835 | .{ |
| 1127 | .target = .{ | 836 | .target = .{ |
| 1128 | .cpu_arch = .riscv64, | 837 | .cpu_arch = .riscv64, |
| ... | @@ -1130,6 +839,12 @@ const test_targets = blk: { | ... | @@ -1130,6 +839,12 @@ const test_targets = blk: { |
| 1130 | .abi = .none, | 839 | .abi = .none, |
| 1131 | }, | 840 | }, |
| 1132 | }, | 841 | }, |
| | 842 | .{ |
| | 843 | .target = std.Target.Query.parse(.{ |
| | 844 | .arch_os_abi = "riscv64-linux-none", |
| | 845 | .cpu_features = "baseline-d-f", |
| | 846 | }) catch unreachable, |
| | 847 | }, |
| 1133 | .{ | 848 | .{ |
| 1134 | .target = .{ | 849 | .target = .{ |
| 1135 | .cpu_arch = .riscv64, | 850 | .cpu_arch = .riscv64, |
| ... | @@ -1148,6 +863,13 @@ const test_targets = blk: { | ... | @@ -1148,6 +863,13 @@ const test_targets = blk: { |
| 1148 | .link_libc = true, | 863 | .link_libc = true, |
| 1149 | .extra_target = true, | 864 | .extra_target = true, |
| 1150 | }, | 865 | }, |
| | 866 | .{ |
| | 867 | .target = std.Target.Query.parse(.{ |
| | 868 | .arch_os_abi = "riscv64-linux-musl", |
| | 869 | .cpu_features = "baseline-d-f", |
| | 870 | }) catch unreachable, |
| | 871 | .link_libc = true, |
| | 872 | }, |
| 1151 | .{ | 873 | .{ |
| 1152 | .target = .{ | 874 | .target = .{ |
| 1153 | .cpu_arch = .riscv64, | 875 | .cpu_arch = .riscv64, |
| ... | @@ -1157,15 +879,6 @@ const test_targets = blk: { | ... | @@ -1157,15 +879,6 @@ const test_targets = blk: { |
| 1157 | .link_libc = true, | 879 | .link_libc = true, |
| 1158 | }, | 880 | }, |
| 1159 | | 881 | |
| 1160 | .{ | | |
| 1161 | .target = std.Target.Query.parse(.{ | | |
| 1162 | .arch_os_abi = "riscv64-linux-musl", | | |
| 1163 | .cpu_features = "baseline+v+zbb", | | |
| 1164 | }) catch unreachable, | | |
| 1165 | .use_llvm = false, | | |
| 1166 | .use_lld = false, | | |
| 1167 | }, | | |
| 1168 | | | |
| 1169 | .{ | 882 | .{ |
| 1170 | .target = .{ | 883 | .target = .{ |
| 1171 | .cpu_arch = .s390x, | 884 | .cpu_arch = .s390x, |
| ... | @@ -1201,14 +914,206 @@ const test_targets = blk: { | ... | @@ -1201,14 +914,206 @@ const test_targets = blk: { |
| 1201 | .link_libc = true, | 914 | .link_libc = true, |
| 1202 | }, | 915 | }, |
| 1203 | | 916 | |
| | 917 | // Calls are normally lowered to branch instructions that only support +/- 16 MB range when |
| | 918 | // targeting Thumb. This easily becomes insufficient for our test binaries, so use long |
| | 919 | // calls to avoid out-of-range relocations. |
| | 920 | .{ |
| | 921 | .target = std.Target.Query.parse(.{ |
| | 922 | .arch_os_abi = "thumb-linux-eabi", |
| | 923 | .cpu_features = "baseline+long_calls", |
| | 924 | }) catch unreachable, |
| | 925 | .pic = false, // Long calls don't work with PIC. |
| | 926 | }, |
| | 927 | .{ |
| | 928 | .target = std.Target.Query.parse(.{ |
| | 929 | .arch_os_abi = "thumb-linux-eabihf", |
| | 930 | .cpu_features = "baseline+long_calls", |
| | 931 | }) catch unreachable, |
| | 932 | .pic = false, // Long calls don't work with PIC. |
| | 933 | }, |
| | 934 | .{ |
| | 935 | .target = std.Target.Query.parse(.{ |
| | 936 | .arch_os_abi = "thumb-linux-musleabi", |
| | 937 | .cpu_features = "baseline+long_calls", |
| | 938 | }) catch unreachable, |
| | 939 | .link_libc = true, |
| | 940 | .pic = false, // Long calls don't work with PIC. |
| | 941 | }, |
| | 942 | .{ |
| | 943 | .target = std.Target.Query.parse(.{ |
| | 944 | .arch_os_abi = "thumb-linux-musleabihf", |
| | 945 | .cpu_features = "baseline+long_calls", |
| | 946 | }) catch unreachable, |
| | 947 | .link_libc = true, |
| | 948 | .pic = false, // Long calls don't work with PIC. |
| | 949 | }, |
| | 950 | |
| | 951 | .{ |
| | 952 | .target = std.Target.Query.parse(.{ |
| | 953 | .arch_os_abi = "thumbeb-linux-eabi", |
| | 954 | .cpu_features = "baseline+long_calls", |
| | 955 | }) catch unreachable, |
| | 956 | .pic = false, // Long calls don't work with PIC. |
| | 957 | }, |
| | 958 | .{ |
| | 959 | .target = std.Target.Query.parse(.{ |
| | 960 | .arch_os_abi = "thumbeb-linux-eabihf", |
| | 961 | .cpu_features = "baseline+long_calls", |
| | 962 | }) catch unreachable, |
| | 963 | .pic = false, // Long calls don't work with PIC. |
| | 964 | }, |
| | 965 | .{ |
| | 966 | .target = std.Target.Query.parse(.{ |
| | 967 | .arch_os_abi = "thumbeb-linux-musleabi", |
| | 968 | .cpu_features = "baseline+long_calls", |
| | 969 | }) catch unreachable, |
| | 970 | .link_libc = true, |
| | 971 | .pic = false, // Long calls don't work with PIC. |
| | 972 | }, |
| | 973 | .{ |
| | 974 | .target = std.Target.Query.parse(.{ |
| | 975 | .arch_os_abi = "thumbeb-linux-musleabihf", |
| | 976 | .cpu_features = "baseline+long_calls", |
| | 977 | }) catch unreachable, |
| | 978 | .link_libc = true, |
| | 979 | .pic = false, // Long calls don't work with PIC. |
| | 980 | }, |
| | 981 | |
| | 982 | .{ |
| | 983 | .target = .{ |
| | 984 | .cpu_arch = .x86, |
| | 985 | .os_tag = .linux, |
| | 986 | .abi = .none, |
| | 987 | }, |
| | 988 | }, |
| | 989 | .{ |
| | 990 | .target = .{ |
| | 991 | .cpu_arch = .x86, |
| | 992 | .os_tag = .linux, |
| | 993 | .abi = .musl, |
| | 994 | }, |
| | 995 | .link_libc = true, |
| | 996 | }, |
| | 997 | .{ |
| | 998 | .target = .{ |
| | 999 | .cpu_arch = .x86, |
| | 1000 | .os_tag = .linux, |
| | 1001 | .abi = .musl, |
| | 1002 | }, |
| | 1003 | .linkage = .dynamic, |
| | 1004 | .link_libc = true, |
| | 1005 | .extra_target = true, |
| | 1006 | }, |
| | 1007 | .{ |
| | 1008 | .target = .{ |
| | 1009 | .cpu_arch = .x86, |
| | 1010 | .os_tag = .linux, |
| | 1011 | .abi = .gnu, |
| | 1012 | }, |
| | 1013 | .link_libc = true, |
| | 1014 | }, |
| | 1015 | |
| 1204 | .{ | 1016 | .{ |
| 1205 | .target = .{ | 1017 | .target = .{ |
| 1206 | .cpu_arch = .x86_64, | 1018 | .cpu_arch = .x86_64, |
| 1207 | .os_tag = .macos, | 1019 | .os_tag = .linux, |
| | 1020 | .abi = .none, |
| | 1021 | }, |
| | 1022 | .use_llvm = false, |
| | 1023 | .use_lld = false, |
| | 1024 | }, |
| | 1025 | .{ |
| | 1026 | .target = .{ |
| | 1027 | .cpu_arch = .x86_64, |
| | 1028 | .cpu_model = .{ .explicit = &std.Target.x86.cpu.x86_64_v2 }, |
| | 1029 | .os_tag = .linux, |
| 1208 | .abi = .none, | 1030 | .abi = .none, |
| 1209 | }, | 1031 | }, |
| | 1032 | .use_llvm = false, |
| | 1033 | .use_lld = false, |
| | 1034 | .pic = true, |
| | 1035 | }, |
| | 1036 | .{ |
| | 1037 | .target = .{ |
| | 1038 | .cpu_arch = .x86_64, |
| | 1039 | .cpu_model = .{ .explicit = &std.Target.x86.cpu.x86_64_v3 }, |
| | 1040 | .os_tag = .linux, |
| | 1041 | .abi = .none, |
| | 1042 | }, |
| | 1043 | .use_llvm = false, |
| | 1044 | .use_lld = false, |
| | 1045 | .strip = true, |
| | 1046 | }, |
| | 1047 | .{ |
| | 1048 | .target = .{ |
| | 1049 | .cpu_arch = .x86_64, |
| | 1050 | .os_tag = .linux, |
| | 1051 | .abi = .none, |
| | 1052 | }, |
| | 1053 | }, |
| | 1054 | .{ |
| | 1055 | .target = .{ |
| | 1056 | .cpu_arch = .x86_64, |
| | 1057 | .os_tag = .linux, |
| | 1058 | .abi = .gnu, |
| | 1059 | }, |
| | 1060 | .link_libc = true, |
| | 1061 | }, |
| | 1062 | .{ |
| | 1063 | .target = .{ |
| | 1064 | .cpu_arch = .x86_64, |
| | 1065 | .os_tag = .linux, |
| | 1066 | .abi = .gnux32, |
| | 1067 | }, |
| | 1068 | .link_libc = true, |
| | 1069 | }, |
| | 1070 | .{ |
| | 1071 | .target = .{ |
| | 1072 | .cpu_arch = .x86_64, |
| | 1073 | .os_tag = .linux, |
| | 1074 | .abi = .musl, |
| | 1075 | }, |
| | 1076 | .link_libc = true, |
| | 1077 | }, |
| | 1078 | .{ |
| | 1079 | .target = .{ |
| | 1080 | .cpu_arch = .x86_64, |
| | 1081 | .os_tag = .linux, |
| | 1082 | .abi = .musl, |
| | 1083 | }, |
| | 1084 | .linkage = .dynamic, |
| | 1085 | .link_libc = true, |
| | 1086 | }, |
| | 1087 | .{ |
| | 1088 | .target = .{ |
| | 1089 | .cpu_arch = .x86_64, |
| | 1090 | .os_tag = .linux, |
| | 1091 | .abi = .muslx32, |
| | 1092 | }, |
| | 1093 | .link_libc = true, |
| | 1094 | }, |
| | 1095 | .{ |
| | 1096 | .target = .{ |
| | 1097 | .cpu_arch = .x86_64, |
| | 1098 | .os_tag = .linux, |
| | 1099 | .abi = .muslx32, |
| | 1100 | }, |
| | 1101 | .linkage = .dynamic, |
| | 1102 | .link_libc = true, |
| | 1103 | .extra_target = true, |
| | 1104 | }, |
| | 1105 | .{ |
| | 1106 | .target = .{ |
| | 1107 | .cpu_arch = .x86_64, |
| | 1108 | .os_tag = .linux, |
| | 1109 | .abi = .musl, |
| | 1110 | }, |
| | 1111 | .link_libc = true, |
| | 1112 | .use_lld = false, |
| 1210 | }, | 1113 | }, |
| 1211 | | 1114 | |
| | 1115 | // macOS Targets |
| | 1116 | |
| 1212 | .{ | 1117 | .{ |
| 1213 | .target = .{ | 1118 | .target = .{ |
| 1214 | .cpu_arch = .aarch64, | 1119 | .cpu_arch = .aarch64, |
| ... | @@ -1219,18 +1124,68 @@ const test_targets = blk: { | ... | @@ -1219,18 +1124,68 @@ const test_targets = blk: { |
| 1219 | | 1124 | |
| 1220 | .{ | 1125 | .{ |
| 1221 | .target = .{ | 1126 | .target = .{ |
| 1222 | .cpu_arch = .x86, | 1127 | .cpu_arch = .x86_64, |
| 1223 | .os_tag = .windows, | 1128 | .os_tag = .macos, |
| 1224 | .abi = .msvc, | 1129 | .abi = .none, |
| 1225 | }, | 1130 | }, |
| | 1131 | .use_llvm = false, |
| 1226 | }, | 1132 | }, |
| 1227 | | | |
| 1228 | .{ | 1133 | .{ |
| 1229 | .target = .{ | 1134 | .target = .{ |
| 1230 | .cpu_arch = .x86_64, | 1135 | .cpu_arch = .x86_64, |
| | 1136 | .os_tag = .macos, |
| | 1137 | .abi = .none, |
| | 1138 | }, |
| | 1139 | }, |
| | 1140 | |
| | 1141 | // SPIR-V Targets |
| | 1142 | |
| | 1143 | .{ |
| | 1144 | .target = std.Target.Query.parse(.{ |
| | 1145 | .arch_os_abi = "spirv64-vulkan", |
| | 1146 | .cpu_features = "vulkan_v1_2+physical_storage_buffer+int64+float16+float64", |
| | 1147 | }) catch unreachable, |
| | 1148 | .use_llvm = false, |
| | 1149 | .use_lld = false, |
| | 1150 | .skip_modules = &.{ "c-import", "zigc", "std" }, |
| | 1151 | }, |
| | 1152 | |
| | 1153 | // WASI Targets |
| | 1154 | |
| | 1155 | .{ |
| | 1156 | .target = .{ |
| | 1157 | .cpu_arch = .wasm32, |
| | 1158 | .os_tag = .wasi, |
| | 1159 | .abi = .none, |
| | 1160 | }, |
| | 1161 | .use_llvm = false, |
| | 1162 | .use_lld = false, |
| | 1163 | }, |
| | 1164 | .{ |
| | 1165 | .target = .{ |
| | 1166 | .cpu_arch = .wasm32, |
| | 1167 | .os_tag = .wasi, |
| | 1168 | .abi = .none, |
| | 1169 | }, |
| | 1170 | }, |
| | 1171 | .{ |
| | 1172 | .target = .{ |
| | 1173 | .cpu_arch = .wasm32, |
| | 1174 | .os_tag = .wasi, |
| | 1175 | .abi = .musl, |
| | 1176 | }, |
| | 1177 | .link_libc = true, |
| | 1178 | }, |
| | 1179 | |
| | 1180 | // Windows Targets |
| | 1181 | |
| | 1182 | .{ |
| | 1183 | .target = .{ |
| | 1184 | .cpu_arch = .aarch64, |
| 1231 | .os_tag = .windows, | 1185 | .os_tag = .windows, |
| 1232 | .abi = .msvc, | 1186 | .abi = .gnu, |
| 1233 | }, | 1187 | }, |
| | 1188 | .link_libc = true, |
| 1234 | }, | 1189 | }, |
| 1235 | | 1190 | |
| 1236 | .{ | 1191 | .{ |
| ... | @@ -1241,7 +1196,23 @@ const test_targets = blk: { | ... | @@ -1241,7 +1196,23 @@ const test_targets = blk: { |
| 1241 | }, | 1196 | }, |
| 1242 | .link_libc = true, | 1197 | .link_libc = true, |
| 1243 | }, | 1198 | }, |
| | 1199 | .{ |
| | 1200 | .target = .{ |
| | 1201 | .cpu_arch = .x86, |
| | 1202 | .os_tag = .windows, |
| | 1203 | .abi = .msvc, |
| | 1204 | }, |
| | 1205 | }, |
| 1244 | | 1206 | |
| | 1207 | .{ |
| | 1208 | .target = .{ |
| | 1209 | .cpu_arch = .x86_64, |
| | 1210 | .os_tag = .windows, |
| | 1211 | .abi = .gnu, |
| | 1212 | }, |
| | 1213 | .use_llvm = false, |
| | 1214 | .use_lld = false, |
| | 1215 | }, |
| 1245 | .{ | 1216 | .{ |
| 1246 | .target = .{ | 1217 | .target = .{ |
| 1247 | .cpu_arch = .x86_64, | 1218 | .cpu_arch = .x86_64, |
| ... | @@ -1250,6 +1221,13 @@ const test_targets = blk: { | ... | @@ -1250,6 +1221,13 @@ const test_targets = blk: { |
| 1250 | }, | 1221 | }, |
| 1251 | .link_libc = true, | 1222 | .link_libc = true, |
| 1252 | }, | 1223 | }, |
| | 1224 | .{ |
| | 1225 | .target = .{ |
| | 1226 | .cpu_arch = .x86_64, |
| | 1227 | .os_tag = .windows, |
| | 1228 | .abi = .msvc, |
| | 1229 | }, |
| | 1230 | }, |
| 1253 | }; | 1231 | }; |
| 1254 | }; | 1232 | }; |
| 1255 | | 1233 | |
| ... | @@ -1263,104 +1241,122 @@ const CAbiTarget = struct { | ... | @@ -1263,104 +1241,122 @@ const CAbiTarget = struct { |
| 1263 | }; | 1241 | }; |
| 1264 | | 1242 | |
| 1265 | const c_abi_targets = [_]CAbiTarget{ | 1243 | const c_abi_targets = [_]CAbiTarget{ |
| | 1244 | // Native Targets |
| | 1245 | |
| 1266 | .{}, | 1246 | .{}, |
| | 1247 | |
| | 1248 | // Linux Targets |
| | 1249 | |
| 1267 | .{ | 1250 | .{ |
| 1268 | .target = .{ | 1251 | .target = .{ |
| 1269 | .cpu_arch = .x86_64, | 1252 | .cpu_arch = .aarch64, |
| 1270 | .os_tag = .linux, | 1253 | .os_tag = .linux, |
| 1271 | .abi = .musl, | 1254 | .abi = .musl, |
| 1272 | }, | 1255 | }, |
| 1273 | }, | 1256 | }, |
| | 1257 | |
| 1274 | .{ | 1258 | .{ |
| 1275 | .target = .{ | 1259 | .target = .{ |
| 1276 | .cpu_arch = .x86_64, | 1260 | .cpu_arch = .arm, |
| 1277 | .os_tag = .linux, | 1261 | .os_tag = .linux, |
| 1278 | .abi = .musl, | 1262 | .abi = .musleabihf, |
| 1279 | }, | 1263 | }, |
| 1280 | .use_llvm = false, | | |
| 1281 | .use_lld = false, | | |
| 1282 | .c_defines = &.{"ZIG_BACKEND_STAGE2_X86_64"}, | | |
| 1283 | }, | 1264 | }, |
| | 1265 | |
| 1284 | .{ | 1266 | .{ |
| 1285 | .target = .{ | 1267 | .target = .{ |
| 1286 | .cpu_arch = .x86_64, | 1268 | .cpu_arch = .mips, |
| 1287 | .cpu_model = .{ .explicit = &std.Target.x86.cpu.x86_64_v2 }, | | |
| 1288 | .os_tag = .linux, | 1269 | .os_tag = .linux, |
| 1289 | .abi = .musl, | 1270 | .abi = .musleabihf, |
| 1290 | }, | 1271 | }, |
| 1291 | .use_llvm = false, | | |
| 1292 | .use_lld = false, | | |
| 1293 | .strip = true, | | |
| 1294 | .c_defines = &.{"ZIG_BACKEND_STAGE2_X86_64"}, | | |
| 1295 | }, | 1272 | }, |
| | 1273 | |
| 1296 | .{ | 1274 | .{ |
| 1297 | .target = .{ | 1275 | .target = .{ |
| 1298 | .cpu_arch = .x86_64, | 1276 | .cpu_arch = .powerpc, |
| 1299 | .cpu_model = .{ .explicit = &std.Target.x86.cpu.x86_64_v3 }, | | |
| 1300 | .os_tag = .linux, | 1277 | .os_tag = .linux, |
| 1301 | .abi = .musl, | 1278 | .abi = .musleabihf, |
| 1302 | }, | 1279 | }, |
| 1303 | .use_llvm = false, | | |
| 1304 | .use_lld = false, | | |
| 1305 | .pic = true, | | |
| 1306 | .c_defines = &.{"ZIG_BACKEND_STAGE2_X86_64"}, | | |
| 1307 | }, | 1280 | }, |
| | 1281 | |
| 1308 | .{ | 1282 | .{ |
| 1309 | .target = .{ | 1283 | .target = .{ |
| 1310 | .cpu_arch = .x86, | 1284 | .cpu_arch = .powerpc64le, |
| 1311 | .os_tag = .linux, | 1285 | .os_tag = .linux, |
| 1312 | .abi = .musl, | 1286 | .abi = .musl, |
| 1313 | }, | 1287 | }, |
| 1314 | }, | 1288 | }, |
| | 1289 | |
| 1315 | .{ | 1290 | .{ |
| 1316 | .target = .{ | 1291 | .target = .{ |
| 1317 | .cpu_arch = .aarch64, | 1292 | .cpu_arch = .riscv64, |
| 1318 | .os_tag = .linux, | 1293 | .os_tag = .linux, |
| 1319 | .abi = .musl, | 1294 | .abi = .musl, |
| 1320 | }, | 1295 | }, |
| 1321 | }, | 1296 | }, |
| | 1297 | |
| 1322 | .{ | 1298 | .{ |
| 1323 | .target = .{ | 1299 | .target = .{ |
| 1324 | .cpu_arch = .arm, | 1300 | .cpu_arch = .x86, |
| 1325 | .os_tag = .linux, | 1301 | .os_tag = .linux, |
| 1326 | .abi = .musleabihf, | 1302 | .abi = .musl, |
| 1327 | }, | 1303 | }, |
| 1328 | }, | 1304 | }, |
| | 1305 | |
| 1329 | .{ | 1306 | .{ |
| 1330 | .target = .{ | 1307 | .target = .{ |
| 1331 | .cpu_arch = .mips, | 1308 | .cpu_arch = .x86_64, |
| 1332 | .os_tag = .linux, | 1309 | .os_tag = .linux, |
| 1333 | .abi = .musleabihf, | 1310 | .abi = .musl, |
| 1334 | }, | 1311 | }, |
| | 1312 | .use_llvm = false, |
| | 1313 | .use_lld = false, |
| | 1314 | .c_defines = &.{"ZIG_BACKEND_STAGE2_X86_64"}, |
| 1335 | }, | 1315 | }, |
| 1336 | .{ | 1316 | .{ |
| 1337 | .target = .{ | 1317 | .target = .{ |
| 1338 | .cpu_arch = .riscv64, | 1318 | .cpu_arch = .x86_64, |
| | 1319 | .cpu_model = .{ .explicit = &std.Target.x86.cpu.x86_64_v2 }, |
| 1339 | .os_tag = .linux, | 1320 | .os_tag = .linux, |
| 1340 | .abi = .musl, | 1321 | .abi = .musl, |
| 1341 | }, | 1322 | }, |
| | 1323 | .use_llvm = false, |
| | 1324 | .use_lld = false, |
| | 1325 | .strip = true, |
| | 1326 | .c_defines = &.{"ZIG_BACKEND_STAGE2_X86_64"}, |
| 1342 | }, | 1327 | }, |
| 1343 | .{ | 1328 | .{ |
| 1344 | .target = .{ | 1329 | .target = .{ |
| 1345 | .cpu_arch = .wasm32, | 1330 | .cpu_arch = .x86_64, |
| 1346 | .os_tag = .wasi, | 1331 | .cpu_model = .{ .explicit = &std.Target.x86.cpu.x86_64_v3 }, |
| | 1332 | .os_tag = .linux, |
| 1347 | .abi = .musl, | 1333 | .abi = .musl, |
| 1348 | }, | 1334 | }, |
| | 1335 | .use_llvm = false, |
| | 1336 | .use_lld = false, |
| | 1337 | .pic = true, |
| | 1338 | .c_defines = &.{"ZIG_BACKEND_STAGE2_X86_64"}, |
| 1349 | }, | 1339 | }, |
| 1350 | .{ | 1340 | .{ |
| 1351 | .target = .{ | 1341 | .target = .{ |
| 1352 | .cpu_arch = .powerpc, | 1342 | .cpu_arch = .x86_64, |
| 1353 | .os_tag = .linux, | 1343 | .os_tag = .linux, |
| 1354 | .abi = .musleabihf, | 1344 | .abi = .musl, |
| 1355 | }, | 1345 | }, |
| 1356 | }, | 1346 | }, |
| | 1347 | |
| | 1348 | // WASI Targets |
| | 1349 | |
| 1357 | .{ | 1350 | .{ |
| 1358 | .target = .{ | 1351 | .target = .{ |
| 1359 | .cpu_arch = .powerpc64le, | 1352 | .cpu_arch = .wasm32, |
| 1360 | .os_tag = .linux, | 1353 | .os_tag = .wasi, |
| 1361 | .abi = .musl, | 1354 | .abi = .musl, |
| 1362 | }, | 1355 | }, |
| 1363 | }, | 1356 | }, |
| | 1357 | |
| | 1358 | // Windows Targets |
| | 1359 | |
| 1364 | .{ | 1360 | .{ |
| 1365 | .target = .{ | 1361 | .target = .{ |
| 1366 | .cpu_arch = .x86, | 1362 | .cpu_arch = .x86, |