| ... | ... | @@ -649,12 +649,14 @@ const Stage2TargetDetails = struct { |
| 649 | 649 | try builtin_str_buffer.append(cpu.name); |
| 650 | 650 | try builtin_str_buffer.append("};"); |
| 651 | 651 | |
| 652 | const cpu_string = cpu.llvm_name orelse ""; |
| 653 | |
| 652 | 654 | return Self{ |
| 653 | 655 | .allocator = allocator, |
| 654 | 656 | .target_details = .{ |
| 655 | 657 | .cpu = cpu, |
| 656 | 658 | }, |
| 657 | | .llvm_cpu_str = try toNullTerminatedStringAlloc(allocator, cpu.llvm_name), |
| 659 | .llvm_cpu_str = try toNullTerminatedStringAlloc(allocator, cpu_string), |
| 658 | 660 | .llvm_features_str = null_terminated_empty_string, |
| 659 | 661 | .builtin_str = builtin_str_buffer.toSliceConst(), |
| 660 | 662 | }; |
| ... | ... | @@ -670,21 +672,25 @@ const Stage2TargetDetails = struct { |
| 670 | 672 | // First, disable all features. |
| 671 | 673 | // This way, we only get the ones the user requests. |
| 672 | 674 | for (std.target.getFeaturesForArch(arch)) |feature| { |
| 673 | | try llvm_features_buffer.append("-"); |
| 674 | | try llvm_features_buffer.append(feature.llvm_name); |
| 675 | | try llvm_features_buffer.append(","); |
| 675 | if (feature.llvm_name) |llvm_name| { |
| 676 | try llvm_features_buffer.append("-"); |
| 677 | try llvm_features_buffer.append(llvm_name); |
| 678 | try llvm_features_buffer.append(","); |
| 679 | } |
| 676 | 680 | } |
| 677 | 681 | |
| 678 | 682 | for (features) |feature| { |
| 679 | | try llvm_features_buffer.append("+"); |
| 680 | | try llvm_features_buffer.append(feature.llvm_name); |
| 681 | | try llvm_features_buffer.append(","); |
| 682 | | |
| 683 | | try builtin_str_buffer.append("&@import(\"std\").target."); |
| 684 | | try builtin_str_buffer.append(@tagName(arch)); |
| 685 | | try builtin_str_buffer.append(".feature_"); |
| 686 | | try builtin_str_buffer.append(feature.name); |
| 687 | | try builtin_str_buffer.append(","); |
| 683 | if (feature.llvm_name) |llvm_name| { |
| 684 | try llvm_features_buffer.append("+"); |
| 685 | try llvm_features_buffer.append(llvm_name); |
| 686 | try llvm_features_buffer.append(","); |
| 687 | |
| 688 | try builtin_str_buffer.append("&@import(\"std\").target."); |
| 689 | try builtin_str_buffer.append(@tagName(arch)); |
| 690 | try builtin_str_buffer.append(".feature_"); |
| 691 | try builtin_str_buffer.append(feature.name); |
| 692 | try builtin_str_buffer.append(","); |
| 693 | } |
| 688 | 694 | } |
| 689 | 695 | |
| 690 | 696 | try builtin_str_buffer.append("}};"); |