diff --git a/src-self-hosted/clang_options.zig b/src-self-hosted/clang_options.zig
index 9fa35b8f9..538f28170 100644
--- a/src-self-hosted/clang_options.zig
+++ b/src-self-hosted/clang_options.zig
@@ -20,7 +20,7 @@ pub const CliArg = struct {
/// Prefixed by "/"
psl: bool = false,
- const Syntax = union(enum) {
+ pub const Syntax = union(enum) {
/// A flag with no values.
flag,
@@ -46,7 +46,7 @@ pub const CliArg = struct {
multi_arg: u8,
};
- fn matchEql(self: CliArg, arg: []const u8) bool {
+ pub fn matchEql(self: CliArg, arg: []const u8) bool {
if (self.pd1 and arg.len >= self.name.len + 1 and
mem.startsWith(u8, arg, "-") and mem.eql(u8, arg[1..], self.name))
{
@@ -65,7 +65,7 @@ pub const CliArg = struct {
return false;
}
- fn matchStartsWith(self: CliArg, arg: []const u8) usize {
+ pub fn matchStartsWith(self: CliArg, arg: []const u8) usize {
if (self.pd1 and arg.len >= self.name.len + 1 and
mem.startsWith(u8, arg, "-") and mem.startsWith(u8, arg[1..], self.name))
{
diff --git a/src-self-hosted/clang_options_data.zig b/src-self-hosted/clang_options_data.zig
index a88f3583c..a21069f93 100644
--- a/src-self-hosted/clang_options_data.zig
+++ b/src-self-hosted/clang_options_data.zig
@@ -2,21 +2,13 @@
// zig fmt: off
usingnamespace @import("clang_options.zig");
pub const data = blk: { @setEvalBranchQuota(6000); break :blk &[_]CliArg{
-jspd1("A"),
-joinpd1("A-"),
-jspd1("B"),
flagpd1("C"),
flagpd1("CC"),
-jspd1("D"),
flagpd1("E"),
flagpd1("EB"),
flagpd1("EL"),
flagpd1("Eonly"),
-jspd1("F"),
-jspd1("G"),
-joinpd1("G="),
flagpd1("H"),
-jspd1("I"),
.{
.name = "",
.syntax = .flag,
@@ -26,42 +18,25 @@ jspd1("I"),
.psl = false,
},
flagpd1("I-"),
-jspd1("J"),
-jspd1("L"),
flagpd1("M"),
flagpd1("MD"),
-jspd1("MF"),
flagpd1("MG"),
-jspd1("MJ"),
flagpd1("MM"),
flagpd1("MMD"),
flagpd1("MP"),
-jspd1("MQ"),
-jspd1("MT"),
flagpd1("MV"),
flagpd1("Mach"),
-joinpd1("O"),
flagpd1("O0"),
flagpd1("O4"),
flagpd1("O"),
flagpd1("ObjC"),
flagpd1("ObjC++"),
-joinpd1("Ofast"),
flagpd1("P"),
flagpd1("Q"),
flagpd1("Qn"),
flagpd1("Qunused-arguments"),
flagpd1("Qy"),
-joinpd1("R"),
-joinpd1("Rpass="),
-joinpd1("Rpass-analysis="),
-joinpd1("Rpass-missed="),
flagpd1("S"),
-jspd1("T"),
-jspd1("Tbss"),
-jspd1("Tdata"),
-jspd1("Ttext"),
-jspd1("U"),
.{
.name = "",
.syntax = .flag,
@@ -70,74 +45,24 @@ jspd1("U"),
.pd2 = false,
.psl = false,
},
-jspd1("V"),
flagpd1("WCL4"),
-joinpd1("W"),
-.{
- .name = "Wa,",
- .syntax = .comma_joined,
- .zig_equivalent = .other,
- .pd1 = true,
- .pd2 = false,
- .psl = false,
-},
flagpd1("Wall"),
flagpd1("Wdeprecated"),
-joinpd1("Wframe-larger-than="),
-.{
- .name = "Wl,",
- .syntax = .comma_joined,
- .zig_equivalent = .other,
- .pd1 = true,
- .pd2 = false,
- .psl = false,
-},
-joinpd1("Wlarge-by-value-copy="),
flagpd1("Wlarge-by-value-copy"),
-joinpd1("Wlarger-than-"),
-joinpd1("Wlarger-than="),
flagpd1("Wno-deprecated"),
-joinpd1("Wno-nonportable-cfstrings"),
flagpd1("Wno-rewrite-macros"),
flagpd1("Wno-write-strings"),
-joinpd1("Wnonportable-cfstrings"),
-.{
- .name = "Wp,",
- .syntax = .comma_joined,
- .zig_equivalent = .other,
- .pd1 = true,
- .pd2 = false,
- .psl = false,
-},
flagpd1("Wwrite-strings"),
flagpd1("X"),
-joinpd1("X"),
sepd1("Xanalyzer"),
-.{
- .name = "Xarch_",
- .syntax = .joined_and_separate,
- .zig_equivalent = .other,
- .pd1 = true,
- .pd2 = false,
- .psl = false,
-},
sepd1("Xassembler"),
sepd1("Xclang"),
sepd1("Xcuda-fatbinary"),
sepd1("Xcuda-ptxas"),
sepd1("Xlinker"),
sepd1("Xopenmp-target"),
-.{
- .name = "Xopenmp-target=",
- .syntax = .joined_and_separate,
- .zig_equivalent = .other,
- .pd1 = true,
- .pd2 = false,
- .psl = false,
-},
sepd1("Xpreprocessor"),
flagpd1("Z"),
-joinpd1("Z"),
flagpd1("Z-Xlinker-no-demangle"),
flagpd1("Z-reserved-lib-cckext"),
flagpd1("Z-reserved-lib-stdc++"),
@@ -150,23 +75,7 @@ sepd1("Zlinker-input"),
.pd2 = true,
.psl = false,
},
-.{
- .name = "CLASSPATH=",
- .syntax = .joined,
- .zig_equivalent = .other,
- .pd1 = false,
- .pd2 = true,
- .psl = false,
-},
flagpd1("###"),
-.{
- .name = "AI",
- .syntax = .joined_or_separate,
- .zig_equivalent = .other,
- .pd1 = true,
- .pd2 = false,
- .psl = true,
-},
.{
.name = "Brepro",
.syntax = .flag,
@@ -207,14 +116,6 @@ flagpd1("###"),
.pd2 = false,
.psl = true,
},
-.{
- .name = "D",
- .syntax = .joined_or_separate,
- .zig_equivalent = .other,
- .pd1 = true,
- .pd2 = false,
- .psl = true,
-},
.{
.name = "E",
.syntax = .flag,
@@ -223,14 +124,6 @@ flagpd1("###"),
.pd2 = false,
.psl = true,
},
-.{
- .name = "EH",
- .syntax = .joined,
- .zig_equivalent = .other,
- .pd1 = true,
- .pd2 = false,
- .psl = true,
-},
.{
.name = "EP",
.syntax = .flag,
@@ -239,14 +132,6 @@ flagpd1("###"),
.pd2 = false,
.psl = true,
},
-.{
- .name = "F",
- .syntax = .joined_or_separate,
- .zig_equivalent = .other,
- .pd1 = true,
- .pd2 = false,
- .psl = true,
-},
.{
.name = "FA",
.syntax = .flag,
@@ -255,14 +140,6 @@ flagpd1("###"),
.pd2 = false,
.psl = true,
},
-.{
- .name = "FA",
- .syntax = .joined,
- .zig_equivalent = .other,
- .pd1 = true,
- .pd2 = false,
- .psl = true,
-},
.{
.name = "FC",
.syntax = .flag,
@@ -271,22 +148,6 @@ flagpd1("###"),
.pd2 = false,
.psl = true,
},
-.{
- .name = "FI",
- .syntax = .joined_or_separate,
- .zig_equivalent = .other,
- .pd1 = true,
- .pd2 = false,
- .psl = true,
-},
-.{
- .name = "FR",
- .syntax = .joined,
- .zig_equivalent = .other,
- .pd1 = true,
- .pd2 = false,
- .psl = true,
-},
.{
.name = "FS",
.syntax = .flag,
@@ -295,78 +156,6 @@ flagpd1("###"),
.pd2 = false,
.psl = true,
},
-.{
- .name = "FU",
- .syntax = .joined_or_separate,
- .zig_equivalent = .other,
- .pd1 = true,
- .pd2 = false,
- .psl = true,
-},
-.{
- .name = "Fa",
- .syntax = .joined,
- .zig_equivalent = .other,
- .pd1 = true,
- .pd2 = false,
- .psl = true,
-},
-.{
- .name = "Fd",
- .syntax = .joined,
- .zig_equivalent = .other,
- .pd1 = true,
- .pd2 = false,
- .psl = true,
-},
-.{
- .name = "Fe",
- .syntax = .joined,
- .zig_equivalent = .other,
- .pd1 = true,
- .pd2 = false,
- .psl = true,
-},
-.{
- .name = "Fi",
- .syntax = .joined,
- .zig_equivalent = .other,
- .pd1 = true,
- .pd2 = false,
- .psl = true,
-},
-.{
- .name = "Fm",
- .syntax = .joined,
- .zig_equivalent = .other,
- .pd1 = true,
- .pd2 = false,
- .psl = true,
-},
-.{
- .name = "Fo",
- .syntax = .joined,
- .zig_equivalent = .other,
- .pd1 = true,
- .pd2 = false,
- .psl = true,
-},
-.{
- .name = "Fp",
- .syntax = .joined,
- .zig_equivalent = .other,
- .pd1 = true,
- .pd2 = false,
- .psl = true,
-},
-.{
- .name = "Fr",
- .syntax = .joined,
- .zig_equivalent = .other,
- .pd1 = true,
- .pd2 = false,
- .psl = true,
-},
.{
.name = "Fx",
.syntax = .flag,
@@ -559,14 +348,6 @@ flagpd1("###"),
.pd2 = false,
.psl = true,
},
-.{
- .name = "Gs",
- .syntax = .joined,
- .zig_equivalent = .other,
- .pd1 = true,
- .pd2 = false,
- .psl = true,
-},
.{
.name = "Gv",
.syntax = .flag,
@@ -631,14 +412,6 @@ flagpd1("###"),
.pd2 = false,
.psl = true,
},
-.{
- .name = "I",
- .syntax = .joined_or_separate,
- .zig_equivalent = .other,
- .pd1 = true,
- .pd2 = false,
- .psl = true,
-},
.{
.name = "J",
.syntax = .flag,
@@ -695,14 +468,6 @@ flagpd1("###"),
.pd2 = false,
.psl = true,
},
-.{
- .name = "MP",
- .syntax = .joined,
- .zig_equivalent = .other,
- .pd1 = true,
- .pd2 = false,
- .psl = true,
-},
.{
.name = "MT",
.syntax = .flag,
@@ -719,14 +484,6 @@ flagpd1("###"),
.pd2 = false,
.psl = true,
},
-.{
- .name = "O",
- .syntax = .joined,
- .zig_equivalent = .other,
- .pd1 = true,
- .pd2 = false,
- .psl = true,
-},
.{
.name = "P",
.syntax = .flag,
@@ -775,14 +532,6 @@ flagpd1("###"),
.pd2 = false,
.psl = true,
},
-.{
- .name = "Qpar-report",
- .syntax = .joined,
- .zig_equivalent = .other,
- .pd1 = true,
- .pd2 = false,
- .psl = true,
-},
.{
.name = "Qsafe_fp_loads",
.syntax = .flag,
@@ -815,22 +564,6 @@ flagpd1("###"),
.pd2 = false,
.psl = true,
},
-.{
- .name = "Qvec-report",
- .syntax = .joined,
- .zig_equivalent = .other,
- .pd1 = true,
- .pd2 = false,
- .psl = true,
-},
-.{
- .name = "RTC",
- .syntax = .joined,
- .zig_equivalent = .other,
- .pd1 = true,
- .pd2 = false,
- .psl = true,
-},
.{
.name = "TC",
.syntax = .flag,
@@ -847,30 +580,6 @@ flagpd1("###"),
.pd2 = false,
.psl = true,
},
-.{
- .name = "Tc",
- .syntax = .joined_or_separate,
- .zig_equivalent = .other,
- .pd1 = true,
- .pd2 = false,
- .psl = true,
-},
-.{
- .name = "Tp",
- .syntax = .joined_or_separate,
- .zig_equivalent = .other,
- .pd1 = true,
- .pd2 = false,
- .psl = true,
-},
-.{
- .name = "U",
- .syntax = .joined_or_separate,
- .zig_equivalent = .other,
- .pd1 = true,
- .pd2 = false,
- .psl = true,
-},
.{
.name = "V",
.syntax = .flag,
@@ -975,14 +684,6 @@ flagpd1("###"),
.pd2 = false,
.psl = true,
},
-.{
- .name = "Yc",
- .syntax = .joined,
- .zig_equivalent = .other,
- .pd1 = true,
- .pd2 = false,
- .psl = true,
-},
.{
.name = "Yd",
.syntax = .flag,
@@ -991,22 +692,6 @@ flagpd1("###"),
.pd2 = false,
.psl = true,
},
-.{
- .name = "Yl",
- .syntax = .joined,
- .zig_equivalent = .other,
- .pd1 = true,
- .pd2 = false,
- .psl = true,
-},
-.{
- .name = "Yu",
- .syntax = .joined,
- .zig_equivalent = .other,
- .pd1 = true,
- .pd2 = false,
- .psl = true,
-},
.{
.name = "Z7",
.syntax = .flag,
@@ -1047,14 +732,6 @@ flagpd1("###"),
.pd2 = false,
.psl = true,
},
-.{
- .name = "ZW",
- .syntax = .joined,
- .zig_equivalent = .other,
- .pd1 = true,
- .pd2 = false,
- .psl = true,
-},
.{
.name = "Za",
.syntax = .flag,
@@ -1063,14 +740,6 @@ flagpd1("###"),
.pd2 = false,
.psl = true,
},
-.{
- .name = "Zc:",
- .syntax = .joined,
- .zig_equivalent = .other,
- .pd1 = true,
- .pd2 = false,
- .psl = true,
-},
.{
.name = "Zc:__cplusplus",
.syntax = .flag,
@@ -1287,14 +956,6 @@ flagpd1("###"),
.pd2 = false,
.psl = true,
},
-.{
- .name = "Zm",
- .syntax = .joined,
- .zig_equivalent = .other,
- .pd1 = true,
- .pd2 = false,
- .psl = true,
-},
.{
.name = "Zo",
.syntax = .flag,
@@ -1311,14 +972,6 @@ flagpd1("###"),
.pd2 = false,
.psl = true,
},
-.{
- .name = "Zp",
- .syntax = .joined,
- .zig_equivalent = .other,
- .pd1 = true,
- .pd2 = false,
- .psl = true,
-},
.{
.name = "Zp",
.syntax = .flag,
@@ -1343,14 +996,6 @@ flagpd1("###"),
.pd2 = false,
.psl = true,
},
-.{
- .name = "arch:",
- .syntax = .joined,
- .zig_equivalent = .other,
- .pd1 = true,
- .pd2 = false,
- .psl = true,
-},
.{
.name = "await",
.syntax = .flag,
@@ -1375,38 +1020,6 @@ flagpd1("###"),
.pd2 = false,
.psl = true,
},
-.{
- .name = "cgthreads",
- .syntax = .joined,
- .zig_equivalent = .other,
- .pd1 = true,
- .pd2 = false,
- .psl = true,
-},
-.{
- .name = "clang:",
- .syntax = .joined,
- .zig_equivalent = .other,
- .pd1 = true,
- .pd2 = false,
- .psl = true,
-},
-.{
- .name = "clr",
- .syntax = .joined,
- .zig_equivalent = .other,
- .pd1 = true,
- .pd2 = false,
- .psl = true,
-},
-.{
- .name = "constexpr:",
- .syntax = .joined,
- .zig_equivalent = .other,
- .pd1 = true,
- .pd2 = false,
- .psl = true,
-},
.{
.name = "d1PP",
.syntax = .flag,
@@ -1423,14 +1036,6 @@ flagpd1("###"),
.pd2 = false,
.psl = true,
},
-.{
- .name = "d2",
- .syntax = .joined,
- .zig_equivalent = .other,
- .pd1 = true,
- .pd2 = false,
- .psl = true,
-},
.{
.name = "d2FastFail",
.syntax = .flag,
@@ -1471,30 +1076,6 @@ flagpd1("###"),
.pd2 = false,
.psl = true,
},
-.{
- .name = "doc",
- .syntax = .joined,
- .zig_equivalent = .other,
- .pd1 = true,
- .pd2 = false,
- .psl = true,
-},
-.{
- .name = "errorReport",
- .syntax = .joined,
- .zig_equivalent = .other,
- .pd1 = true,
- .pd2 = false,
- .psl = true,
-},
-.{
- .name = "execution-charset:",
- .syntax = .joined,
- .zig_equivalent = .other,
- .pd1 = true,
- .pd2 = false,
- .psl = true,
-},
.{
.name = "fallback",
.syntax = .flag,
@@ -1503,14 +1084,6 @@ flagpd1("###"),
.pd2 = false,
.psl = true,
},
-.{
- .name = "favor",
- .syntax = .joined,
- .zig_equivalent = .other,
- .pd1 = true,
- .pd2 = false,
- .psl = true,
-},
.{
.name = "fp:except",
.syntax = .flag,
@@ -1551,18 +1124,10 @@ flagpd1("###"),
.pd2 = false,
.psl = true,
},
-.{
- .name = "guard:",
- .syntax = .joined,
- .zig_equivalent = .other,
- .pd1 = true,
- .pd2 = false,
- .psl = true,
-},
.{
.name = "help",
.syntax = .flag,
- .zig_equivalent = .other,
+ .zig_equivalent = .passthrough,
.pd1 = true,
.pd2 = false,
.psl = true,
@@ -1583,14 +1148,6 @@ flagpd1("###"),
.pd2 = false,
.psl = true,
},
-.{
- .name = "imsvc",
- .syntax = .joined_or_separate,
- .zig_equivalent = .other,
- .pd1 = true,
- .pd2 = false,
- .psl = true,
-},
.{
.name = "kernel",
.syntax = .flag,
@@ -1607,14 +1164,6 @@ flagpd1("###"),
.pd2 = false,
.psl = true,
},
-.{
- .name = "link",
- .syntax = .remaining_args_joined,
- .zig_equivalent = .other,
- .pd1 = true,
- .pd2 = false,
- .psl = true,
-},
.{
.name = "nologo",
.syntax = .flag,
@@ -1623,14 +1172,6 @@ flagpd1("###"),
.pd2 = false,
.psl = true,
},
-.{
- .name = "o",
- .syntax = .joined_or_separate,
- .zig_equivalent = .o,
- .pd1 = true,
- .pd2 = false,
- .psl = true,
-},
.{
.name = "openmp",
.syntax = .flag,
@@ -1703,22 +1244,6 @@ flagpd1("###"),
.pd2 = false,
.psl = true,
},
-.{
- .name = "source-charset:",
- .syntax = .joined,
- .zig_equivalent = .other,
- .pd1 = true,
- .pd2 = false,
- .psl = true,
-},
-.{
- .name = "std:",
- .syntax = .joined,
- .zig_equivalent = .other,
- .pd1 = true,
- .pd2 = false,
- .psl = true,
-},
.{
.name = "u",
.syntax = .flag,
@@ -1751,14 +1276,6 @@ flagpd1("###"),
.pd2 = false,
.psl = true,
},
-.{
- .name = "vd",
- .syntax = .joined,
- .zig_equivalent = .other,
- .pd1 = true,
- .pd2 = false,
- .psl = true,
-},
.{
.name = "vmb",
.syntax = .flag,
@@ -1815,14 +1332,6 @@ flagpd1("###"),
.pd2 = false,
.psl = true,
},
-.{
- .name = "w",
- .syntax = .joined,
- .zig_equivalent = .other,
- .pd1 = true,
- .pd2 = false,
- .psl = true,
-},
.{
.name = "w",
.syntax = .flag,
@@ -1895,14 +1404,6 @@ flagpd1("###"),
.pd2 = true,
.psl = false,
},
-.{
- .name = "analyzer-output",
- .syntax = .joined_or_separate,
- .zig_equivalent = .other,
- .pd1 = false,
- .pd2 = true,
- .psl = false,
-},
.{
.name = "assemble",
.syntax = .flag,
@@ -1919,14 +1420,6 @@ flagpd1("###"),
.pd2 = true,
.psl = false,
},
-.{
- .name = "assert=",
- .syntax = .joined,
- .zig_equivalent = .other,
- .pd1 = false,
- .pd2 = true,
- .psl = false,
-},
.{
.name = "bootclasspath",
.syntax = .separate,
@@ -1935,14 +1428,6 @@ flagpd1("###"),
.pd2 = true,
.psl = false,
},
-.{
- .name = "bootclasspath=",
- .syntax = .joined,
- .zig_equivalent = .other,
- .pd1 = false,
- .pd2 = true,
- .psl = false,
-},
.{
.name = "classpath",
.syntax = .separate,
@@ -1951,14 +1436,6 @@ flagpd1("###"),
.pd2 = true,
.psl = false,
},
-.{
- .name = "classpath=",
- .syntax = .joined,
- .zig_equivalent = .other,
- .pd1 = false,
- .pd2 = true,
- .psl = false,
-},
.{
.name = "comments",
.syntax = .flag,
@@ -1999,14 +1476,6 @@ flagpd1("###"),
.pd2 = true,
.psl = false,
},
-.{
- .name = "debug=",
- .syntax = .joined,
- .zig_equivalent = .other,
- .pd1 = false,
- .pd2 = true,
- .psl = false,
-},
.{
.name = "define-macro",
.syntax = .separate,
@@ -2015,14 +1484,6 @@ flagpd1("###"),
.pd2 = true,
.psl = false,
},
-.{
- .name = "define-macro=",
- .syntax = .joined,
- .zig_equivalent = .other,
- .pd1 = false,
- .pd2 = true,
- .psl = false,
-},
.{
.name = "dependencies",
.syntax = .flag,
@@ -2039,14 +1500,6 @@ flagpd1("###"),
.pd2 = true,
.psl = false,
},
-.{
- .name = "dyld-prefix=",
- .syntax = .joined,
- .zig_equivalent = .other,
- .pd1 = false,
- .pd2 = true,
- .psl = false,
-},
.{
.name = "encoding",
.syntax = .separate,
@@ -2055,14 +1508,6 @@ flagpd1("###"),
.pd2 = true,
.psl = false,
},
-.{
- .name = "encoding=",
- .syntax = .joined,
- .zig_equivalent = .other,
- .pd1 = false,
- .pd2 = true,
- .psl = false,
-},
.{
.name = "entry",
.syntax = .flag,
@@ -2079,14 +1524,6 @@ flagpd1("###"),
.pd2 = true,
.psl = false,
},
-.{
- .name = "extdirs=",
- .syntax = .joined,
- .zig_equivalent = .other,
- .pd1 = false,
- .pd2 = true,
- .psl = false,
-},
.{
.name = "extra-warnings",
.syntax = .flag,
@@ -2103,14 +1540,6 @@ flagpd1("###"),
.pd2 = true,
.psl = false,
},
-.{
- .name = "for-linker=",
- .syntax = .joined,
- .zig_equivalent = .other,
- .pd1 = false,
- .pd2 = true,
- .psl = false,
-},
.{
.name = "force-link",
.syntax = .separate,
@@ -2119,14 +1548,6 @@ flagpd1("###"),
.pd2 = true,
.psl = false,
},
-.{
- .name = "force-link=",
- .syntax = .joined,
- .zig_equivalent = .other,
- .pd1 = false,
- .pd2 = true,
- .psl = false,
-},
.{
.name = "help-hidden",
.syntax = .flag,
@@ -2135,22 +1556,6 @@ flagpd1("###"),
.pd2 = true,
.psl = false,
},
-.{
- .name = "imacros=",
- .syntax = .joined,
- .zig_equivalent = .other,
- .pd1 = false,
- .pd2 = true,
- .psl = false,
-},
-.{
- .name = "include=",
- .syntax = .joined,
- .zig_equivalent = .other,
- .pd1 = false,
- .pd2 = true,
- .psl = false,
-},
.{
.name = "include-barrier",
.syntax = .flag,
@@ -2167,14 +1572,6 @@ flagpd1("###"),
.pd2 = true,
.psl = false,
},
-.{
- .name = "include-directory=",
- .syntax = .joined,
- .zig_equivalent = .other,
- .pd1 = false,
- .pd2 = true,
- .psl = false,
-},
.{
.name = "include-directory-after",
.syntax = .separate,
@@ -2183,14 +1580,6 @@ flagpd1("###"),
.pd2 = true,
.psl = false,
},
-.{
- .name = "include-directory-after=",
- .syntax = .joined,
- .zig_equivalent = .other,
- .pd1 = false,
- .pd2 = true,
- .psl = false,
-},
.{
.name = "include-prefix",
.syntax = .separate,
@@ -2199,14 +1588,6 @@ flagpd1("###"),
.pd2 = true,
.psl = false,
},
-.{
- .name = "include-prefix=",
- .syntax = .joined,
- .zig_equivalent = .other,
- .pd1 = false,
- .pd2 = true,
- .psl = false,
-},
.{
.name = "include-with-prefix",
.syntax = .separate,
@@ -2215,14 +1596,6 @@ flagpd1("###"),
.pd2 = true,
.psl = false,
},
-.{
- .name = "include-with-prefix=",
- .syntax = .joined,
- .zig_equivalent = .other,
- .pd1 = false,
- .pd2 = true,
- .psl = false,
-},
.{
.name = "include-with-prefix-after",
.syntax = .separate,
@@ -2231,14 +1604,6 @@ flagpd1("###"),
.pd2 = true,
.psl = false,
},
-.{
- .name = "include-with-prefix-after=",
- .syntax = .joined,
- .zig_equivalent = .other,
- .pd1 = false,
- .pd2 = true,
- .psl = false,
-},
.{
.name = "include-with-prefix-before",
.syntax = .separate,
@@ -2247,14 +1612,6 @@ flagpd1("###"),
.pd2 = true,
.psl = false,
},
-.{
- .name = "include-with-prefix-before=",
- .syntax = .joined,
- .zig_equivalent = .other,
- .pd1 = false,
- .pd2 = true,
- .psl = false,
-},
.{
.name = "language",
.syntax = .separate,
@@ -2263,14 +1620,6 @@ flagpd1("###"),
.pd2 = true,
.psl = false,
},
-.{
- .name = "language=",
- .syntax = .joined,
- .zig_equivalent = .other,
- .pd1 = false,
- .pd2 = true,
- .psl = false,
-},
.{
.name = "library-directory",
.syntax = .separate,
@@ -2279,14 +1628,6 @@ flagpd1("###"),
.pd2 = true,
.psl = false,
},
-.{
- .name = "library-directory=",
- .syntax = .joined,
- .zig_equivalent = .other,
- .pd1 = false,
- .pd2 = true,
- .psl = false,
-},
.{
.name = "mhwdiv",
.syntax = .separate,
@@ -2295,14 +1636,6 @@ flagpd1("###"),
.pd2 = true,
.psl = false,
},
-.{
- .name = "mhwdiv=",
- .syntax = .joined,
- .zig_equivalent = .other,
- .pd1 = false,
- .pd2 = true,
- .psl = false,
-},
.{
.name = "migrate",
.syntax = .flag,
@@ -2330,7 +1663,7 @@ flagpd1("###"),
.{
.name = "no-standard-libraries",
.syntax = .flag,
- .zig_equivalent = .other,
+ .zig_equivalent = .nostdlib,
.pd1 = false,
.pd2 = true,
.psl = false,
@@ -2359,14 +1692,6 @@ flagpd1("###"),
.pd2 = true,
.psl = false,
},
-.{
- .name = "optimize=",
- .syntax = .joined,
- .zig_equivalent = .other,
- .pd1 = false,
- .pd2 = true,
- .psl = false,
-},
.{
.name = "output",
.syntax = .separate,
@@ -2375,14 +1700,6 @@ flagpd1("###"),
.pd2 = true,
.psl = false,
},
-.{
- .name = "output=",
- .syntax = .joined,
- .zig_equivalent = .other,
- .pd1 = false,
- .pd2 = true,
- .psl = false,
-},
.{
.name = "output-class-directory",
.syntax = .separate,
@@ -2391,14 +1708,6 @@ flagpd1("###"),
.pd2 = true,
.psl = false,
},
-.{
- .name = "output-class-directory=",
- .syntax = .joined,
- .zig_equivalent = .other,
- .pd1 = false,
- .pd2 = true,
- .psl = false,
-},
.{
.name = "param",
.syntax = .separate,
@@ -2407,14 +1716,6 @@ flagpd1("###"),
.pd2 = true,
.psl = false,
},
-.{
- .name = "param=",
- .syntax = .joined,
- .zig_equivalent = .other,
- .pd1 = false,
- .pd2 = true,
- .psl = false,
-},
.{
.name = "precompile",
.syntax = .flag,
@@ -2431,14 +1732,6 @@ flagpd1("###"),
.pd2 = true,
.psl = false,
},
-.{
- .name = "prefix=",
- .syntax = .joined,
- .zig_equivalent = .other,
- .pd1 = false,
- .pd2 = true,
- .psl = false,
-},
.{
.name = "preprocess",
.syntax = .flag,
@@ -2503,14 +1796,6 @@ flagpd1("###"),
.pd2 = true,
.psl = false,
},
-.{
- .name = "resource=",
- .syntax = .joined,
- .zig_equivalent = .other,
- .pd1 = false,
- .pd2 = true,
- .psl = false,
-},
.{
.name = "rtlib",
.syntax = .separate,
@@ -2559,14 +1844,6 @@ flagpd1("###"),
.pd2 = true,
.psl = false,
},
-.{
- .name = "sysroot=",
- .syntax = .joined,
- .zig_equivalent = .other,
- .pd1 = false,
- .pd2 = true,
- .psl = false,
-},
.{
.name = "target-help",
.syntax = .flag,
@@ -2591,14 +1868,6 @@ flagpd1("###"),
.pd2 = true,
.psl = false,
},
-.{
- .name = "undefine-macro=",
- .syntax = .joined,
- .zig_equivalent = .other,
- .pd1 = false,
- .pd2 = true,
- .psl = false,
-},
.{
.name = "unsigned-char",
.syntax = .flag,
@@ -2631,22 +1900,6 @@ flagpd1("###"),
.pd2 = true,
.psl = false,
},
-.{
- .name = "warn-",
- .syntax = .joined,
- .zig_equivalent = .other,
- .pd1 = false,
- .pd2 = true,
- .psl = false,
-},
-.{
- .name = "warn-=",
- .syntax = .joined,
- .zig_equivalent = .other,
- .pd1 = false,
- .pd2 = true,
- .psl = false,
-},
.{
.name = "write-dependencies",
.syntax = .flag,
@@ -2663,7 +1916,6 @@ flagpd1("###"),
.pd2 = true,
.psl = false,
},
-joinpd1("a"),
sepd1("add-plugin"),
flagpd1("faggressive-function-elimination"),
flagpd1("fno-aggressive-function-elimination"),
@@ -2684,9 +1936,7 @@ flagpd1("cfg-add-implicit-dtors"),
flagpd1("unoptimized-cfg"),
flagpd1("analyze"),
sepd1("analyze-function"),
-joinpd1("analyze-function="),
sepd1("analyzer-checker"),
-joinpd1("analyzer-checker="),
flagpd1("analyzer-checker-help"),
flagpd1("analyzer-checker-help-alpha"),
flagpd1("analyzer-checker-help-developer"),
@@ -2695,32 +1945,23 @@ flagpd1("analyzer-checker-option-help-alpha"),
flagpd1("analyzer-checker-option-help-developer"),
sepd1("analyzer-config"),
sepd1("analyzer-config-compatibility-mode"),
-joinpd1("analyzer-config-compatibility-mode="),
flagpd1("analyzer-config-help"),
sepd1("analyzer-constraints"),
-joinpd1("analyzer-constraints="),
flagpd1("analyzer-disable-all-checks"),
sepd1("analyzer-disable-checker"),
-joinpd1("analyzer-disable-checker="),
flagpd1("analyzer-disable-retry-exhausted"),
flagpd1("analyzer-display-progress"),
sepd1("analyzer-dump-egraph"),
-joinpd1("analyzer-dump-egraph="),
sepd1("analyzer-inline-max-stack-depth"),
-joinpd1("analyzer-inline-max-stack-depth="),
sepd1("analyzer-inlining-mode"),
-joinpd1("analyzer-inlining-mode="),
flagpd1("analyzer-list-enabled-checkers"),
sepd1("analyzer-max-loop"),
flagpd1("analyzer-opt-analyze-headers"),
flagpd1("analyzer-opt-analyze-nested-blocks"),
sepd1("analyzer-output"),
-joinpd1("analyzer-output="),
sepd1("analyzer-purge"),
-joinpd1("analyzer-purge="),
flagpd1("analyzer-stats"),
sepd1("analyzer-store"),
-joinpd1("analyzer-store="),
flagpd1("analyzer-viz-egraph-graphviz"),
flagpd1("analyzer-werror"),
flagpd1("fslp-vectorize-aggressive"),
@@ -2735,7 +1976,6 @@ flagpd1("fhonor-infinites"),
flagpd1("fno-honor-infinites"),
flagpd1("findirect-virtual-calls"),
sepd1("fnew-alignment"),
-joinpd1("objcmt-white-list-dir-path="),
flagpd1("faligned-new"),
flagpd1("fno-aligned-new"),
flagpd1("fsched-interblock"),
@@ -2912,27 +2152,16 @@ flagpd1("arcmt-migrate-emit-errors"),
sepd1("arcmt-migrate-report-output"),
flagpd1("arcmt-modify"),
flagpd1("ast-dump"),
-joinpd1("ast-dump="),
flagpd1("ast-dump-all"),
-joinpd1("ast-dump-all="),
sepd1("ast-dump-filter"),
flagpd1("ast-dump-lookups"),
flagpd1("ast-list"),
sepd1("ast-merge"),
flagpd1("ast-print"),
flagpd1("ast-view"),
-.{
- .name = "autocomplete=",
- .syntax = .joined,
- .zig_equivalent = .other,
- .pd1 = false,
- .pd2 = true,
- .psl = false,
-},
flagpd1("fautomatic"),
flagpd1("fno-automatic"),
sepd1("aux-triple"),
-jspd1("b"),
flagpd1("fbackslash"),
flagpd1("fno-backslash"),
flagpd1("fbacktrace"),
@@ -2953,12 +2182,10 @@ sepd1("bundle_loader"),
.pd2 = false,
.psl = false,
},
-jspd1("c-isystem"),
flagpd1("fcaller-saves"),
flagpd1("fno-caller-saves"),
flagpd1("cc1"),
flagpd1("cc1as"),
-joinpd1("ccc-"),
flagpd1("ccc-arcmt-check"),
sepd1("ccc-arcmt-migrate"),
flagpd1("ccc-arcmt-modify"),
@@ -2973,14 +2200,6 @@ sepd1("chain-include"),
flagpd1("fcheck-array-temporaries"),
flagpd1("fno-check-array-temporaries"),
flagpd1("cl-denorms-are-zero"),
-.{
- .name = "cl-ext=",
- .syntax = .comma_joined,
- .zig_equivalent = .other,
- .pd1 = true,
- .pd2 = false,
- .psl = false,
-},
flagpd1("cl-fast-relaxed-math"),
flagpd1("cl-finite-math-only"),
flagpd1("cl-fp32-correctly-rounded-divide-sqrt"),
@@ -2989,13 +2208,10 @@ flagpd1("cl-mad-enable"),
flagpd1("cl-no-signed-zeros"),
flagpd1("cl-opt-disable"),
flagpd1("cl-single-precision-constant"),
-joinpd1("cl-std="),
flagpd1("cl-strict-aliasing"),
flagpd1("cl-uniform-work-group-size"),
flagpd1("cl-unsafe-math-optimizations"),
-jspd1("client_name"),
sepd1("code-completion-at"),
-joinpd1("code-completion-at="),
flagpd1("code-completion-brief-comments"),
flagpd1("code-completion-macros"),
flagpd1("code-completion-patterns"),
@@ -3008,7 +2224,6 @@ flagpd1("code-completion-with-fixits"),
.pd2 = true,
.psl = false,
},
-jspd1("compatibility_version"),
flagpd1("compiler-options-dump"),
.{
.name = "compress-debug-sections",
@@ -3018,14 +2233,6 @@ flagpd1("compiler-options-dump"),
.pd2 = true,
.psl = false,
},
-.{
- .name = "compress-debug-sections=",
- .syntax = .joined,
- .zig_equivalent = .other,
- .pd1 = true,
- .pd2 = true,
- .psl = false,
-},
.{
.name = "config",
.syntax = .separate,
@@ -3034,22 +2241,6 @@ flagpd1("compiler-options-dump"),
.pd2 = true,
.psl = false,
},
-.{
- .name = "config-system-dir=",
- .syntax = .joined,
- .zig_equivalent = .other,
- .pd1 = false,
- .pd2 = true,
- .psl = false,
-},
-.{
- .name = "config-user-dir=",
- .syntax = .joined,
- .zig_equivalent = .other,
- .pd1 = false,
- .pd2 = true,
- .psl = false,
-},
.{
.name = "coverage",
.syntax = .flag,
@@ -3060,12 +2251,9 @@ flagpd1("compiler-options-dump"),
},
flagpd1("coverage-cfg-checksum"),
sepd1("coverage-data-file"),
-joinpd1("coverage-data-file="),
flagpd1("coverage-exit-block-before-body"),
flagpd1("coverage-no-function-names-in-data"),
sepd1("coverage-notes-file"),
-joinpd1("coverage-notes-file="),
-joinpd1("coverage-version="),
flagpd1("cpp"),
flagpd1("cpp-precomp"),
flagpd1("fcray-pointer"),
@@ -3086,14 +2274,6 @@ flagpd1("fno-cray-pointer"),
.pd2 = true,
.psl = false,
},
-.{
- .name = "cuda-gpu-arch=",
- .syntax = .joined,
- .zig_equivalent = .other,
- .pd1 = false,
- .pd2 = true,
- .psl = false,
-},
.{
.name = "cuda-host-only",
.syntax = .flag,
@@ -3102,14 +2282,6 @@ flagpd1("fno-cray-pointer"),
.pd2 = true,
.psl = false,
},
-.{
- .name = "cuda-include-ptx=",
- .syntax = .joined,
- .zig_equivalent = .other,
- .pd1 = false,
- .pd2 = true,
- .psl = false,
-},
.{
.name = "cuda-noopt-device-debug",
.syntax = .flag,
@@ -3118,14 +2290,6 @@ flagpd1("fno-cray-pointer"),
.pd2 = true,
.psl = false,
},
-.{
- .name = "cuda-path=",
- .syntax = .joined,
- .zig_equivalent = .other,
- .pd1 = false,
- .pd2 = true,
- .psl = false,
-},
.{
.name = "cuda-path-ignore-env",
.syntax = .flag,
@@ -3134,23 +2298,18 @@ flagpd1("fno-cray-pointer"),
.pd2 = true,
.psl = false,
},
-jspd1("current_version"),
-jspd1("cxx-isystem"),
flagpd1("dA"),
flagpd1("dD"),
flagpd1("dI"),
flagpd1("dM"),
flagpd1("d"),
-joinpd1("d"),
flagpd1("fd-lines-as-code"),
flagpd1("fno-d-lines-as-code"),
flagpd1("fd-lines-as-comments"),
flagpd1("fno-d-lines-as-comments"),
flagpd1("dead_strip"),
flagpd1("debug-forward-template-params"),
-joinpd1("debug-info-kind="),
flagpd1("debug-info-macro"),
-joinpd1("debugger-tuning="),
flagpd1("fdefault-double-8"),
flagpd1("fno-default-double-8"),
sepd1("default-function-attr"),
@@ -3163,14 +2322,6 @@ flagpd1("fno-default-real-8"),
sepd1("defsym"),
sepd1("dependency-dot"),
sepd1("dependency-file"),
-.{
- .name = "dependent-lib=",
- .syntax = .joined,
- .zig_equivalent = .other,
- .pd1 = false,
- .pd2 = true,
- .psl = false,
-},
flagpd1("detailed-preprocessing-record"),
flagpd1("fdevirtualize"),
flagpd1("fno-devirtualize"),
@@ -3190,14 +2341,6 @@ flagpd1("disable-red-zone"),
flagpd1("discard-value-names"),
flagpd1("fdollar-ok"),
flagpd1("fno-dollar-ok"),
-.{
- .name = "driver-mode=",
- .syntax = .joined,
- .zig_equivalent = .other,
- .pd1 = false,
- .pd2 = true,
- .psl = false,
-},
flagpd1("dump-coverage-mapping"),
flagpd1("dump-deserialized-decls"),
flagpd1("fdump-fortran-optimized"),
@@ -3216,13 +2359,10 @@ sepd1("dwarf-debug-flags"),
sepd1("dwarf-debug-producer"),
flagpd1("dwarf-explicit-import"),
flagpd1("dwarf-ext-refs"),
-joinpd1("dwarf-version="),
sepd1("dylib_file"),
flagpd1("dylinker"),
-jspd1("dylinker_install_name"),
flagpd1("dynamic"),
flagpd1("dynamiclib"),
-jspd1("e"),
flagpd1("feliminate-unused-debug-types"),
flagpd1("fno-eliminate-unused-debug-types"),
flagpd1("emit-ast"),
@@ -3241,24 +2381,24 @@ flagpd1("emit-obj"),
flagpd1("emit-pch"),
flagpd1("enable-trivial-auto-var-init-zero-knowing-it-will-be-removed-from-clang"),
sepd1("error-on-deserialized-decl"),
-joinpd1("error-on-deserialized-decl="),
sepd1("exported_symbols_list"),
flagpd1("fexternal-blas"),
flagpd1("fno-external-blas"),
flagpd1("ff2c"),
flagpd1("fno-f2c"),
-flagpd1("fPIC"),
+.{
+ .name = "fPIC",
+ .syntax = .flag,
+ .zig_equivalent = .pic,
+ .pd1 = true,
+ .pd2 = false,
+ .psl = false,
+},
flagpd1("fPIE"),
flagpd1("faccess-control"),
-joinpd1("faddress-space-map-mangling="),
flagpd1("faddrsig"),
flagpd1("falign-functions"),
-joinpd1("falign-functions="),
-joinpd1("falign-jumps="),
-joinpd1("falign-labels="),
-joinpd1("falign-loops="),
flagpd1("faligned-allocation"),
-joinpd1("faligned-new="),
flagpd1("fallow-editor-placeholders"),
flagpd1("fallow-half-arguments-and-returns"),
flagpd1("fallow-pch-with-compiler-errors"),
@@ -3281,18 +2421,12 @@ flagpd1("fasynchronous-unwind-tables"),
flagpd1("ffat-lto-objects"),
flagpd1("fno-fat-lto-objects"),
flagpd1("fauto-profile"),
-joinpd1("fauto-profile="),
flagpd1("fauto-profile-accurate"),
flagpd1("fautolink"),
-joinpd1("fblas-matmul-limit="),
flagpd1("fblocks"),
flagpd1("fblocks-runtime-optional"),
-joinpd1("fbootclasspath="),
flagpd1("fborland-extensions"),
sepd1("fbracket-depth"),
-joinpd1("fbracket-depth="),
-joinpd1("fbuild-session-file="),
-joinpd1("fbuild-session-timestamp="),
flagpd1("fbuiltin"),
flagpd1("fbuiltin-module-map"),
flagpd1("fcall-saved-x10"),
@@ -3307,46 +2441,24 @@ flagpd1("fcall-saved-x9"),
flagpd1("fcaret-diagnostics"),
sepd1("fcaret-diagnostics-max-lines"),
flagpd1("fcf-protection"),
-joinpd1("fcf-protection="),
-joinpd1("fcf-runtime-abi="),
flagpd1("fchar8_t"),
-joinpd1("fcheck="),
flagpd1("fcheck-new"),
flagpd1("fno-check-new"),
-joinpd1("fclang-abi-compat="),
-joinpd1("fclasspath="),
-joinpd1("fcoarray="),
flagpd1("fcolor-diagnostics"),
-.{
- .name = "fcomment-block-commands=",
- .syntax = .comma_joined,
- .zig_equivalent = .other,
- .pd1 = true,
- .pd2 = false,
- .psl = false,
-},
flagpd1("fcommon"),
-joinpd1("fcompile-resource="),
flagpd1("fcomplete-member-pointers"),
flagpd1("fconcepts-ts"),
flagpd1("fconst-strings"),
flagpd1("fconstant-cfstrings"),
sepd1("fconstant-string-class"),
-joinpd1("fconstant-string-class="),
sepd1("fconstexpr-backtrace-limit"),
-joinpd1("fconstexpr-backtrace-limit="),
sepd1("fconstexpr-depth"),
-joinpd1("fconstexpr-depth="),
sepd1("fconstexpr-steps"),
-joinpd1("fconstexpr-steps="),
flagpd1("fconvergent-functions"),
-joinpd1("fconvert="),
flagpd1("fcoroutines-ts"),
flagpd1("fcoverage-mapping"),
-joinpd1("fcrash-diagnostics-dir="),
flagpd1("fcreate-profile"),
flagpd1("fcs-profile-generate"),
-joinpd1("fcs-profile-generate="),
flagpd1("fcuda-allow-variadic-functions"),
flagpd1("fcuda-approx-transcendentals"),
flagpd1("fcuda-flush-denormals-to-zero"),
@@ -3358,14 +2470,11 @@ flagpd1("fcxx-modules"),
flagpd1("fc++-static-destructors"),
flagpd1("fdata-sections"),
sepd1("fdebug-compilation-dir"),
-joinpd1("fdebug-compilation-dir="),
-joinpd1("fdebug-default-version="),
flagpd1("fdebug-info-for-profiling"),
flagpd1("fdebug-macro"),
flagpd1("fdebug-pass-arguments"),
flagpd1("fdebug-pass-manager"),
flagpd1("fdebug-pass-structure"),
-joinpd1("fdebug-prefix-map="),
flagpd1("fdebug-ranges-base-address"),
flagpd1("fdebug-types-section"),
flagpd1("fdebugger-cast-result-to-id"),
@@ -3373,25 +2482,17 @@ flagpd1("fdebugger-objc-literal"),
flagpd1("fdebugger-support"),
flagpd1("fdeclare-opencl-builtins"),
flagpd1("fdeclspec"),
-joinpd1("fdefault-calling-conv="),
flagpd1("fdelayed-template-parsing"),
flagpd1("fdelete-null-pointer-checks"),
-joinpd1("fdenormal-fp-math="),
-joinpd1("fdepfile-entry="),
flagpd1("fdeprecated-macro"),
flagpd1("fdiagnostics-absolute-paths"),
flagpd1("fdiagnostics-color"),
-joinpd1("fdiagnostics-color="),
flagpd1("fdiagnostics-fixit-info"),
sepd1("fdiagnostics-format"),
-joinpd1("fdiagnostics-format="),
-joinpd1("fdiagnostics-hotness-threshold="),
flagpd1("fdiagnostics-parseable-fixits"),
flagpd1("fdiagnostics-print-source-range-info"),
sepd1("fdiagnostics-show-category"),
-joinpd1("fdiagnostics-show-category="),
flagpd1("fdiagnostics-show-hotness"),
-joinpd1("fdiagnostics-show-location="),
flagpd1("fdiagnostics-show-note-include-stack"),
flagpd1("fdiagnostics-show-option"),
flagpd1("fdiagnostics-show-template-tree"),
@@ -3409,7 +2510,6 @@ flagpd1("fdwarf-exceptions"),
flagpd1("felide-constructors"),
flagpd1("feliminate-unused-debug-symbols"),
flagpd1("fembed-bitcode"),
-joinpd1("fembed-bitcode="),
flagpd1("fembed-bitcode-marker"),
flagpd1("femit-all-decls"),
flagpd1("femit-coverage-data"),
@@ -3417,24 +2517,17 @@ flagpd1("femit-coverage-notes"),
flagpd1("femit-debug-entry-values"),
flagpd1("femulated-tls"),
flagpd1("fencode-extended-block-signature"),
-joinpd1("fencoding="),
sepd1("ferror-limit"),
-joinpd1("ferror-limit="),
flagpd1("fescaping-block-tail-calls"),
flagpd1("fexceptions"),
-joinpd1("fexcess-precision="),
-joinpd1("fexec-charset="),
flagpd1("fexperimental-isel"),
flagpd1("fexperimental-new-constant-interpreter"),
flagpd1("fexperimental-new-pass-manager"),
-joinpd1("fextdirs="),
flagpd1("fexternc-nounwind"),
flagpd1("ffake-address-space-map"),
flagpd1("ffast-math"),
-joinpd1("ffile-prefix-map="),
flagpd1("ffine-grained-bitfield-accesses"),
flagpd1("ffinite-math-only"),
-joinpd1("ffixed-line-length-"),
flagpd1("ffixed-point"),
flagpd1("ffixed-r19"),
flagpd1("ffixed-r9"),
@@ -3474,18 +2567,12 @@ flagpd1("fforbid-guard-variables"),
flagpd1("fforce-dwarf-frame"),
flagpd1("fforce-emit-vtables"),
flagpd1("fforce-enable-int128"),
-joinpd1("ffp-contract="),
-joinpd1("ffp-exception-behavior="),
-joinpd1("ffp-model="),
-joinpd1("ffpe-trap="),
-joinpd1("ffree-line-length-"),
flagpd1("ffreestanding"),
flagpd1("ffunction-sections"),
flagpd1("fgnu89-inline"),
flagpd1("fgnu-inline-asm"),
flagpd1("fgnu-keywords"),
flagpd1("fgnu-runtime"),
-joinpd1("fgnuc-version="),
flagpd1("fgpu-allow-device-init"),
flagpd1("fgpu-rdc"),
flagpd1("fheinous-gnu-extensions"),
@@ -3499,17 +2586,11 @@ sepd1("filetype"),
flagpd1("fimplicit-module-maps"),
flagpd1("fimplicit-modules"),
flagpd1("finclude-default-header"),
-joinpd1("finit-character="),
-joinpd1("finit-integer="),
-joinpd1("finit-logical="),
-joinpd1("finit-real="),
flagpd1("finline"),
flagpd1("finline-functions"),
flagpd1("finline-hint-functions"),
-joinpd1("finline-limit="),
flagpd1("finline-limit"),
flagpd1("fno-inline-limit"),
-joinpd1("finput-charset="),
flagpd1("finstrument-function-entry-bare"),
flagpd1("finstrument-functions"),
flagpd1("finstrument-functions-after-inlining"),
@@ -3520,59 +2601,36 @@ flagpd1("fix-what-you-can"),
flagpd1("ffixed-form"),
flagpd1("fno-fixed-form"),
flagpd1("fixit"),
-joinpd1("fixit="),
flagpd1("fixit-recompile"),
flagpd1("fixit-to-temporary"),
flagpd1("fjump-tables"),
flagpd1("fkeep-static-consts"),
flagpd1("flat_namespace"),
flagpd1("flax-vector-conversions"),
-joinpd1("flax-vector-conversions="),
flagpd1("flimit-debug-info"),
-joinpd1("flimited-precision="),
flagpd1("ffloat-store"),
flagpd1("fno-float-store"),
flagpd1("flto"),
-joinpd1("flto="),
-joinpd1("flto-jobs="),
flagpd1("flto-unit"),
flagpd1("flto-visibility-public-std"),
sepd1("fmacro-backtrace-limit"),
-joinpd1("fmacro-backtrace-limit="),
-joinpd1("fmacro-prefix-map="),
flagpd1("fmath-errno"),
-joinpd1("fmax-array-constructor="),
-joinpd1("fmax-errors="),
-joinpd1("fmax-stack-var-size="),
-joinpd1("fmax-subrecord-length="),
-joinpd1("fmax-type-align="),
flagpd1("fmerge-all-constants"),
flagpd1("fmerge-functions"),
sepd1("fmessage-length"),
-joinpd1("fmessage-length="),
sepd1("fmodule-feature"),
-joinpd1("fmodule-file="),
flagpd1("fmodule-file-deps"),
-joinpd1("fmodule-format="),
sepd1("fmodule-implementation-of"),
-joinpd1("fmodule-map-file="),
flagpd1("fmodule-map-file-home-is-cwd"),
flagpd1("fmodule-maps"),
sepd1("fmodule-name"),
-joinpd1("fmodule-name="),
flagpd1("fmodules"),
-joinpd1("fmodules-cache-path="),
flagpd1("fmodules-codegen"),
flagpd1("fmodules-debuginfo"),
flagpd1("fmodules-decluse"),
flagpd1("fmodules-disable-diagnostic-validation"),
-joinpd1("fmodules-embed-all-files"),
-joinpd1("fmodules-embed-file="),
flagpd1("fmodules-hash-content"),
-joinpd1("fmodules-ignore-macro="),
flagpd1("fmodules-local-submodule-visibility"),
-joinpd1("fmodules-prune-after="),
-joinpd1("fmodules-prune-interval="),
flagpd1("fmodules-search-all"),
flagpd1("fmodules-strict-context-hash"),
flagpd1("fmodules-strict-decluse"),
@@ -3582,19 +2640,22 @@ flagpd1("fmodules-validate-input-files-content"),
flagpd1("fmodules-validate-once-per-build-session"),
flagpd1("fmodules-validate-system-headers"),
flagpd1("fms-compatibility"),
-joinpd1("fms-compatibility-version="),
flagpd1("fms-extensions"),
-joinpd1("fms-memptr-rep="),
flagpd1("fms-volatile"),
-joinpd1("fmsc-version="),
flagpd1("fmudflap"),
flagpd1("fmudflapth"),
flagpd1("fnative-half-arguments-and-returns"),
flagpd1("fnative-half-type"),
flagpd1("fnested-functions"),
-joinpd1("fnew-alignment="),
flagpd1("fnext-runtime"),
-flagpd1("fno-PIC"),
+.{
+ .name = "fno-PIC",
+ .syntax = .flag,
+ .zig_equivalent = .no_pic,
+ .pd1 = true,
+ .pd2 = false,
+ .psl = false,
+},
flagpd1("fno-PIE"),
flagpd1("fno-access-control"),
flagpd1("fno-addrsig"),
@@ -3616,7 +2677,6 @@ flagpd1("fno-bitfield-type-align"),
flagpd1("fno-blocks"),
flagpd1("fno-borland-extensions"),
flagpd1("fno-builtin"),
-joinpd1("fno-builtin-"),
flagpd1("fno-caret-diagnostics"),
flagpd1("fno-char8_t"),
flagpd1("fno-color-diagnostics"),
@@ -3755,54 +2815,22 @@ flagpd1("fno-rtlib-add-rpath"),
flagpd1("fno-rtti"),
flagpd1("fno-rtti-data"),
flagpd1("fno-rwpi"),
-.{
- .name = "fno-sanitize=",
- .syntax = .comma_joined,
- .zig_equivalent = .other,
- .pd1 = true,
- .pd2 = false,
- .psl = false,
-},
flagpd1("fno-sanitize-address-poison-custom-array-cookie"),
flagpd1("fno-sanitize-address-use-after-scope"),
flagpd1("fno-sanitize-address-use-odr-indicator"),
flagpd1("fno-sanitize-blacklist"),
flagpd1("fno-sanitize-cfi-canonical-jump-tables"),
flagpd1("fno-sanitize-cfi-cross-dso"),
-.{
- .name = "fno-sanitize-coverage=",
- .syntax = .comma_joined,
- .zig_equivalent = .other,
- .pd1 = true,
- .pd2 = false,
- .psl = false,
-},
flagpd1("fno-sanitize-link-c++-runtime"),
flagpd1("fno-sanitize-link-runtime"),
flagpd1("fno-sanitize-memory-track-origins"),
flagpd1("fno-sanitize-memory-use-after-dtor"),
flagpd1("fno-sanitize-minimal-runtime"),
flagpd1("fno-sanitize-recover"),
-.{
- .name = "fno-sanitize-recover=",
- .syntax = .comma_joined,
- .zig_equivalent = .other,
- .pd1 = true,
- .pd2 = false,
- .psl = false,
-},
flagpd1("fno-sanitize-stats"),
flagpd1("fno-sanitize-thread-atomics"),
flagpd1("fno-sanitize-thread-func-entry-exit"),
flagpd1("fno-sanitize-thread-memory-access"),
-.{
- .name = "fno-sanitize-trap=",
- .syntax = .comma_joined,
- .zig_equivalent = .other,
- .pd1 = true,
- .pd2 = false,
- .psl = false,
-},
flagpd1("fno-sanitize-undefined-trap-on-error"),
flagpd1("fno-save-optimization-record"),
flagpd1("fno-short-enums"),
@@ -3858,14 +2886,11 @@ flagpd1("fno-xray-always-emit-customevents"),
flagpd1("fno-xray-always-emit-typedevents"),
flagpd1("fno-xray-instrument"),
flagpd1("fnoxray-link-deps"),
-joinpd1("fobjc-abi-version="),
flagpd1("fobjc-arc"),
-joinpd1("fobjc-arc-cxxlib="),
flagpd1("fobjc-arc-exceptions"),
flagpd1("fobjc-atdefs"),
flagpd1("fobjc-call-cxx-cdtors"),
flagpd1("fobjc-convert-messages-to-runtime-calls"),
-joinpd1("fobjc-dispatch-method="),
flagpd1("fobjc-exceptions"),
flagpd1("fobjc-gc"),
flagpd1("fobjc-gc-only"),
@@ -3874,91 +2899,50 @@ flagpd1("fobjc-legacy-dispatch"),
flagpd1("fobjc-link-runtime"),
flagpd1("fobjc-new-property"),
flagpd1("fobjc-nonfragile-abi"),
-joinpd1("fobjc-nonfragile-abi-version="),
-joinpd1("fobjc-runtime="),
flagpd1("fobjc-runtime-has-weak"),
flagpd1("fobjc-sender-dependent-dispatch"),
flagpd1("fobjc-subscripting-legacy-runtime"),
flagpd1("fobjc-weak"),
flagpd1("fomit-frame-pointer"),
flagpd1("fopenmp"),
-joinpd1("fopenmp="),
-joinpd1("fopenmp-cuda-blocks-per-sm="),
flagpd1("fopenmp-cuda-force-full-runtime"),
flagpd1("fopenmp-cuda-mode"),
-joinpd1("fopenmp-cuda-number-of-sm="),
-joinpd1("fopenmp-cuda-teams-reduction-recs-num="),
flagpd1("fopenmp-enable-irbuilder"),
sepd1("fopenmp-host-ir-file-path"),
flagpd1("fopenmp-is-device"),
flagpd1("fopenmp-optimistic-collapse"),
flagpd1("fopenmp-relocatable-target"),
flagpd1("fopenmp-simd"),
-.{
- .name = "fopenmp-targets=",
- .syntax = .comma_joined,
- .zig_equivalent = .other,
- .pd1 = true,
- .pd2 = false,
- .psl = false,
-},
flagpd1("fopenmp-use-tls"),
-joinpd1("fopenmp-version="),
sepd1("foperator-arrow-depth"),
-joinpd1("foperator-arrow-depth="),
-joinpd1("foptimization-record-file="),
-joinpd1("foptimization-record-passes="),
flagpd1("foptimize-sibling-calls"),
flagpd1("force_cpusubtype_ALL"),
flagpd1("force_flat_namespace"),
sepd1("force_load"),
-joinpd1("fforce-addr"),
flagpd1("forder-file-instrumentation"),
-joinpd1("foutput-class-dir="),
-joinpd1("foverride-record-layout="),
flagpd1("fpack-struct"),
-joinpd1("fpack-struct="),
flagpd1("fpadding-on-unsigned-fixed-point"),
flagpd1("fparse-all-comments"),
flagpd1("fpascal-strings"),
-joinpd1("fpass-plugin="),
-joinpd1("fpatchable-function-entry="),
-joinpd1("fpatchable-function-entry-offset="),
flagpd1("fpcc-struct-return"),
flagpd1("fpch-preprocess"),
flagpd1("fpch-validate-input-files-content"),
flagpd1("fpic"),
flagpd1("fpie"),
flagpd1("fplt"),
-joinpd1("fplugin="),
-joinpd1("fprebuilt-module-path="),
flagpd1("fpreserve-as-comments"),
flagpd1("fpreserve-vec3-type"),
flagpd1("fprofile-arcs"),
-joinpd1("fprofile-dir="),
-joinpd1("fprofile-exclude-files="),
-joinpd1("fprofile-filter-files="),
flagpd1("fprofile-generate"),
-joinpd1("fprofile-generate="),
flagpd1("fprofile-instr-generate"),
-joinpd1("fprofile-instr-generate="),
flagpd1("fprofile-instr-use"),
-joinpd1("fprofile-instr-use="),
-joinpd1("fprofile-instrument="),
-joinpd1("fprofile-instrument-path="),
-joinpd1("fprofile-instrument-use-path="),
sepd1("fprofile-remapping-file"),
-joinpd1("fprofile-remapping-file="),
flagpd1("fprofile-sample-accurate"),
flagpd1("fprofile-sample-use"),
-joinpd1("fprofile-sample-use="),
flagpd1("fprofile-use"),
-joinpd1("fprofile-use="),
sepd1("framework"),
-joinpd1("frandom-seed="),
flagpd1("freciprocal-math"),
flagpd1("frecord-command-line"),
-joinpd1("frecord-marker="),
flagpd1("ffree-form"),
flagpd1("fno-free-form"),
flagpd1("freg-struct-return"),
@@ -3969,7 +2953,6 @@ flagpd1("fretain-comments-from-system-headers"),
flagpd1("frewrite-imports"),
flagpd1("frewrite-includes"),
sepd1("frewrite-map-file"),
-joinpd1("frewrite-map-file="),
flagpd1("ffriend-injection"),
flagpd1("fno-friend-injection"),
flagpd1("ffrontend-optimize"),
@@ -3979,31 +2962,13 @@ flagpd1("frounding-math"),
flagpd1("frtlib-add-rpath"),
flagpd1("frtti"),
flagpd1("frwpi"),
-.{
- .name = "fsanitize=",
- .syntax = .comma_joined,
- .zig_equivalent = .other,
- .pd1 = true,
- .pd2 = false,
- .psl = false,
-},
-joinpd1("fsanitize-address-field-padding="),
flagpd1("fsanitize-address-globals-dead-stripping"),
flagpd1("fsanitize-address-poison-custom-array-cookie"),
flagpd1("fsanitize-address-use-after-scope"),
flagpd1("fsanitize-address-use-odr-indicator"),
-joinpd1("fsanitize-blacklist="),
flagpd1("fsanitize-cfi-canonical-jump-tables"),
flagpd1("fsanitize-cfi-cross-dso"),
flagpd1("fsanitize-cfi-icall-generalize-pointers"),
-.{
- .name = "fsanitize-coverage=",
- .syntax = .comma_joined,
- .zig_equivalent = .other,
- .pd1 = true,
- .pd2 = false,
- .psl = false,
-},
flagpd1("fsanitize-coverage-8bit-counters"),
flagpd1("fsanitize-coverage-indirect-calls"),
flagpd1("fsanitize-coverage-inline-8bit-counters"),
@@ -4016,45 +2981,22 @@ flagpd1("fsanitize-coverage-trace-div"),
flagpd1("fsanitize-coverage-trace-gep"),
flagpd1("fsanitize-coverage-trace-pc"),
flagpd1("fsanitize-coverage-trace-pc-guard"),
-joinpd1("fsanitize-coverage-type="),
-joinpd1("fsanitize-hwaddress-abi="),
flagpd1("fsanitize-link-c++-runtime"),
flagpd1("fsanitize-link-runtime"),
flagpd1("fsanitize-memory-track-origins"),
-joinpd1("fsanitize-memory-track-origins="),
flagpd1("fsanitize-memory-use-after-dtor"),
flagpd1("fsanitize-minimal-runtime"),
flagpd1("fsanitize-recover"),
-.{
- .name = "fsanitize-recover=",
- .syntax = .comma_joined,
- .zig_equivalent = .other,
- .pd1 = true,
- .pd2 = false,
- .psl = false,
-},
flagpd1("fsanitize-stats"),
-joinpd1("fsanitize-system-blacklist="),
flagpd1("fsanitize-thread-atomics"),
flagpd1("fsanitize-thread-func-entry-exit"),
flagpd1("fsanitize-thread-memory-access"),
-.{
- .name = "fsanitize-trap=",
- .syntax = .comma_joined,
- .zig_equivalent = .other,
- .pd1 = true,
- .pd2 = false,
- .psl = false,
-},
-joinpd1("fsanitize-undefined-strip-path-components="),
flagpd1("fsanitize-undefined-trap-on-error"),
flagpd1("fsave-optimization-record"),
-joinpd1("fsave-optimization-record="),
flagpd1("fseh-exceptions"),
flagpd1("fshort-enums"),
flagpd1("fshort-wchar"),
flagpd1("fshow-column"),
-joinpd1("fshow-overloads="),
flagpd1("fshow-source-location"),
flagpd1("fsignaling-math"),
flagpd1("fsigned-bitfields"),
@@ -4066,7 +3008,6 @@ flagpd1("fsjlj-exceptions"),
flagpd1("fslp-vectorize"),
flagpd1("fspell-checking"),
sepd1("fspell-checking-limit"),
-joinpd1("fspell-checking-limit="),
flagpd1("fsplit-dwarf-inlining"),
flagpd1("fsplit-lto-unit"),
flagpd1("fsplit-stack"),
@@ -4083,31 +3024,18 @@ flagpd1("fstrict-return"),
flagpd1("fstrict-vtable-pointers"),
flagpd1("fstruct-path-tbaa"),
flagpd1("fsycl-is-device"),
-joinpd1("fsymbol-partition="),
flagpd1("fsyntax-only"),
sepd1("ftabstop"),
-joinpd1("ftabstop="),
sepd1("ftemplate-backtrace-limit"),
-joinpd1("ftemplate-backtrace-limit="),
sepd1("ftemplate-depth"),
-joinpd1("ftemplate-depth-"),
-joinpd1("ftemplate-depth="),
flagpd1("ftest-coverage"),
-joinpd1("ftest-module-file-extension="),
-joinpd1("fthin-link-bitcode="),
-joinpd1("fthinlto-index="),
flagpd1("fthreadsafe-statics"),
flagpd1("ftime-report"),
flagpd1("ftime-trace"),
-joinpd1("ftime-trace-granularity="),
-joinpd1("ftls-model="),
-joinpd1("ftrap-function="),
flagpd1("ftrapping-math"),
flagpd1("ftrapv"),
sepd1("ftrapv-handler"),
-joinpd1("ftrapv-handler="),
flagpd1("ftrigraphs"),
-joinpd1("ftrivial-auto-var-init="),
sepd1("ftype-visibility"),
sepd1("function-alignment"),
flagpd1("ffunction-attribute-list"),
@@ -4122,35 +3050,24 @@ flagpd1("funsigned-char"),
flagpd1("funwind-tables"),
flagpd1("fuse-cxa-atexit"),
flagpd1("fuse-init-array"),
-joinpd1("fuse-ld="),
flagpd1("fuse-line-directives"),
flagpd1("fuse-register-sized-bitfield-access"),
flagpd1("fvalidate-ast-input-files-content"),
-joinpd1("fveclib="),
flagpd1("fvectorize"),
flagpd1("fverbose-asm"),
flagpd1("fvirtual-function-elimination"),
sepd1("fvisibility"),
-joinpd1("fvisibility="),
flagpd1("fvisibility-global-new-delete-hidden"),
flagpd1("fvisibility-inlines-hidden"),
flagpd1("fvisibility-ms-compat"),
flagpd1("fwasm-exceptions"),
-joinpd1("fwchar-type="),
flagpd1("fwhole-program-vtables"),
flagpd1("fwrapv"),
flagpd1("fwritable-strings"),
flagpd1("fxray-always-emit-customevents"),
flagpd1("fxray-always-emit-typedevents"),
-jspd1("fxray-always-instrument="),
-jspd1("fxray-attr-list="),
-jspd1("fxray-instruction-threshold"),
-jspd1("fxray-instruction-threshold="),
flagpd1("fxray-instrument"),
-jspd1("fxray-instrumentation-bundle="),
flagpd1("fxray-link-deps"),
-jspd1("fxray-modes="),
-jspd1("fxray-never-instrument="),
flagpd1("fzero-initialized-in-bss"),
flagpd1("fzvector"),
flagpd1("g0"),
@@ -4158,18 +3075,9 @@ flagpd1("g1"),
flagpd1("g2"),
flagpd1("g3"),
flagpd1("g"),
-.{
- .name = "gcc-toolchain=",
- .syntax = .joined,
- .zig_equivalent = .other,
- .pd1 = false,
- .pd2 = true,
- .psl = false,
-},
sepd1("gcc-toolchain"),
flagpd1("gcodeview"),
flagpd1("gcodeview-ghash"),
-joinpd1("gcoff"),
flagpd1("gcolumn-info"),
flagpd1("fgcse-after-reload"),
flagpd1("fno-gcse-after-reload"),
@@ -4211,53 +3119,23 @@ flagpd1("gno-record-command-line"),
flagpd1("gno-strict-dwarf"),
flagpd1("fgnu"),
flagpd1("fno-gnu"),
-.{
- .name = "gpu-max-threads-per-block=",
- .syntax = .joined,
- .zig_equivalent = .other,
- .pd1 = false,
- .pd2 = true,
- .psl = false,
-},
flagpd1("gpubnames"),
flagpd1("grecord-command-line"),
flagpd1("gsce"),
flagpd1("gsplit-dwarf"),
-joinpd1("gsplit-dwarf="),
-joinpd1("gstabs"),
flagpd1("gstrict-dwarf"),
flagpd1("gtoggle"),
flagpd1("gused"),
-joinpd1("gvms"),
-joinpd1("gxcoff"),
flagpd1("gz"),
-joinpd1("gz="),
sepd1("header-include-file"),
-joinpd1("headerpad_max_install_names"),
.{
.name = "help",
.syntax = .flag,
- .zig_equivalent = .other,
+ .zig_equivalent = .passthrough,
.pd1 = true,
.pd2 = true,
.psl = false,
},
-.{
- .name = "hip-device-lib=",
- .syntax = .joined,
- .zig_equivalent = .other,
- .pd1 = false,
- .pd2 = true,
- .psl = false,
-},
-.{
- .name = "hip-device-lib-path=",
- .syntax = .joined,
- .zig_equivalent = .other,
- .pd1 = false,
- .pd2 = true,
- .psl = false,
-},
.{
.name = "hip-link",
.syntax = .flag,
@@ -4266,17 +3144,6 @@ joinpd1("headerpad_max_install_names"),
.pd2 = true,
.psl = false,
},
-jspd1("idirafter"),
-jspd1("iframework"),
-jspd1("iframeworkwithsysroot"),
-.{
- .name = "imacros",
- .syntax = .joined_or_separate,
- .zig_equivalent = .other,
- .pd1 = true,
- .pd2 = true,
- .psl = false,
-},
sepd1("image_base"),
flagpd1("fimplement-inlines"),
flagpd1("fno-implement-inlines"),
@@ -4285,14 +3152,6 @@ flagpd1("fno-implicit-none"),
flagpd1("fimplicit-templates"),
flagpd1("fno-implicit-templates"),
sepd1("imultilib"),
-.{
- .name = "include",
- .syntax = .joined_or_separate,
- .zig_equivalent = .other,
- .pd1 = true,
- .pd2 = true,
- .psl = false,
-},
sepd1("include-pch"),
flagpd1("index-header-map"),
sepd1("init"),
@@ -4306,51 +3165,15 @@ flagpd1("fno-inline-small-functions"),
sepd1("install_name"),
flagpd1("finteger-4-integer-8"),
flagpd1("fno-integer-4-integer-8"),
-jspd1("interface-stub-version="),
-jspd1("internal-externc-isystem"),
-jspd1("internal-isystem"),
flagpd1("fintrinsic-modules-path"),
flagpd1("fno-intrinsic-modules-path"),
flagpd1("fipa-cp"),
flagpd1("fno-ipa-cp"),
-jspd1("iprefix"),
-jspd1("iquote"),
-jspd1("isysroot"),
-jspd1("isystem"),
-jspd1("isystem-after"),
-jspd1("ivfsoverlay"),
flagpd1("fivopts"),
flagpd1("fno-ivopts"),
-jspd1("iwithprefix"),
-jspd1("iwithprefixbefore"),
-jspd1("iwithsysroot"),
flagpd1("keep_private_externs"),
-.{
- .name = "l",
- .syntax = .joined_or_separate,
- .zig_equivalent = .l,
- .pd1 = true,
- .pd2 = false,
- .psl = false,
-},
sepd1("lazy_framework"),
sepd1("lazy_library"),
-.{
- .name = "libomptarget-nvptx-path=",
- .syntax = .joined,
- .zig_equivalent = .other,
- .pd1 = false,
- .pd2 = true,
- .psl = false,
-},
-.{
- .name = "linker-option=",
- .syntax = .joined,
- .zig_equivalent = .other,
- .pd1 = false,
- .pd2 = true,
- .psl = false,
-},
sepd1("load"),
flagpd1("m16"),
flagpd1("m32"),
@@ -4358,34 +3181,14 @@ flagpd1("m3dnow"),
flagpd1("m3dnowa"),
flagpd1("m64"),
flagpd1("m80387"),
-joinpd1("mabi="),
flagpd1("mabi=ieeelongdouble"),
flagpd1("mabicalls"),
-joinpd1("mabs="),
flagpd1("madx"),
flagpd1("maes"),
sepd1("main-file-name"),
-.{
- .name = "malign-branch=",
- .syntax = .comma_joined,
- .zig_equivalent = .other,
- .pd1 = true,
- .pd2 = false,
- .psl = false,
-},
-joinpd1("malign-branch-boundary="),
-joinpd1("malign-branch-prefix-size="),
flagpd1("malign-double"),
-joinpd1("malign-functions="),
-joinpd1("malign-jumps="),
-joinpd1("malign-loops="),
flagpd1("maltivec"),
-joinpd1("mamdgpu-debugger-abi="),
-joinpd1("mappletvos-version-min="),
-joinpd1("mappletvsimulator-version-min="),
-joinpd1("march="),
flagpd1("marm"),
-joinpd1("masm="),
flagpd1("masm-verbose"),
flagpd1("massembler-fatal-warnings"),
flagpd1("massembler-no-warn"),
@@ -4414,7 +3217,6 @@ flagpd1("mbig-endian"),
flagpd1("mbmi"),
flagpd1("mbmi2"),
flagpd1("mbranch-likely"),
-joinpd1("mbranch-protection="),
flagpd1("mbranch-target-enforce"),
flagpd1("mbranches-within-32B-boundaries"),
flagpd1("mbulk-memory"),
@@ -4423,32 +3225,25 @@ flagpd1("mcldemote"),
flagpd1("mclflushopt"),
flagpd1("mclwb"),
flagpd1("mclzero"),
-joinpd1("mcmodel="),
flagpd1("mcmodel=medany"),
flagpd1("mcmodel=medlow"),
flagpd1("mcmpb"),
flagpd1("mcmse"),
sepd1("mcode-model"),
flagpd1("mcode-object-v3"),
-joinpd1("mcompact-branches="),
-joinpd1("mconsole"),
flagpd1("mconstant-cfstrings"),
flagpd1("mconstructor-aliases"),
-joinpd1("mcpu="),
flagpd1("mcpu=?"),
flagpd1("mcrbits"),
flagpd1("mcrc"),
flagpd1("mcumode"),
flagpd1("mcx16"),
sepd1("mdebug-pass"),
-joinpd1("mdefault-build-attributes"),
flagpd1("mdirect-move"),
flagpd1("mdisable-tail-calls"),
-joinpd1("mdll"),
flagpd1("mdouble-float"),
flagpd1("mdsp"),
flagpd1("mdspr2"),
-joinpd1("mdynamic-no-pic"),
sepd1("meabi"),
flagpd1("membedded-data"),
flagpd1("menable-no-infs"),
@@ -4467,17 +3262,13 @@ flagpd1("mfix-and-continue"),
flagpd1("mfix-cortex-a53-835769"),
flagpd1("mfloat128"),
sepd1("mfloat-abi"),
-joinpd1("mfloat-abi="),
flagpd1("mfma"),
flagpd1("mfma4"),
flagpd1("mfp32"),
flagpd1("mfp64"),
sepd1("mfpmath"),
-joinpd1("mfpmath="),
flagpd1("mfprnd"),
-joinpd1("mfpu="),
flagpd1("mfpxx"),
-joinpd1("mframe-pointer="),
flagpd1("mfsgsbase"),
flagpd1("mfxsr"),
flagpd1("mgeneral-regs-only"),
@@ -4488,11 +3279,7 @@ flagpd1("mglobal-merge"),
flagpd1("mgpopt"),
flagpd1("mhard-float"),
flagpd1("mhvx"),
-joinpd1("mhvx="),
-joinpd1("mhvx-length="),
flagpd1("mhtm"),
-joinpd1("mhwdiv="),
-joinpd1("mhwmult="),
flagpd1("miamcu"),
flagpd1("mieee-fp"),
flagpd1("mieee-rnd-near"),
@@ -4500,16 +3287,10 @@ flagpd1("migrate"),
flagpd1("no-finalize-removal"),
flagpd1("no-ns-alloc-error"),
flagpd1("mimplicit-float"),
-joinpd1("mimplicit-it="),
flagpd1("mincremental-linker-compatible"),
-joinpd1("mindirect-jump="),
flagpd1("minline-all-stringops"),
flagpd1("minvariant-function-descriptors"),
flagpd1("minvpcid"),
-joinpd1("mios-simulator-version-min="),
-joinpd1("mios-version-min="),
-joinpd1("miphoneos-version-min="),
-joinpd1("miphonesimulator-version-min="),
flagpd1("mips1"),
flagpd1("mips16"),
flagpd1("mips2"),
@@ -4533,7 +3314,6 @@ sepd1("mlimit-float-precision"),
sepd1("mlink-bitcode-file"),
sepd1("mlink-builtin-bitcode"),
sepd1("mlink-cuda-bitcode"),
-joinpd1("mlinker-version="),
flagpd1("mlittle-endian"),
sepd1("mllvm"),
flagpd1("mlocal-sdata"),
@@ -4544,10 +3324,7 @@ flagpd1("mlong-double-80"),
flagpd1("mlongcall"),
flagpd1("mlwp"),
flagpd1("mlzcnt"),
-joinpd1("mmacos-version-min="),
-joinpd1("mmacosx-version-min="),
flagpd1("mmadd4"),
-joinpd1("mmcu="),
flagpd1("mmemops"),
flagpd1("mmfcrf"),
flagpd1("mmfocrf"),
@@ -4563,7 +3340,6 @@ flagpd1("mmt"),
flagpd1("mmultivalue"),
flagpd1("mmutable-globals"),
flagpd1("mmwaitx"),
-joinpd1("mnan="),
flagpd1("mno-3dnow"),
flagpd1("mno-3dnowa"),
flagpd1("mno-80387"),
@@ -4606,7 +3382,6 @@ flagpd1("mno-crbits"),
flagpd1("mno-crc"),
flagpd1("mno-cumode"),
flagpd1("mno-cx16"),
-joinpd1("mno-default-build-attributes"),
flagpd1("mno-dsp"),
flagpd1("mno-dspr2"),
flagpd1("mno-embedded-data"),
@@ -4761,7 +3536,6 @@ flagpd1("fno-modulo-sched-allow-regmoves"),
flagpd1("fmodulo-sched"),
flagpd1("fno-modulo-sched"),
flagpd1("momit-leaf-frame-pointer"),
-joinpd1("moslib="),
flagpd1("moutline"),
flagpd1("mpacked-stack"),
flagpd1("mpackets"),
@@ -4775,7 +3549,6 @@ flagpd1("mpopcntd"),
flagpd1("mcrypto"),
flagpd1("mpower8-vector"),
flagpd1("mpower9-vector"),
-joinpd1("mprefer-vector-width="),
flagpd1("mprefetchwt1"),
flagpd1("mprfchw"),
flagpd1("mptwrite"),
@@ -4787,19 +3560,10 @@ flagpd1("mrdrnd"),
flagpd1("mrdseed"),
flagpd1("mreassociate"),
flagpd1("mrecip"),
-.{
- .name = "mrecip=",
- .syntax = .comma_joined,
- .zig_equivalent = .other,
- .pd1 = true,
- .pd2 = false,
- .psl = false,
-},
flagpd1("mrecord-mcount"),
flagpd1("mred-zone"),
flagpd1("mreference-types"),
sepd1("mregparm"),
-joinpd1("mregparm="),
flagpd1("mrelax"),
flagpd1("mrelax-all"),
flagpd1("mrelax-pic-calls"),
@@ -4825,11 +3589,8 @@ flagpd1("msgx"),
flagpd1("msha"),
flagpd1("mshstk"),
flagpd1("msign-ext"),
-joinpd1("msign-return-address="),
-joinpd1("msign-return-address-key="),
flagpd1("msimd128"),
flagpd1("msingle-float"),
-joinpd1("msmall-data-threshold="),
flagpd1("msoft-float"),
flagpd1("mspe"),
flagpd1("mspeculative-load-hardening"),
@@ -4842,31 +3603,22 @@ flagpd1("msse4.1"),
flagpd1("msse4.2"),
flagpd1("msse4a"),
flagpd1("mssse3"),
-joinpd1("mstack-alignment="),
flagpd1("mstack-arg-probe"),
-joinpd1("mstack-probe-size="),
flagpd1("mstackrealign"),
flagpd1("mstrict-align"),
sepd1("mt-migrate-directory"),
flagpd1("mtail-call"),
flagpd1("mtbm"),
sepd1("mthread-model"),
-joinpd1("mthreads"),
flagpd1("mthumb"),
flagpd1("mtls-direct-seg-refs"),
-joinpd1("mtls-size="),
sepd1("mtp"),
-joinpd1("mtp="),
-joinpd1("mtune="),
flagpd1("mtune=?"),
-joinpd1("mtvos-simulator-version-min="),
-joinpd1("mtvos-version-min="),
flagpd1("muclibc"),
flagpd1("multi_module"),
sepd1("multiply_defined"),
sepd1("multiply_defined_unused"),
flagpd1("munaligned-access"),
-joinpd1("municode"),
flagpd1("munimplemented-simd128"),
flagpd1("munwind-tables"),
flagpd1("mv5"),
@@ -4883,12 +3635,8 @@ flagpd1("mvx"),
flagpd1("mvzeroupper"),
flagpd1("mwaitpkg"),
flagpd1("mwarn-nonportable-cfstrings"),
-joinpd1("mwatchos-simulator-version-min="),
-joinpd1("mwatchos-version-min="),
-joinpd1("mwatchsimulator-version-min="),
flagpd1("mwavefrontsize64"),
flagpd1("mwbnoinvd"),
-joinpd1("mwindows"),
flagpd1("mx32"),
flagpd1("mx87"),
flagpd1("mxgot"),
@@ -4906,22 +3654,6 @@ flagpd1("no-canonical-prefixes"),
flagpd1("no-code-completion-globals"),
flagpd1("no-code-completion-ns-level-decls"),
flagpd1("no-cpp-precomp"),
-.{
- .name = "no-cuda-gpu-arch=",
- .syntax = .joined,
- .zig_equivalent = .other,
- .pd1 = false,
- .pd2 = true,
- .psl = false,
-},
-.{
- .name = "no-cuda-include-ptx=",
- .syntax = .joined,
- .zig_equivalent = .other,
- .pd1 = false,
- .pd2 = true,
- .psl = false,
-},
.{
.name = "no-cuda-noopt-device-debug",
.syntax = .flag,
@@ -4959,14 +3691,6 @@ flagpd1("no-implicit-float"),
flagpd1("no-pie"),
flagpd1("no-pthread"),
flagpd1("no-struct-path-tbaa"),
-.{
- .name = "no-system-header-prefix=",
- .syntax = .joined,
- .zig_equivalent = .other,
- .pd1 = false,
- .pd2 = true,
- .psl = false,
-},
flagpd1("nobuiltininc"),
flagpd1("nocpp"),
flagpd1("nocudainc"),
@@ -4984,19 +3708,17 @@ flagpd1("noseglinkedit"),
flagpd1("nostartfiles"),
flagpd1("nostdinc"),
flagpd1("nostdinc++"),
-flagpd1("nostdlib"),
-flagpd1("nostdlibinc"),
-flagpd1("nostdlib++"),
-flagpd1("nostdsysteminc"),
.{
- .name = "o",
- .syntax = .joined_or_separate,
- .zig_equivalent = .o,
+ .name = "nostdlib",
+ .syntax = .flag,
+ .zig_equivalent = .nostdlib,
.pd1 = true,
.pd2 = false,
.psl = false,
},
-jspd1("objc-isystem"),
+flagpd1("nostdlibinc"),
+flagpd1("nostdlib++"),
+flagpd1("nostdsysteminc"),
flagpd1("objcmt-atomic-property"),
flagpd1("objcmt-migrate-all"),
flagpd1("objcmt-migrate-annotation"),
@@ -5012,8 +3734,6 @@ flagpd1("objcmt-migrate-readwrite-property"),
flagpd1("objcmt-migrate-subscripting"),
flagpd1("objcmt-ns-nonatomic-iosonly"),
flagpd1("objcmt-returns-innerpointer-property"),
-joinpd1("objcmt-whitelist-dir-path="),
-jspd1("objcxx-isystem"),
flagpd1("object"),
sepd1("opt-record-file"),
sepd1("opt-record-format"),
@@ -5022,7 +3742,6 @@ sepd1("output-asm-variant"),
flagpd1("p"),
flagpd1("fpack-derived"),
flagpd1("fno-pack-derived"),
-jspd1("pagezero_size"),
.{
.name = "pass-exit-codes",
.syntax = .flag,
@@ -5033,7 +3752,6 @@ jspd1("pagezero_size"),
},
flagpd1("pch-through-hdrstop-create"),
flagpd1("pch-through-hdrstop-use"),
-joinpd1("pch-through-header="),
.{
.name = "pedantic",
.syntax = .flag,
@@ -5061,21 +3779,12 @@ flagpd1("pie"),
.{
.name = "pipe",
.syntax = .flag,
- .zig_equivalent = .other,
+ .zig_equivalent = .ignore,
.pd1 = true,
.pd2 = true,
.psl = false,
},
sepd1("plugin"),
-.{
- .name = "plugin-arg-",
- .syntax = .joined_and_separate,
- .zig_equivalent = .other,
- .pd1 = true,
- .pd2 = false,
- .psl = false,
-},
-joinpd1("preamble-bytes="),
flagpd1("prebind"),
flagpd1("prebind_all_twolevel_modules"),
flagpd1("fprefetch-loop-arrays"),
@@ -5090,14 +3799,6 @@ flagpd1("print-dependency-directives-minimized-source"),
.pd2 = true,
.psl = false,
},
-.{
- .name = "print-file-name=",
- .syntax = .joined,
- .zig_equivalent = .other,
- .pd1 = true,
- .pd2 = true,
- .psl = false,
-},
flagpd1("print-ivar-layout"),
.{
.name = "print-libgcc-file-name",
@@ -5132,14 +3833,6 @@ flagpd1("print-ivar-layout"),
.psl = false,
},
flagpd1("print-preamble"),
-.{
- .name = "print-prog-name=",
- .syntax = .joined,
- .zig_equivalent = .other,
- .pd1 = true,
- .pd2 = true,
- .psl = false,
-},
.{
.name = "print-resource-dir",
.syntax = .flag,
@@ -5190,18 +3883,17 @@ flagpd1("fprotect-parens"),
flagpd1("fno-protect-parens"),
flagpd1("pthread"),
flagpd1("pthreads"),
-.{
- .name = "ptxas-path=",
- .syntax = .joined,
- .zig_equivalent = .other,
- .pd1 = false,
- .pd2 = true,
- .psl = false,
-},
flagpd1("r"),
flagpd1("frange-check"),
flagpd1("fno-range-check"),
-flagpd1("rdynamic"),
+.{
+ .name = "rdynamic",
+ .syntax = .flag,
+ .zig_equivalent = .rdynamic,
+ .pd1 = true,
+ .pd2 = false,
+ .psl = false,
+},
sepd1("read_only_relocs"),
flagpd1("freal-4-real-10"),
flagpd1("fno-real-4-real-10"),
@@ -5240,7 +3932,6 @@ flagpd1("fno-reorder-blocks"),
flagpd1("frepack-arrays"),
flagpd1("fno-repack-arrays"),
sepd1("resource-dir"),
-joinpd1("resource-dir="),
flagpd1("rewrite-legacy-objc"),
flagpd1("rewrite-macros"),
flagpd1("rewrite-objc"),
@@ -5248,22 +3939,6 @@ flagpd1("rewrite-test"),
flagpd1("fripa"),
flagpd1("fno-ripa"),
sepd1("rpath"),
-.{
- .name = "rsp-quoting=",
- .syntax = .joined,
- .zig_equivalent = .other,
- .pd1 = false,
- .pd2 = true,
- .psl = false,
-},
-.{
- .name = "rtlib=",
- .syntax = .joined,
- .zig_equivalent = .other,
- .pd1 = true,
- .pd2 = true,
- .psl = false,
-},
flagpd1("s"),
.{
.name = "save-stats",
@@ -5273,14 +3948,6 @@ flagpd1("s"),
.pd2 = true,
.psl = false,
},
-.{
- .name = "save-stats=",
- .syntax = .joined,
- .zig_equivalent = .other,
- .pd1 = true,
- .pd2 = true,
- .psl = false,
-},
.{
.name = "save-temps",
.syntax = .flag,
@@ -5289,14 +3956,6 @@ flagpd1("s"),
.pd2 = true,
.psl = false,
},
-.{
- .name = "save-temps=",
- .syntax = .joined,
- .zig_equivalent = .other,
- .pd1 = true,
- .pd2 = true,
- .psl = false,
-},
flagpd1("fschedule-insns2"),
flagpd1("fno-schedule-insns2"),
flagpd1("fschedule-insns"),
@@ -5305,7 +3964,7 @@ flagpd1("fsecond-underscore"),
flagpd1("fno-second-underscore"),
.{
.name = "sectalign",
- .syntax = .{ .multi_arg = 3 },
+ .syntax = .{.multi_arg=3},
.zig_equivalent = .other,
.pd1 = true,
.pd2 = false,
@@ -5313,7 +3972,7 @@ flagpd1("fno-second-underscore"),
},
.{
.name = "sectcreate",
- .syntax = .{ .multi_arg = 3 },
+ .syntax = .{.multi_arg=3},
.zig_equivalent = .other,
.pd1 = true,
.pd2 = false,
@@ -5321,7 +3980,7 @@ flagpd1("fno-second-underscore"),
},
.{
.name = "sectobjectsymbols",
- .syntax = .{ .multi_arg = 2 },
+ .syntax = .{.multi_arg=2},
.zig_equivalent = .other,
.pd1 = true,
.pd2 = false,
@@ -5329,7 +3988,7 @@ flagpd1("fno-second-underscore"),
},
.{
.name = "sectorder",
- .syntax = .{ .multi_arg = 3 },
+ .syntax = .{.multi_arg=3},
.zig_equivalent = .other,
.pd1 = true,
.pd2 = false,
@@ -5337,12 +3996,11 @@ flagpd1("fno-second-underscore"),
},
flagpd1("fsee"),
flagpd1("fno-see"),
-jspd1("seg1addr"),
sepd1("seg_addr_table"),
sepd1("seg_addr_table_filename"),
.{
.name = "segaddr",
- .syntax = .{ .multi_arg = 2 },
+ .syntax = .{.multi_arg=2},
.zig_equivalent = .other,
.pd1 = true,
.pd2 = false,
@@ -5350,7 +4008,7 @@ sepd1("seg_addr_table_filename"),
},
.{
.name = "segcreate",
- .syntax = .{ .multi_arg = 3 },
+ .syntax = .{.multi_arg=3},
.zig_equivalent = .other,
.pd1 = true,
.pd2 = false,
@@ -5359,20 +4017,19 @@ sepd1("seg_addr_table_filename"),
flagpd1("seglinkedit"),
.{
.name = "segprot",
- .syntax = .{ .multi_arg = 3 },
+ .syntax = .{.multi_arg=3},
.zig_equivalent = .other,
.pd1 = true,
.pd2 = false,
.psl = false,
},
-joinpd1("segs_read_"),
sepd1("segs_read_only_addr"),
sepd1("segs_read_write_addr"),
flagpd1("setup-static-analyzer"),
.{
.name = "shared",
.syntax = .flag,
- .zig_equivalent = .other,
+ .zig_equivalent = .shared,
.pd1 = true,
.pd2 = true,
.psl = false,
@@ -5406,14 +4063,6 @@ flagpd1("fno-spec-constr-count"),
.pd2 = true,
.psl = false,
},
-.{
- .name = "specs=",
- .syntax = .joined,
- .zig_equivalent = .other,
- .pd1 = true,
- .pd2 = true,
- .psl = false,
-},
sepd1("split-dwarf-file"),
sepd1("split-dwarf-output"),
flagpd1("split-stacks"),
@@ -5438,47 +4087,10 @@ flagpd1("static-libsan"),
flagpd1("static-libstdc++"),
flagpd1("static-openmp"),
flagpd1("static-pie"),
-joinpd1("stats-file="),
-.{
- .name = "std=",
- .syntax = .joined,
- .zig_equivalent = .other,
- .pd1 = true,
- .pd2 = true,
- .psl = false,
-},
-joinpd1("std-default="),
-.{
- .name = "stdlib=",
- .syntax = .joined,
- .zig_equivalent = .other,
- .pd1 = true,
- .pd2 = true,
- .psl = false,
-},
-jspd1("stdlib++-isystem"),
flagpd1("fstrength-reduce"),
flagpd1("fno-strength-reduce"),
-jspd1("sub_library"),
-jspd1("sub_umbrella"),
flagpd1("sys-header-deps"),
-.{
- .name = "system-header-prefix=",
- .syntax = .joined,
- .zig_equivalent = .other,
- .pd1 = false,
- .pd2 = true,
- .psl = false,
-},
flagpd1("t"),
-.{
- .name = "target=",
- .syntax = .joined,
- .zig_equivalent = .target,
- .pd1 = false,
- .pd2 = true,
- .psl = false,
-},
sepd1("target-abi"),
sepd1("target-cpu"),
sepd1("target-feature"),
@@ -5491,7 +4103,6 @@ sepd1("target-feature"),
.psl = false,
},
sepd1("target-linker-version"),
-joinpd1("target-sdk-version="),
flagpd1("templight-dump"),
flagpd1("test-coverage"),
flagpd1("time"),
@@ -5541,13 +4152,10 @@ flagpd1("fno-tree-vrp"),
},
flagpd1("trim-egraph"),
sepd1("triple"),
-joinpd1("triple="),
flagpd1("twolevel_namespace"),
flagpd1("twolevel_namespace_hints"),
-jspd1("u"),
sepd1("umbrella"),
flagpd1("undef"),
-jspd1("undefined"),
flagpd1("funderscoring"),
flagpd1("fno-underscoring"),
sepd1("unexported_symbols_list"),
@@ -5557,14 +4165,6 @@ flagpd1("funsafe-loop-optimizations"),
flagpd1("fno-unsafe-loop-optimizations"),
flagpd1("funswitch-loops"),
flagpd1("fno-unswitch-loops"),
-.{
- .name = "unwindlib=",
- .syntax = .joined,
- .zig_equivalent = .other,
- .pd1 = true,
- .pd2 = true,
- .psl = false,
-},
flagpd1("fuse-linker-plugin"),
flagpd1("fno-use-linker-plugin"),
flagpd1("v"),
@@ -5575,14 +4175,6 @@ flagpd1("fno-vect-cost-model"),
flagpd1("vectorize-loops"),
flagpd1("vectorize-slp"),
flagpd1("verify"),
-.{
- .name = "verify=",
- .syntax = .comma_joined,
- .zig_equivalent = .other,
- .pd1 = true,
- .pd2 = false,
- .psl = false,
-},
.{
.name = "verify-debug-info",
.syntax = .flag,
@@ -5592,14 +4184,6 @@ flagpd1("verify"),
.psl = false,
},
flagpd1("verify-ignore-unexpected"),
-.{
- .name = "verify-ignore-unexpected=",
- .syntax = .comma_joined,
- .zig_equivalent = .other,
- .pd1 = true,
- .pd2 = false,
- .psl = false,
-},
flagpd1("verify-pch"),
flagpd1("version"),
.{
@@ -5610,12 +4194,10 @@ flagpd1("version"),
.pd2 = true,
.psl = false,
},
-joinpd1("vtordisp-mode="),
flagpd1("w"),
sepd1("weak_framework"),
sepd1("weak_library"),
sepd1("weak_reference_mismatches"),
-joinpd1("weak-l"),
flagpd1("fweb"),
flagpd1("fno-web"),
flagpd1("whatsloaded"),
@@ -5624,9 +4206,1455 @@ flagpd1("fno-whole-file"),
flagpd1("fwhole-program"),
flagpd1("fno-whole-program"),
flagpd1("whyload"),
-jspd1("working-directory"),
+sepd1("z"),
+joinpd1("fsanitize-undefined-strip-path-components="),
+joinpd1("fopenmp-cuda-teams-reduction-recs-num="),
+joinpd1("analyzer-config-compatibility-mode="),
+joinpd1("fpatchable-function-entry-offset="),
+joinpd1("analyzer-inline-max-stack-depth="),
+joinpd1("fsanitize-address-field-padding="),
+joinpd1("fdiagnostics-hotness-threshold="),
+joinpd1("fsanitize-memory-track-origins="),
+joinpd1("mwatchos-simulator-version-min="),
+joinpd1("mappletvsimulator-version-min="),
+joinpd1("fobjc-nonfragile-abi-version="),
+joinpd1("fprofile-instrument-use-path="),
+jspd1("fxray-instrumentation-bundle="),
+joinpd1("miphonesimulator-version-min="),
+joinpd1("faddress-space-map-mangling="),
+joinpd1("foptimization-record-passes="),
+joinpd1("ftest-module-file-extension="),
+jspd1("fxray-instruction-threshold="),
+joinpd1("mno-default-build-attributes"),
+joinpd1("mtvos-simulator-version-min="),
+joinpd1("mwatchsimulator-version-min="),
+.{
+ .name = "include-with-prefix-before=",
+ .syntax = .joined,
+ .zig_equivalent = .other,
+ .pd1 = false,
+ .pd2 = true,
+ .psl = false,
+},
+joinpd1("objcmt-white-list-dir-path="),
+joinpd1("error-on-deserialized-decl="),
+joinpd1("fconstexpr-backtrace-limit="),
+joinpd1("fdiagnostics-show-category="),
+joinpd1("fdiagnostics-show-location="),
+joinpd1("fopenmp-cuda-blocks-per-sm="),
+joinpd1("fsanitize-system-blacklist="),
+jspd1("fxray-instruction-threshold"),
+joinpd1("headerpad_max_install_names"),
+joinpd1("mios-simulator-version-min="),
+.{
+ .name = "include-with-prefix-after=",
+ .syntax = .joined,
+ .zig_equivalent = .other,
+ .pd1 = false,
+ .pd2 = true,
+ .psl = false,
+},
+joinpd1("fms-compatibility-version="),
+joinpd1("fopenmp-cuda-number-of-sm="),
+joinpd1("foptimization-record-file="),
+joinpd1("fpatchable-function-entry="),
+joinpd1("fsave-optimization-record="),
+joinpd1("ftemplate-backtrace-limit="),
+.{
+ .name = "gpu-max-threads-per-block=",
+ .syntax = .joined,
+ .zig_equivalent = .other,
+ .pd1 = false,
+ .pd2 = true,
+ .psl = false,
+},
+joinpd1("malign-branch-prefix-size="),
+joinpd1("objcmt-whitelist-dir-path="),
+joinpd1("Wno-nonportable-cfstrings"),
+joinpd1("analyzer-disable-checker="),
+joinpd1("fbuild-session-timestamp="),
+joinpd1("fprofile-instrument-path="),
+joinpd1("mdefault-build-attributes"),
+joinpd1("msign-return-address-key="),
+.{
+ .name = "verify-ignore-unexpected=",
+ .syntax = .comma_joined,
+ .zig_equivalent = .other,
+ .pd1 = true,
+ .pd2 = false,
+ .psl = false,
+},
+.{
+ .name = "include-directory-after=",
+ .syntax = .joined,
+ .zig_equivalent = .other,
+ .pd1 = false,
+ .pd2 = true,
+ .psl = false,
+},
+.{
+ .name = "compress-debug-sections=",
+ .syntax = .joined,
+ .zig_equivalent = .other,
+ .pd1 = true,
+ .pd2 = true,
+ .psl = false,
+},
+.{
+ .name = "fcomment-block-commands=",
+ .syntax = .comma_joined,
+ .zig_equivalent = .other,
+ .pd1 = true,
+ .pd2 = false,
+ .psl = false,
+},
+joinpd1("flax-vector-conversions="),
+joinpd1("fmodules-embed-all-files"),
+joinpd1("fmodules-prune-interval="),
+joinpd1("foverride-record-layout="),
+joinpd1("fprofile-instr-generate="),
+joinpd1("fprofile-remapping-file="),
+joinpd1("fsanitize-coverage-type="),
+joinpd1("fsanitize-hwaddress-abi="),
+joinpd1("ftime-trace-granularity="),
+jspd1("fxray-always-instrument="),
+jspd1("internal-externc-isystem"),
+.{
+ .name = "libomptarget-nvptx-path=",
+ .syntax = .joined,
+ .zig_equivalent = .other,
+ .pd1 = false,
+ .pd2 = true,
+ .psl = false,
+},
+.{
+ .name = "no-system-header-prefix=",
+ .syntax = .joined,
+ .zig_equivalent = .other,
+ .pd1 = false,
+ .pd2 = true,
+ .psl = false,
+},
+.{
+ .name = "output-class-directory=",
+ .syntax = .joined,
+ .zig_equivalent = .other,
+ .pd1 = false,
+ .pd2 = true,
+ .psl = false,
+},
+joinpd1("analyzer-inlining-mode="),
+joinpd1("fconstant-string-class="),
+joinpd1("fcrash-diagnostics-dir="),
+joinpd1("fdebug-compilation-dir="),
+joinpd1("fdebug-default-version="),
+joinpd1("ffp-exception-behavior="),
+joinpd1("fmacro-backtrace-limit="),
+joinpd1("fmax-array-constructor="),
+joinpd1("fprofile-exclude-files="),
+joinpd1("ftrivial-auto-var-init="),
+jspd1("fxray-never-instrument="),
+jspd1("interface-stub-version="),
+joinpd1("malign-branch-boundary="),
+joinpd1("mappletvos-version-min="),
+joinpd1("Wnonportable-cfstrings"),
+joinpd1("fdefault-calling-conv="),
+joinpd1("fmax-subrecord-length="),
+joinpd1("fmodules-ignore-macro="),
+.{
+ .name = "fno-sanitize-coverage=",
+ .syntax = .comma_joined,
+ .zig_equivalent = .other,
+ .pd1 = true,
+ .pd2 = false,
+ .psl = false,
+},
+joinpd1("fobjc-dispatch-method="),
+joinpd1("foperator-arrow-depth="),
+joinpd1("fprebuilt-module-path="),
+joinpd1("fprofile-filter-files="),
+joinpd1("fspell-checking-limit="),
+joinpd1("miphoneos-version-min="),
+joinpd1("msmall-data-threshold="),
+joinpd1("Wlarge-by-value-copy="),
+joinpd1("analyzer-constraints="),
+joinpd1("analyzer-dump-egraph="),
+jspd1("compatibility_version"),
+jspd1("dylinker_install_name"),
+joinpd1("fcs-profile-generate="),
+joinpd1("fmodules-prune-after="),
+.{
+ .name = "fno-sanitize-recover=",
+ .syntax = .comma_joined,
+ .zig_equivalent = .other,
+ .pd1 = true,
+ .pd2 = false,
+ .psl = false,
+},
+jspd1("iframeworkwithsysroot"),
+joinpd1("mamdgpu-debugger-abi="),
+joinpd1("mprefer-vector-width="),
+joinpd1("msign-return-address="),
+joinpd1("mwatchos-version-min="),
+.{
+ .name = "system-header-prefix=",
+ .syntax = .joined,
+ .zig_equivalent = .other,
+ .pd1 = false,
+ .pd2 = true,
+ .psl = false,
+},
+.{
+ .name = "include-with-prefix=",
+ .syntax = .joined,
+ .zig_equivalent = .other,
+ .pd1 = false,
+ .pd2 = true,
+ .psl = false,
+},
+joinpd1("coverage-notes-file="),
+joinpd1("fbuild-session-file="),
+joinpd1("fdiagnostics-format="),
+joinpd1("fmax-stack-var-size="),
+joinpd1("fmodules-cache-path="),
+joinpd1("fmodules-embed-file="),
+joinpd1("fprofile-instrument="),
+joinpd1("fprofile-sample-use="),
+joinpd1("fsanitize-blacklist="),
+.{
+ .name = "hip-device-lib-path=",
+ .syntax = .joined,
+ .zig_equivalent = .other,
+ .pd1 = false,
+ .pd2 = true,
+ .psl = false,
+},
+joinpd1("mmacosx-version-min="),
+.{
+ .name = "no-cuda-include-ptx=",
+ .syntax = .joined,
+ .zig_equivalent = .other,
+ .pd1 = false,
+ .pd2 = true,
+ .psl = false,
+},
+joinpd1("Wframe-larger-than="),
+joinpd1("code-completion-at="),
+joinpd1("coverage-data-file="),
+joinpd1("fblas-matmul-limit="),
+joinpd1("fdiagnostics-color="),
+joinpd1("ffixed-line-length-"),
+joinpd1("flimited-precision="),
+joinpd1("fprofile-instr-use="),
+.{
+ .name = "fsanitize-coverage=",
+ .syntax = .comma_joined,
+ .zig_equivalent = .other,
+ .pd1 = true,
+ .pd2 = false,
+ .psl = false,
+},
+joinpd1("fthin-link-bitcode="),
+joinpd1("mbranch-protection="),
+joinpd1("mmacos-version-min="),
+joinpd1("pch-through-header="),
+joinpd1("target-sdk-version="),
+.{
+ .name = "execution-charset:",
+ .syntax = .joined,
+ .zig_equivalent = .other,
+ .pd1 = true,
+ .pd2 = false,
+ .psl = true,
+},
+.{
+ .name = "include-directory=",
+ .syntax = .joined,
+ .zig_equivalent = .other,
+ .pd1 = false,
+ .pd2 = true,
+ .psl = false,
+},
+.{
+ .name = "library-directory=",
+ .syntax = .joined,
+ .zig_equivalent = .other,
+ .pd1 = false,
+ .pd2 = true,
+ .psl = false,
+},
+.{
+ .name = "config-system-dir=",
+ .syntax = .joined,
+ .zig_equivalent = .other,
+ .pd1 = false,
+ .pd2 = true,
+ .psl = false,
+},
+joinpd1("fclang-abi-compat="),
+joinpd1("fcompile-resource="),
+joinpd1("fdebug-prefix-map="),
+joinpd1("fdenormal-fp-math="),
+joinpd1("fexcess-precision="),
+joinpd1("ffree-line-length-"),
+joinpd1("fmacro-prefix-map="),
+.{
+ .name = "fno-sanitize-trap=",
+ .syntax = .comma_joined,
+ .zig_equivalent = .other,
+ .pd1 = true,
+ .pd2 = false,
+ .psl = false,
+},
+joinpd1("fobjc-abi-version="),
+joinpd1("foutput-class-dir="),
+joinpd1("fprofile-generate="),
+joinpd1("frewrite-map-file="),
+.{
+ .name = "fsanitize-recover=",
+ .syntax = .comma_joined,
+ .zig_equivalent = .other,
+ .pd1 = true,
+ .pd2 = false,
+ .psl = false,
+},
+joinpd1("fsymbol-partition="),
+joinpd1("mcompact-branches="),
+joinpd1("mstack-probe-size="),
+joinpd1("mtvos-version-min="),
joinpd1("working-directory="),
+joinpd1("analyze-function="),
+joinpd1("analyzer-checker="),
+joinpd1("coverage-version="),
+.{
+ .name = "cuda-include-ptx=",
+ .syntax = .joined,
+ .zig_equivalent = .other,
+ .pd1 = false,
+ .pd2 = true,
+ .psl = false,
+},
+joinpd1("falign-functions="),
+joinpd1("fconstexpr-depth="),
+joinpd1("fconstexpr-steps="),
+joinpd1("ffile-prefix-map="),
+joinpd1("fmodule-map-file="),
+joinpd1("fobjc-arc-cxxlib="),
+jspd1("iwithprefixbefore"),
+joinpd1("malign-functions="),
+joinpd1("mios-version-min="),
+joinpd1("mstack-alignment="),
+.{
+ .name = "no-cuda-gpu-arch=",
+ .syntax = .joined,
+ .zig_equivalent = .other,
+ .pd1 = false,
+ .pd2 = true,
+ .psl = false,
+},
+jspd1("working-directory"),
+joinpd1("analyzer-output="),
+.{
+ .name = "config-user-dir=",
+ .syntax = .joined,
+ .zig_equivalent = .other,
+ .pd1 = false,
+ .pd2 = true,
+ .psl = false,
+},
+joinpd1("debug-info-kind="),
+joinpd1("debugger-tuning="),
+joinpd1("fcf-runtime-abi="),
+joinpd1("finit-character="),
+joinpd1("fmax-type-align="),
+joinpd1("fmessage-length="),
+.{
+ .name = "fopenmp-targets=",
+ .syntax = .comma_joined,
+ .zig_equivalent = .other,
+ .pd1 = true,
+ .pd2 = false,
+ .psl = false,
+},
+joinpd1("fopenmp-version="),
+joinpd1("fshow-overloads="),
+joinpd1("ftemplate-depth-"),
+joinpd1("ftemplate-depth="),
+jspd1("fxray-attr-list="),
+jspd1("internal-isystem"),
+joinpd1("mlinker-version="),
+.{
+ .name = "print-file-name=",
+ .syntax = .joined,
+ .zig_equivalent = .other,
+ .pd1 = true,
+ .pd2 = true,
+ .psl = false,
+},
+.{
+ .name = "print-prog-name=",
+ .syntax = .joined,
+ .zig_equivalent = .other,
+ .pd1 = true,
+ .pd2 = true,
+ .psl = false,
+},
+jspd1("stdlib++-isystem"),
+joinpd1("Rpass-analysis="),
+.{
+ .name = "Xopenmp-target=",
+ .syntax = .joined_and_separate,
+ .zig_equivalent = .other,
+ .pd1 = true,
+ .pd2 = false,
+ .psl = false,
+},
+.{
+ .name = "source-charset:",
+ .syntax = .joined,
+ .zig_equivalent = .other,
+ .pd1 = true,
+ .pd2 = false,
+ .psl = true,
+},
+.{
+ .name = "analyzer-output",
+ .syntax = .joined_or_separate,
+ .zig_equivalent = .other,
+ .pd1 = false,
+ .pd2 = true,
+ .psl = false,
+},
+.{
+ .name = "include-prefix=",
+ .syntax = .joined,
+ .zig_equivalent = .other,
+ .pd1 = false,
+ .pd2 = true,
+ .psl = false,
+},
+.{
+ .name = "undefine-macro=",
+ .syntax = .joined,
+ .zig_equivalent = .other,
+ .pd1 = false,
+ .pd2 = true,
+ .psl = false,
+},
+joinpd1("analyzer-purge="),
+joinpd1("analyzer-store="),
+jspd1("current_version"),
+joinpd1("fbootclasspath="),
+joinpd1("fbracket-depth="),
+joinpd1("fcf-protection="),
+joinpd1("fdepfile-entry="),
+joinpd1("fembed-bitcode="),
+joinpd1("finput-charset="),
+joinpd1("fmodule-format="),
+joinpd1("fms-memptr-rep="),
+joinpd1("fnew-alignment="),
+joinpd1("frecord-marker="),
+.{
+ .name = "fsanitize-trap=",
+ .syntax = .comma_joined,
+ .zig_equivalent = .other,
+ .pd1 = true,
+ .pd2 = false,
+ .psl = false,
+},
+joinpd1("fthinlto-index="),
+joinpd1("ftrap-function="),
+joinpd1("ftrapv-handler="),
+.{
+ .name = "hip-device-lib=",
+ .syntax = .joined,
+ .zig_equivalent = .other,
+ .pd1 = false,
+ .pd2 = true,
+ .psl = false,
+},
+joinpd1("mdynamic-no-pic"),
+joinpd1("mframe-pointer="),
+joinpd1("mindirect-jump="),
+joinpd1("preamble-bytes="),
+.{
+ .name = "bootclasspath=",
+ .syntax = .joined,
+ .zig_equivalent = .other,
+ .pd1 = false,
+ .pd2 = true,
+ .psl = false,
+},
+.{
+ .name = "cuda-gpu-arch=",
+ .syntax = .joined,
+ .zig_equivalent = .other,
+ .pd1 = false,
+ .pd2 = true,
+ .psl = false,
+},
+.{
+ .name = "dependent-lib=",
+ .syntax = .joined,
+ .zig_equivalent = .other,
+ .pd1 = false,
+ .pd2 = true,
+ .psl = false,
+},
+joinpd1("dwarf-version="),
+joinpd1("falign-labels="),
+joinpd1("fauto-profile="),
+joinpd1("fexec-charset="),
+joinpd1("fgnuc-version="),
+joinpd1("finit-integer="),
+joinpd1("finit-logical="),
+joinpd1("finline-limit="),
+joinpd1("fobjc-runtime="),
+.{
+ .name = "gcc-toolchain=",
+ .syntax = .joined,
+ .zig_equivalent = .other,
+ .pd1 = false,
+ .pd2 = true,
+ .psl = false,
+},
+.{
+ .name = "linker-option=",
+ .syntax = .joined,
+ .zig_equivalent = .other,
+ .pd1 = false,
+ .pd2 = true,
+ .psl = false,
+},
+.{
+ .name = "malign-branch=",
+ .syntax = .comma_joined,
+ .zig_equivalent = .other,
+ .pd1 = true,
+ .pd2 = false,
+ .psl = false,
+},
+jspd1("objcxx-isystem"),
+joinpd1("vtordisp-mode="),
+joinpd1("Rpass-missed="),
+joinpd1("Wlarger-than-"),
+joinpd1("Wlarger-than="),
+.{
+ .name = "define-macro=",
+ .syntax = .joined,
+ .zig_equivalent = .other,
+ .pd1 = false,
+ .pd2 = true,
+ .psl = false,
+},
+joinpd1("ast-dump-all="),
+.{
+ .name = "autocomplete=",
+ .syntax = .joined,
+ .zig_equivalent = .other,
+ .pd1 = false,
+ .pd2 = true,
+ .psl = false,
+},
+joinpd1("falign-jumps="),
+joinpd1("falign-loops="),
+joinpd1("faligned-new="),
+joinpd1("ferror-limit="),
+joinpd1("ffp-contract="),
+joinpd1("fmodule-file="),
+joinpd1("fmodule-name="),
+joinpd1("fmsc-version="),
+.{
+ .name = "fno-sanitize=",
+ .syntax = .comma_joined,
+ .zig_equivalent = .other,
+ .pd1 = true,
+ .pd2 = false,
+ .psl = false,
+},
+joinpd1("fpack-struct="),
+joinpd1("fpass-plugin="),
+joinpd1("fprofile-dir="),
+joinpd1("fprofile-use="),
+joinpd1("frandom-seed="),
+joinpd1("gsplit-dwarf="),
+jspd1("isystem-after"),
+joinpd1("malign-jumps="),
+joinpd1("malign-loops="),
+joinpd1("mimplicit-it="),
+jspd1("pagezero_size"),
+joinpd1("resource-dir="),
+.{
+ .name = "dyld-prefix=",
+ .syntax = .joined,
+ .zig_equivalent = .other,
+ .pd1 = false,
+ .pd2 = true,
+ .psl = false,
+},
+.{
+ .name = "driver-mode=",
+ .syntax = .joined,
+ .zig_equivalent = .other,
+ .pd1 = false,
+ .pd2 = true,
+ .psl = false,
+},
+joinpd1("fmax-errors="),
+joinpd1("fno-builtin-"),
+joinpd1("fvisibility="),
+joinpd1("fwchar-type="),
+jspd1("fxray-modes="),
+jspd1("iwithsysroot"),
+joinpd1("mhvx-length="),
+jspd1("objc-isystem"),
+.{
+ .name = "rsp-quoting=",
+ .syntax = .joined,
+ .zig_equivalent = .other,
+ .pd1 = false,
+ .pd2 = true,
+ .psl = false,
+},
+joinpd1("std-default="),
+jspd1("sub_umbrella"),
+.{
+ .name = "Qpar-report",
+ .syntax = .joined,
+ .zig_equivalent = .other,
+ .pd1 = true,
+ .pd2 = false,
+ .psl = true,
+},
+.{
+ .name = "Qvec-report",
+ .syntax = .joined,
+ .zig_equivalent = .other,
+ .pd1 = true,
+ .pd2 = false,
+ .psl = true,
+},
+.{
+ .name = "errorReport",
+ .syntax = .joined,
+ .zig_equivalent = .other,
+ .pd1 = true,
+ .pd2 = false,
+ .psl = true,
+},
+.{
+ .name = "for-linker=",
+ .syntax = .joined,
+ .zig_equivalent = .other,
+ .pd1 = false,
+ .pd2 = true,
+ .psl = false,
+},
+.{
+ .name = "force-link=",
+ .syntax = .joined,
+ .zig_equivalent = .other,
+ .pd1 = false,
+ .pd2 = true,
+ .psl = false,
+},
+jspd1("client_name"),
+jspd1("cxx-isystem"),
+joinpd1("fclasspath="),
+joinpd1("finit-real="),
+joinpd1("fforce-addr"),
+joinpd1("ftls-model="),
+jspd1("ivfsoverlay"),
+jspd1("iwithprefix"),
+joinpd1("mfloat-abi="),
+.{
+ .name = "plugin-arg-",
+ .syntax = .joined_and_separate,
+ .zig_equivalent = .other,
+ .pd1 = true,
+ .pd2 = false,
+ .psl = false,
+},
+.{
+ .name = "ptxas-path=",
+ .syntax = .joined,
+ .zig_equivalent = .other,
+ .pd1 = false,
+ .pd2 = true,
+ .psl = false,
+},
+.{
+ .name = "save-stats=",
+ .syntax = .joined,
+ .zig_equivalent = .other,
+ .pd1 = true,
+ .pd2 = true,
+ .psl = false,
+},
+.{
+ .name = "save-temps=",
+ .syntax = .joined,
+ .zig_equivalent = .other,
+ .pd1 = true,
+ .pd2 = true,
+ .psl = false,
+},
+joinpd1("stats-file="),
+jspd1("sub_library"),
+.{
+ .name = "CLASSPATH=",
+ .syntax = .joined,
+ .zig_equivalent = .other,
+ .pd1 = false,
+ .pd2 = true,
+ .psl = false,
+},
+.{
+ .name = "constexpr:",
+ .syntax = .joined,
+ .zig_equivalent = .other,
+ .pd1 = true,
+ .pd2 = false,
+ .psl = true,
+},
+.{
+ .name = "classpath=",
+ .syntax = .joined,
+ .zig_equivalent = .other,
+ .pd1 = false,
+ .pd2 = true,
+ .psl = false,
+},
+.{
+ .name = "cuda-path=",
+ .syntax = .joined,
+ .zig_equivalent = .other,
+ .pd1 = false,
+ .pd2 = true,
+ .psl = false,
+},
+joinpd1("fencoding="),
+joinpd1("ffp-model="),
+joinpd1("ffpe-trap="),
+joinpd1("flto-jobs="),
+.{
+ .name = "fsanitize=",
+ .syntax = .comma_joined,
+ .zig_equivalent = .other,
+ .pd1 = true,
+ .pd2 = false,
+ .psl = false,
+},
+jspd1("iframework"),
+joinpd1("mtls-size="),
+joinpd1("segs_read_"),
+.{
+ .name = "unwindlib=",
+ .syntax = .joined,
+ .zig_equivalent = .other,
+ .pd1 = true,
+ .pd2 = true,
+ .psl = false,
+},
+.{
+ .name = "cgthreads",
+ .syntax = .joined,
+ .zig_equivalent = .other,
+ .pd1 = true,
+ .pd2 = false,
+ .psl = true,
+},
+.{
+ .name = "encoding=",
+ .syntax = .joined,
+ .zig_equivalent = .other,
+ .pd1 = false,
+ .pd2 = true,
+ .psl = false,
+},
+.{
+ .name = "language=",
+ .syntax = .joined,
+ .zig_equivalent = .other,
+ .pd1 = false,
+ .pd2 = true,
+ .psl = false,
+},
+.{
+ .name = "optimize=",
+ .syntax = .joined,
+ .zig_equivalent = .other,
+ .pd1 = false,
+ .pd2 = true,
+ .psl = false,
+},
+.{
+ .name = "resource=",
+ .syntax = .joined,
+ .zig_equivalent = .other,
+ .pd1 = false,
+ .pd2 = true,
+ .psl = false,
+},
+joinpd1("ast-dump="),
+jspd1("c-isystem"),
+joinpd1("fcoarray="),
+joinpd1("fconvert="),
+joinpd1("fextdirs="),
+joinpd1("ftabstop="),
+jspd1("idirafter"),
+joinpd1("mregparm="),
+jspd1("undefined"),
+.{
+ .name = "extdirs=",
+ .syntax = .joined,
+ .zig_equivalent = .other,
+ .pd1 = false,
+ .pd2 = true,
+ .psl = false,
+},
+.{
+ .name = "imacros=",
+ .syntax = .joined,
+ .zig_equivalent = .other,
+ .pd1 = false,
+ .pd2 = true,
+ .psl = false,
+},
+.{
+ .name = "include=",
+ .syntax = .joined,
+ .zig_equivalent = .other,
+ .pd1 = false,
+ .pd2 = true,
+ .psl = false,
+},
+.{
+ .name = "sysroot=",
+ .syntax = .joined,
+ .zig_equivalent = .other,
+ .pd1 = false,
+ .pd2 = true,
+ .psl = false,
+},
+joinpd1("fopenmp="),
+joinpd1("fplugin="),
+joinpd1("fuse-ld="),
+joinpd1("fveclib="),
+jspd1("isysroot"),
+joinpd1("mcmodel="),
+joinpd1("mconsole"),
+joinpd1("mfpmath="),
+joinpd1("mhwmult="),
+joinpd1("mthreads"),
+joinpd1("municode"),
+joinpd1("mwindows"),
+jspd1("seg1addr"),
+.{
+ .name = "assert=",
+ .syntax = .joined,
+ .zig_equivalent = .other,
+ .pd1 = false,
+ .pd2 = true,
+ .psl = false,
+},
+.{
+ .name = "mhwdiv=",
+ .syntax = .joined,
+ .zig_equivalent = .other,
+ .pd1 = false,
+ .pd2 = true,
+ .psl = false,
+},
+.{
+ .name = "output=",
+ .syntax = .joined,
+ .zig_equivalent = .other,
+ .pd1 = false,
+ .pd2 = true,
+ .psl = false,
+},
+.{
+ .name = "prefix=",
+ .syntax = .joined,
+ .zig_equivalent = .other,
+ .pd1 = false,
+ .pd2 = true,
+ .psl = false,
+},
+.{
+ .name = "cl-ext=",
+ .syntax = .comma_joined,
+ .zig_equivalent = .other,
+ .pd1 = true,
+ .pd2 = false,
+ .psl = false,
+},
+joinpd1("cl-std="),
+joinpd1("fcheck="),
+.{
+ .name = "imacros",
+ .syntax = .joined_or_separate,
+ .zig_equivalent = .other,
+ .pd1 = true,
+ .pd2 = true,
+ .psl = false,
+},
+.{
+ .name = "include",
+ .syntax = .joined_or_separate,
+ .zig_equivalent = .other,
+ .pd1 = true,
+ .pd2 = true,
+ .psl = false,
+},
+jspd1("iprefix"),
+jspd1("isystem"),
+joinpd1("mhwdiv="),
+joinpd1("moslib="),
+.{
+ .name = "mrecip=",
+ .syntax = .comma_joined,
+ .zig_equivalent = .other,
+ .pd1 = true,
+ .pd2 = false,
+ .psl = false,
+},
+.{
+ .name = "stdlib=",
+ .syntax = .joined,
+ .zig_equivalent = .other,
+ .pd1 = true,
+ .pd2 = true,
+ .psl = false,
+},
+.{
+ .name = "target=",
+ .syntax = .joined,
+ .zig_equivalent = .target,
+ .pd1 = false,
+ .pd2 = true,
+ .psl = false,
+},
+joinpd1("triple="),
+.{
+ .name = "verify=",
+ .syntax = .comma_joined,
+ .zig_equivalent = .other,
+ .pd1 = true,
+ .pd2 = false,
+ .psl = false,
+},
+joinpd1("Rpass="),
+.{
+ .name = "Xarch_",
+ .syntax = .joined_and_separate,
+ .zig_equivalent = .other,
+ .pd1 = true,
+ .pd2 = false,
+ .psl = false,
+},
+.{
+ .name = "clang:",
+ .syntax = .joined,
+ .zig_equivalent = .other,
+ .pd1 = true,
+ .pd2 = false,
+ .psl = true,
+},
+.{
+ .name = "guard:",
+ .syntax = .joined,
+ .zig_equivalent = .other,
+ .pd1 = true,
+ .pd2 = false,
+ .psl = true,
+},
+.{
+ .name = "debug=",
+ .syntax = .joined,
+ .zig_equivalent = .other,
+ .pd1 = false,
+ .pd2 = true,
+ .psl = false,
+},
+.{
+ .name = "param=",
+ .syntax = .joined,
+ .zig_equivalent = .other,
+ .pd1 = false,
+ .pd2 = true,
+ .psl = false,
+},
+.{
+ .name = "warn-=",
+ .syntax = .joined,
+ .zig_equivalent = .other,
+ .pd1 = false,
+ .pd2 = true,
+ .psl = false,
+},
+joinpd1("fixit="),
+joinpd1("gstabs"),
+joinpd1("gxcoff"),
+jspd1("iquote"),
+joinpd1("march="),
+joinpd1("mtune="),
+.{
+ .name = "rtlib=",
+ .syntax = .joined,
+ .zig_equivalent = .other,
+ .pd1 = true,
+ .pd2 = true,
+ .psl = false,
+},
+.{
+ .name = "specs=",
+ .syntax = .joined,
+ .zig_equivalent = .other,
+ .pd1 = true,
+ .pd2 = true,
+ .psl = false,
+},
+joinpd1("weak-l"),
+joinpd1("Ofast"),
+jspd1("Tdata"),
+jspd1("Ttext"),
+.{
+ .name = "arch:",
+ .syntax = .joined,
+ .zig_equivalent = .other,
+ .pd1 = true,
+ .pd2 = false,
+ .psl = true,
+},
+.{
+ .name = "favor",
+ .syntax = .joined,
+ .zig_equivalent = .other,
+ .pd1 = true,
+ .pd2 = false,
+ .psl = true,
+},
+.{
+ .name = "imsvc",
+ .syntax = .joined_or_separate,
+ .zig_equivalent = .other,
+ .pd1 = true,
+ .pd2 = false,
+ .psl = true,
+},
+.{
+ .name = "warn-",
+ .syntax = .joined,
+ .zig_equivalent = .other,
+ .pd1 = false,
+ .pd2 = true,
+ .psl = false,
+},
+joinpd1("flto="),
+joinpd1("gcoff"),
+joinpd1("mabi="),
+joinpd1("mabs="),
+joinpd1("masm="),
+joinpd1("mcpu="),
+joinpd1("mfpu="),
+joinpd1("mhvx="),
+joinpd1("mmcu="),
+joinpd1("mnan="),
+jspd1("Tbss"),
+.{
+ .name = "link",
+ .syntax = .remaining_args_joined,
+ .zig_equivalent = .other,
+ .pd1 = true,
+ .pd2 = false,
+ .psl = true,
+},
+.{
+ .name = "std:",
+ .syntax = .joined,
+ .zig_equivalent = .other,
+ .pd1 = true,
+ .pd2 = false,
+ .psl = true,
+},
+joinpd1("ccc-"),
+joinpd1("gvms"),
+joinpd1("mdll"),
+joinpd1("mtp="),
+.{
+ .name = "std=",
+ .syntax = .joined,
+ .zig_equivalent = .other,
+ .pd1 = true,
+ .pd2 = true,
+ .psl = false,
+},
+.{
+ .name = "Wa,",
+ .syntax = .comma_joined,
+ .zig_equivalent = .other,
+ .pd1 = true,
+ .pd2 = false,
+ .psl = false,
+},
+.{
+ .name = "Wl,",
+ .syntax = .comma_joined,
+ .zig_equivalent = .wl,
+ .pd1 = true,
+ .pd2 = false,
+ .psl = false,
+},
+.{
+ .name = "Wp,",
+ .syntax = .comma_joined,
+ .zig_equivalent = .other,
+ .pd1 = true,
+ .pd2 = false,
+ .psl = false,
+},
+.{
+ .name = "RTC",
+ .syntax = .joined,
+ .zig_equivalent = .other,
+ .pd1 = true,
+ .pd2 = false,
+ .psl = true,
+},
+.{
+ .name = "Zc:",
+ .syntax = .joined,
+ .zig_equivalent = .other,
+ .pd1 = true,
+ .pd2 = false,
+ .psl = true,
+},
+.{
+ .name = "clr",
+ .syntax = .joined,
+ .zig_equivalent = .other,
+ .pd1 = true,
+ .pd2 = false,
+ .psl = true,
+},
+.{
+ .name = "doc",
+ .syntax = .joined,
+ .zig_equivalent = .other,
+ .pd1 = true,
+ .pd2 = false,
+ .psl = true,
+},
+joinpd1("gz="),
+joinpd1("A-"),
+joinpd1("G="),
+jspd1("MF"),
+jspd1("MJ"),
+jspd1("MQ"),
+jspd1("MT"),
+.{
+ .name = "AI",
+ .syntax = .joined_or_separate,
+ .zig_equivalent = .other,
+ .pd1 = true,
+ .pd2 = false,
+ .psl = true,
+},
+.{
+ .name = "EH",
+ .syntax = .joined,
+ .zig_equivalent = .other,
+ .pd1 = true,
+ .pd2 = false,
+ .psl = true,
+},
+.{
+ .name = "FA",
+ .syntax = .joined,
+ .zig_equivalent = .other,
+ .pd1 = true,
+ .pd2 = false,
+ .psl = true,
+},
+.{
+ .name = "FI",
+ .syntax = .joined_or_separate,
+ .zig_equivalent = .other,
+ .pd1 = true,
+ .pd2 = false,
+ .psl = true,
+},
+.{
+ .name = "FR",
+ .syntax = .joined,
+ .zig_equivalent = .other,
+ .pd1 = true,
+ .pd2 = false,
+ .psl = true,
+},
+.{
+ .name = "FU",
+ .syntax = .joined_or_separate,
+ .zig_equivalent = .other,
+ .pd1 = true,
+ .pd2 = false,
+ .psl = true,
+},
+.{
+ .name = "Fa",
+ .syntax = .joined,
+ .zig_equivalent = .other,
+ .pd1 = true,
+ .pd2 = false,
+ .psl = true,
+},
+.{
+ .name = "Fd",
+ .syntax = .joined,
+ .zig_equivalent = .other,
+ .pd1 = true,
+ .pd2 = false,
+ .psl = true,
+},
+.{
+ .name = "Fe",
+ .syntax = .joined,
+ .zig_equivalent = .other,
+ .pd1 = true,
+ .pd2 = false,
+ .psl = true,
+},
+.{
+ .name = "Fi",
+ .syntax = .joined,
+ .zig_equivalent = .other,
+ .pd1 = true,
+ .pd2 = false,
+ .psl = true,
+},
+.{
+ .name = "Fm",
+ .syntax = .joined,
+ .zig_equivalent = .other,
+ .pd1 = true,
+ .pd2 = false,
+ .psl = true,
+},
+.{
+ .name = "Fo",
+ .syntax = .joined,
+ .zig_equivalent = .other,
+ .pd1 = true,
+ .pd2 = false,
+ .psl = true,
+},
+.{
+ .name = "Fp",
+ .syntax = .joined,
+ .zig_equivalent = .other,
+ .pd1 = true,
+ .pd2 = false,
+ .psl = true,
+},
+.{
+ .name = "Fr",
+ .syntax = .joined,
+ .zig_equivalent = .other,
+ .pd1 = true,
+ .pd2 = false,
+ .psl = true,
+},
+.{
+ .name = "Gs",
+ .syntax = .joined,
+ .zig_equivalent = .other,
+ .pd1 = true,
+ .pd2 = false,
+ .psl = true,
+},
+.{
+ .name = "MP",
+ .syntax = .joined,
+ .zig_equivalent = .other,
+ .pd1 = true,
+ .pd2 = false,
+ .psl = true,
+},
+.{
+ .name = "Tc",
+ .syntax = .joined_or_separate,
+ .zig_equivalent = .other,
+ .pd1 = true,
+ .pd2 = false,
+ .psl = true,
+},
+.{
+ .name = "Tp",
+ .syntax = .joined_or_separate,
+ .zig_equivalent = .other,
+ .pd1 = true,
+ .pd2 = false,
+ .psl = true,
+},
+.{
+ .name = "Yc",
+ .syntax = .joined,
+ .zig_equivalent = .other,
+ .pd1 = true,
+ .pd2 = false,
+ .psl = true,
+},
+.{
+ .name = "Yl",
+ .syntax = .joined,
+ .zig_equivalent = .other,
+ .pd1 = true,
+ .pd2 = false,
+ .psl = true,
+},
+.{
+ .name = "Yu",
+ .syntax = .joined,
+ .zig_equivalent = .other,
+ .pd1 = true,
+ .pd2 = false,
+ .psl = true,
+},
+.{
+ .name = "ZW",
+ .syntax = .joined,
+ .zig_equivalent = .other,
+ .pd1 = true,
+ .pd2 = false,
+ .psl = true,
+},
+.{
+ .name = "Zm",
+ .syntax = .joined,
+ .zig_equivalent = .other,
+ .pd1 = true,
+ .pd2 = false,
+ .psl = true,
+},
+.{
+ .name = "Zp",
+ .syntax = .joined,
+ .zig_equivalent = .other,
+ .pd1 = true,
+ .pd2 = false,
+ .psl = true,
+},
+.{
+ .name = "d2",
+ .syntax = .joined,
+ .zig_equivalent = .other,
+ .pd1 = true,
+ .pd2 = false,
+ .psl = true,
+},
+.{
+ .name = "vd",
+ .syntax = .joined,
+ .zig_equivalent = .other,
+ .pd1 = true,
+ .pd2 = false,
+ .psl = true,
+},
+jspd1("A"),
+jspd1("B"),
+jspd1("D"),
+jspd1("F"),
+jspd1("G"),
+jspd1("I"),
+jspd1("J"),
+jspd1("L"),
+joinpd1("O"),
+joinpd1("R"),
+jspd1("T"),
+jspd1("U"),
+jspd1("V"),
+joinpd1("W"),
+joinpd1("X"),
+joinpd1("Z"),
+.{
+ .name = "D",
+ .syntax = .joined_or_separate,
+ .zig_equivalent = .other,
+ .pd1 = true,
+ .pd2 = false,
+ .psl = true,
+},
+.{
+ .name = "F",
+ .syntax = .joined_or_separate,
+ .zig_equivalent = .other,
+ .pd1 = true,
+ .pd2 = false,
+ .psl = true,
+},
+.{
+ .name = "I",
+ .syntax = .joined_or_separate,
+ .zig_equivalent = .other,
+ .pd1 = true,
+ .pd2 = false,
+ .psl = true,
+},
+.{
+ .name = "O",
+ .syntax = .joined,
+ .zig_equivalent = .other,
+ .pd1 = true,
+ .pd2 = false,
+ .psl = true,
+},
+.{
+ .name = "U",
+ .syntax = .joined_or_separate,
+ .zig_equivalent = .other,
+ .pd1 = true,
+ .pd2 = false,
+ .psl = true,
+},
+.{
+ .name = "o",
+ .syntax = .joined_or_separate,
+ .zig_equivalent = .o,
+ .pd1 = true,
+ .pd2 = false,
+ .psl = true,
+},
+.{
+ .name = "w",
+ .syntax = .joined,
+ .zig_equivalent = .other,
+ .pd1 = true,
+ .pd2 = false,
+ .psl = true,
+},
+joinpd1("a"),
+jspd1("b"),
+joinpd1("d"),
+jspd1("e"),
+.{
+ .name = "l",
+ .syntax = .joined_or_separate,
+ .zig_equivalent = .l,
+ .pd1 = true,
+ .pd2 = false,
+ .psl = false,
+},
+.{
+ .name = "o",
+ .syntax = .joined_or_separate,
+ .zig_equivalent = .o,
+ .pd1 = true,
+ .pd2 = false,
+ .psl = false,
+},
+jspd1("u"),
jspd1("x"),
joinpd1("y"),
-sepd1("z"),
};};
diff --git a/src-self-hosted/stage2.zig b/src-self-hosted/stage2.zig
index 23df042cb..73a053b85 100644
--- a/src-self-hosted/stage2.zig
+++ b/src-self-hosted/stage2.zig
@@ -1239,6 +1239,14 @@ pub const ClangArgIterator = extern struct {
other,
positional,
l,
+ ignore,
+ passthrough,
+ pic,
+ no_pic,
+ nostdlib,
+ shared,
+ rdynamic,
+ wl,
};
fn init(argv: []const [*:0]const u8) ClangArgIterator {
@@ -1282,7 +1290,8 @@ pub const ClangArgIterator = extern struct {
break :find_clang_arg;
},
.joined, .comma_joined => {
- // Example: --target=foo
+ // joined example: --target=foo
+ // comma_joined example: -Wl,-soname,libsoundio.so.2
const prefix_len = clang_arg.matchStartsWith(arg);
if (prefix_len != 0) {
self.zig_equivalent = clang_arg.zig_equivalent;
diff --git a/src/main.cpp b/src/main.cpp
index f850b0bc4..0bb6868f1 100644
--- a/src/main.cpp
+++ b/src/main.cpp
@@ -430,6 +430,7 @@ static int main0(int argc, char **argv) {
bool enable_dump_analysis = false;
bool enable_doc_generation = false;
bool emit_bin = true;
+ const char *emit_bin_override_path = nullptr;
bool emit_asm = false;
bool emit_llvm_ir = false;
bool emit_h = false;
@@ -451,6 +452,7 @@ static int main0(int argc, char **argv) {
bool function_sections = false;
const char *mcpu = nullptr;
CodeModel code_model = CodeModelDefault;
+ const char *override_soname = nullptr;
ZigList llvm_argv = {0};
llvm_argv.append("zig (LLVM option parsing)");
@@ -576,10 +578,14 @@ static int main0(int argc, char **argv) {
} else if (argc >= 2 && strcmp(argv[1], "fmt") == 0) {
return stage2_fmt(argc, argv);
} else if (argc >= 2 && strcmp(argv[1], "cc") == 0) {
- const char *o_arg = nullptr;
+ emit_h = false;
+
bool c_arg = false;
Stage2ClangArgIterator it;
stage2_clang_arg_iterator(&it, argc, argv);
+ bool nostdlib = false;
+ bool is_shared_lib = false;
+ ZigList linker_args = {};
while (it.has_next) {
if ((err = stage2_clang_arg_next(&it))) {
fprintf(stderr, "unable to parse command line parameters: %s\n", err_str(err));
@@ -590,7 +596,8 @@ static int main0(int argc, char **argv) {
target_string = it.only_arg;
break;
case Stage2ClangArgO: // -o
- o_arg = it.only_arg;
+ emit_bin_override_path = it.only_arg;
+ enable_cache = CacheOptOn;
break;
case Stage2ClangArgC: // -c
c_arg = true;
@@ -601,9 +608,17 @@ static int main0(int argc, char **argv) {
}
break;
case Stage2ClangArgPositional: {
- CFile *c_file = heap::c_allocator.create();
- c_file->source_path = it.only_arg;
- c_source_files.append(c_file);
+ Buf *arg_buf = buf_create_from_str(it.only_arg);
+ if (buf_ends_with_str(arg_buf, ".c") ||
+ buf_ends_with_str(arg_buf, ".cpp") ||
+ buf_ends_with_str(arg_buf, ".s"))
+ {
+ CFile *c_file = heap::c_allocator.create();
+ c_file->source_path = it.only_arg;
+ c_source_files.append(c_file);
+ } else {
+ objects.append(it.only_arg);
+ }
break;
}
case Stage2ClangArgL: // -l
@@ -611,18 +626,111 @@ static int main0(int argc, char **argv) {
have_libc = true;
link_libs.append(it.only_arg);
break;
+ case Stage2ClangArgIgnore:
+ break;
+ case Stage2ClangArgPassthrough:
+ // Never mind what we're doing, just pass the args directly. For example --help.
+ return ZigClang_main(argc, argv);
+ case Stage2ClangArgPIC:
+ want_pic = WantPICEnabled;
+ break;
+ case Stage2ClangArgNoPIC:
+ want_pic = WantPICDisabled;
+ break;
+ case Stage2ClangArgNoStdLib:
+ nostdlib = true;
+ break;
+ case Stage2ClangArgShared:
+ is_dynamic = true;
+ is_shared_lib = true;
+ break;
+ case Stage2ClangArgRDynamic:
+ rdynamic = true;
+ break;
+ case Stage2ClangArgWL: {
+ const char *arg = it.only_arg;
+ for (;;) {
+ size_t pos = 0;
+ while (arg[pos] != ',' && arg[pos] != 0) pos += 1;
+ linker_args.append(buf_create_from_mem(arg, pos));
+ if (arg[pos] == 0) break;
+ arg += pos + 1;
+ }
+ break;
+ }
}
}
+ // Parse linker args
+ for (size_t i = 0; i < linker_args.length; i += 1) {
+ Buf *arg = linker_args.at(i);
+ if (buf_eql_str(arg, "-soname")) {
+ i += 1;
+ if (i >= linker_args.length) {
+ fprintf(stderr, "expected linker arg after '%s'\n", buf_ptr(arg));
+ return EXIT_FAILURE;
+ }
+ Buf *soname_buf = linker_args.at(i);
+ override_soname = buf_ptr(soname_buf);
+ // use it as --name
+ // example: libsoundio.so.2
+ size_t prefix = 0;
+ if (buf_starts_with_str(soname_buf, "lib")) {
+ prefix = 3;
+ }
+ size_t end = buf_len(soname_buf);
+ if (buf_ends_with_str(soname_buf, ".so")) {
+ end -= 3;
+ } else {
+ bool found_digit = false;
+ while (end > 0 && isdigit(buf_ptr(soname_buf)[end - 1])) {
+ found_digit = true;
+ end -= 1;
+ }
+ if (found_digit && end > 0 && buf_ptr(soname_buf)[end - 1] == '.') {
+ end -= 1;
+ } else {
+ end = buf_len(soname_buf);
+ }
+ if (buf_ends_with_str(buf_slice(soname_buf, prefix, end), ".so")) {
+ end -= 3;
+ }
+ }
+ out_name = buf_ptr(buf_slice(soname_buf, prefix, end));
+ } else if (buf_eql_str(arg, "-rpath")) {
+ i += 1;
+ if (i >= linker_args.length) {
+ fprintf(stderr, "expected linker arg after '%s'\n", buf_ptr(arg));
+ return EXIT_FAILURE;
+ }
+ Buf *rpath = linker_args.at(i);
+ rpath_list.append(buf_ptr(rpath));
+ } else {
+ fprintf(stderr, "warning: unsupported linker arg: %s\n", buf_ptr(arg));
+ }
+ }
+
+ if (!nostdlib && !have_libc) {
+ have_libc = true;
+ link_libs.append("c");
+ }
if (!c_arg) {
cmd = CmdBuild;
- out_type = OutTypeExe;
- if (o_arg == nullptr) {
- zig_panic("TODO set out name to a.out");
+ if (is_shared_lib) {
+ out_type = OutTypeLib;
+ } else {
+ out_type = OutTypeExe;
+ }
+ if (emit_bin_override_path == nullptr) {
+ emit_bin_override_path = "a.out";
}
} else {
cmd = CmdBuild;
out_type = OutTypeObj;
}
+ if (c_source_files.length == 0 && objects.length == 0) {
+ // For example `zig cc` and no args should print the "no input files" message.
+ return ZigClang_main(argc, argv);
+ }
} else for (int i = 1; i < argc; i += 1) {
char *arg = argv[i];
@@ -1184,6 +1292,18 @@ static int main0(int argc, char **argv) {
buf_out_name = buf_alloc();
os_path_extname(&basename, buf_out_name, nullptr);
}
+ if (need_name && buf_out_name == nullptr && objects.length == 1) {
+ Buf basename = BUF_INIT;
+ os_path_split(buf_create_from_str(objects.at(0)), nullptr, &basename);
+ buf_out_name = buf_alloc();
+ os_path_extname(&basename, buf_out_name, nullptr);
+ }
+ if (need_name && buf_out_name == nullptr && emit_bin_override_path != nullptr) {
+ Buf basename = BUF_INIT;
+ os_path_split(buf_create_from_str(emit_bin_override_path), nullptr, &basename);
+ buf_out_name = buf_alloc();
+ os_path_extname(&basename, buf_out_name, nullptr);
+ }
if (need_name && buf_out_name == nullptr) {
fprintf(stderr, "--name [name] not provided and unable to infer\n\n");
@@ -1259,6 +1379,10 @@ static int main0(int argc, char **argv) {
g->function_sections = function_sections;
g->code_model = code_model;
+ if (override_soname) {
+ g->override_soname = buf_create_from_str(override_soname);
+ }
+
for (size_t i = 0; i < lib_dirs.length; i += 1) {
codegen_add_lib_dir(g, lib_dirs.at(i));
}
@@ -1337,7 +1461,14 @@ static int main0(int argc, char **argv) {
os_spawn_process(args, &term);
return term.code;
} else if (cmd == CmdBuild) {
- if (g->enable_cache) {
+ if (emit_bin_override_path != nullptr) {
+ Buf *dest_path = buf_create_from_str(emit_bin_override_path);
+ if ((err = os_update_file(&g->bin_file_output_path, dest_path))) {
+ fprintf(stderr, "unable to copy %s to %s: %s\n", buf_ptr(&g->bin_file_output_path),
+ buf_ptr(dest_path), err_str(err));
+ return main_exit(root_progress_node, EXIT_FAILURE);
+ }
+ } else if (g->enable_cache) {
#if defined(ZIG_OS_WINDOWS)
buf_replace(&g->bin_file_output_path, '/', '\\');
buf_replace(g->output_dir, '/', '\\');
diff --git a/src/stage2.h b/src/stage2.h
index 2abdc4c51..6b94f8780 100644
--- a/src/stage2.h
+++ b/src/stage2.h
@@ -325,6 +325,14 @@ enum Stage2ClangArg {
Stage2ClangArgOther,
Stage2ClangArgPositional,
Stage2ClangArgL,
+ Stage2ClangArgIgnore,
+ Stage2ClangArgPassthrough,
+ Stage2ClangArgPIC,
+ Stage2ClangArgNoPIC,
+ Stage2ClangArgNoStdLib,
+ Stage2ClangArgShared,
+ Stage2ClangArgRDynamic,
+ Stage2ClangArgWL,
};
// ABI warning
diff --git a/tools/update_clang_options.zig b/tools/update_clang_options.zig
index 863c67b68..c820ee34a 100644
--- a/tools/update_clang_options.zig
+++ b/tools/update_clang_options.zig
@@ -38,6 +38,42 @@ const known_options = [_]KnownOpt{
.name = "l",
.ident = "l",
},
+ .{
+ .name = "pipe",
+ .ident = "ignore",
+ },
+ .{
+ .name = "help",
+ .ident = "passthrough",
+ },
+ .{
+ .name = "fPIC",
+ .ident = "pic",
+ },
+ .{
+ .name = "fno-PIC",
+ .ident = "no_pic",
+ },
+ .{
+ .name = "nostdlib",
+ .ident = "nostdlib",
+ },
+ .{
+ .name = "no-standard-libraries",
+ .ident = "nostdlib",
+ },
+ .{
+ .name = "shared",
+ .ident = "shared",
+ },
+ .{
+ .name = "rdynamic",
+ .ident = "rdynamic",
+ },
+ .{
+ .name = "Wl,",
+ .ident = "wl",
+ },
};
const blacklisted_options = [_][]const u8{};
@@ -110,7 +146,7 @@ pub fn main() anyerror!void {
const tree = try parser.parse(json_text);
const root_map = &tree.root.Object;
- var all_names = std.ArrayList([]const u8).init(allocator);
+ var all_objects = std.ArrayList(*json.ObjectMap).init(allocator);
{
var it = root_map.iterator();
it_map: while (it.next()) |kv| {
@@ -123,10 +159,12 @@ pub fn main() anyerror!void {
if (std.mem.eql(u8, blacklisted_key, kv.key)) continue :it_map;
}
if (kv.value.Object.get("Name").?.value.String.len == 0) continue;
- try all_names.append(kv.key);
+ try all_objects.append(&kv.value.Object);
}
}
- std.sort.sort([]const u8, all_names.span(), nameLessThan);
+ // Some options have multiple matches. As an example, "-Wl,foo" matches both
+ // "W" and "Wl,". So we sort this list in order of descending priority.
+ std.sort.sort(*json.ObjectMap, all_objects.span(), objectLessThan);
var stdout_bos = std.io.bufferedOutStream(std.io.getStdOut().outStream());
const stdout = stdout_bos.outStream();
@@ -138,8 +176,7 @@ pub fn main() anyerror!void {
\\
);
- for (all_names.span()) |key| {
- const obj = &root_map.get(key).?.value.Object;
+ for (all_objects.span()) |obj| {
const name = obj.get("Name").?.value.String;
var pd1 = false;
var pd2 = false;
@@ -153,61 +190,12 @@ pub fn main() anyerror!void {
} else if (std.mem.eql(u8, prefix, "/")) {
pslash = true;
} else {
- std.debug.warn("{} (key {}) has unrecognized prefix '{}'\n", .{ name, key, prefix });
+ std.debug.warn("{} has unrecognized prefix '{}'\n", .{ name, prefix });
std.process.exit(1);
}
}
- const num_args = @intCast(u8, obj.get("NumArgs").?.value.Integer);
- const syntax_str: []const u8 = blk: {
- for (obj.get("!superclasses").?.value.Array.span()) |superclass_json| {
- const superclass = superclass_json.String;
- if (std.mem.eql(u8, superclass, "Joined")) {
- break :blk ".joined";
- } else if (std.mem.eql(u8, superclass, "CLJoined")) {
- break :blk ".joined";
- } else if (std.mem.eql(u8, superclass, "CLIgnoredJoined")) {
- break :blk ".joined";
- } else if (std.mem.eql(u8, superclass, "CLCompileJoined")) {
- break :blk ".joined";
- } else if (std.mem.eql(u8, superclass, "JoinedOrSeparate")) {
- break :blk ".joined_or_separate";
- } else if (std.mem.eql(u8, superclass, "CLJoinedOrSeparate")) {
- break :blk ".joined_or_separate";
- } else if (std.mem.eql(u8, superclass, "CLCompileJoinedOrSeparate")) {
- break :blk ".joined_or_separate";
- } else if (std.mem.eql(u8, superclass, "Flag")) {
- break :blk ".flag";
- } else if (std.mem.eql(u8, superclass, "CLFlag")) {
- break :blk ".flag";
- } else if (std.mem.eql(u8, superclass, "CLIgnoredFlag")) {
- break :blk ".flag";
- } else if (std.mem.eql(u8, superclass, "Separate")) {
- break :blk ".separate";
- } else if (std.mem.eql(u8, superclass, "JoinedAndSeparate")) {
- break :blk ".joined_and_separate";
- } else if (std.mem.eql(u8, superclass, "CommaJoined")) {
- break :blk ".comma_joined";
- } else if (std.mem.eql(u8, superclass, "CLRemainingArgsJoined")) {
- break :blk ".remaining_args_joined";
- } else if (std.mem.eql(u8, superclass, "MultiArg")) {
- break :blk try std.fmt.allocPrint(allocator, ".{{ .multi_arg = {} }}", .{num_args});
- }
- }
- if (std.mem.eql(u8, name, "")) {
- break :blk ".flag";
- } else if (std.mem.eql(u8, name, "")) {
- break :blk ".flag";
- }
- const kind_def = obj.get("Kind").?.value.Object.get("def").?.value.String;
- if (std.mem.eql(u8, kind_def, "KIND_FLAG")) {
- break :blk ".flag";
- }
- std.debug.warn("{} (key {}) has unrecognized superclasses:\n", .{ name, key });
- for (obj.get("!superclasses").?.value.Array.span()) |superclass_json| {
- std.debug.warn(" {}\n", .{superclass_json.String});
- }
- std.process.exit(1);
- };
+ const syntax = objSyntax(obj);
+
if (knownOption(name)) |ident| {
try stdout.print(
\\.{{
@@ -219,22 +207,14 @@ pub fn main() anyerror!void {
\\ .psl = {},
\\}},
\\
- , .{ name, syntax_str, ident, pd1, pd2, pslash });
- } else if (pd1 and !pd2 and !pslash and
- std.mem.eql(u8, syntax_str, ".flag"))
- {
+ , .{ name, syntax, ident, pd1, pd2, pslash });
+ } else if (pd1 and !pd2 and !pslash and syntax == .flag) {
try stdout.print("flagpd1(\"{}\"),\n", .{name});
- } else if (pd1 and !pd2 and !pslash and
- std.mem.eql(u8, syntax_str, ".joined"))
- {
+ } else if (pd1 and !pd2 and !pslash and syntax == .joined) {
try stdout.print("joinpd1(\"{}\"),\n", .{name});
- } else if (pd1 and !pd2 and !pslash and
- std.mem.eql(u8, syntax_str, ".joined_or_separate"))
- {
+ } else if (pd1 and !pd2 and !pslash and syntax == .joined_or_separate) {
try stdout.print("jspd1(\"{}\"),\n", .{name});
- } else if (pd1 and !pd2 and !pslash and
- std.mem.eql(u8, syntax_str, ".separate"))
- {
+ } else if (pd1 and !pd2 and !pslash and syntax == .separate) {
try stdout.print("sepd1(\"{}\"),\n", .{name});
} else {
try stdout.print(
@@ -247,7 +227,7 @@ pub fn main() anyerror!void {
\\ .psl = {},
\\}},
\\
- , .{ name, syntax_str, pd1, pd2, pslash });
+ , .{ name, syntax, pd1, pd2, pslash });
}
}
@@ -259,8 +239,142 @@ pub fn main() anyerror!void {
try stdout_bos.flush();
}
-fn nameLessThan(a: []const u8, b: []const u8) bool {
- return std.mem.lessThan(u8, a, b);
+// TODO we should be able to import clang_options.zig but currently this is problematic because it will
+// import stage2.zig and that causes a bunch of stuff to get exported
+const Syntax = union(enum) {
+ /// A flag with no values.
+ flag,
+
+ /// An option which prefixes its (single) value.
+ joined,
+
+ /// An option which is followed by its value.
+ separate,
+
+ /// An option which is either joined to its (non-empty) value, or followed by its value.
+ joined_or_separate,
+
+ /// An option which is both joined to its (first) value, and followed by its (second) value.
+ joined_and_separate,
+
+ /// An option followed by its values, which are separated by commas.
+ comma_joined,
+
+ /// An option which consumes an optional joined argument and any other remaining arguments.
+ remaining_args_joined,
+
+ /// An option which is which takes multiple (separate) arguments.
+ multi_arg: u8,
+
+ pub fn format(
+ self: Syntax,
+ comptime fmt: []const u8,
+ options: std.fmt.FormatOptions,
+ out_stream: var,
+ ) !void {
+ switch (self) {
+ .multi_arg => |n| return out_stream.print(".{{.{}={}}}", .{ @tagName(self), n }),
+ else => return out_stream.print(".{}", .{@tagName(self)}),
+ }
+ }
+};
+
+fn objSyntax(obj: *json.ObjectMap) Syntax {
+ const num_args = @intCast(u8, obj.get("NumArgs").?.value.Integer);
+ for (obj.get("!superclasses").?.value.Array.span()) |superclass_json| {
+ const superclass = superclass_json.String;
+ if (std.mem.eql(u8, superclass, "Joined")) {
+ return .joined;
+ } else if (std.mem.eql(u8, superclass, "CLJoined")) {
+ return .joined;
+ } else if (std.mem.eql(u8, superclass, "CLIgnoredJoined")) {
+ return .joined;
+ } else if (std.mem.eql(u8, superclass, "CLCompileJoined")) {
+ return .joined;
+ } else if (std.mem.eql(u8, superclass, "JoinedOrSeparate")) {
+ return .joined_or_separate;
+ } else if (std.mem.eql(u8, superclass, "CLJoinedOrSeparate")) {
+ return .joined_or_separate;
+ } else if (std.mem.eql(u8, superclass, "CLCompileJoinedOrSeparate")) {
+ return .joined_or_separate;
+ } else if (std.mem.eql(u8, superclass, "Flag")) {
+ return .flag;
+ } else if (std.mem.eql(u8, superclass, "CLFlag")) {
+ return .flag;
+ } else if (std.mem.eql(u8, superclass, "CLIgnoredFlag")) {
+ return .flag;
+ } else if (std.mem.eql(u8, superclass, "Separate")) {
+ return .separate;
+ } else if (std.mem.eql(u8, superclass, "JoinedAndSeparate")) {
+ return .joined_and_separate;
+ } else if (std.mem.eql(u8, superclass, "CommaJoined")) {
+ return .comma_joined;
+ } else if (std.mem.eql(u8, superclass, "CLRemainingArgsJoined")) {
+ return .remaining_args_joined;
+ } else if (std.mem.eql(u8, superclass, "MultiArg")) {
+ return .{ .multi_arg = num_args };
+ }
+ }
+ const name = obj.get("Name").?.value.String;
+ if (std.mem.eql(u8, name, "")) {
+ return .flag;
+ } else if (std.mem.eql(u8, name, "")) {
+ return .flag;
+ }
+ const kind_def = obj.get("Kind").?.value.Object.get("def").?.value.String;
+ if (std.mem.eql(u8, kind_def, "KIND_FLAG")) {
+ return .flag;
+ }
+ const key = obj.get("!name").?.value.String;
+ std.debug.warn("{} (key {}) has unrecognized superclasses:\n", .{ name, key });
+ for (obj.get("!superclasses").?.value.Array.span()) |superclass_json| {
+ std.debug.warn(" {}\n", .{superclass_json.String});
+ }
+ std.process.exit(1);
+}
+
+fn syntaxMatchesWithEql(syntax: Syntax) bool {
+ return switch (syntax) {
+ .flag,
+ .separate,
+ .multi_arg,
+ => true,
+
+ .joined,
+ .joined_or_separate,
+ .joined_and_separate,
+ .comma_joined,
+ .remaining_args_joined,
+ => false,
+ };
+}
+
+fn objectLessThan(a: *json.ObjectMap, b: *json.ObjectMap) bool {
+ // Priority is determined by exact matches first, followed by prefix matches in descending
+ // length, with key as a final tiebreaker.
+ const a_syntax = objSyntax(a);
+ const b_syntax = objSyntax(b);
+
+ const a_match_with_eql = syntaxMatchesWithEql(a_syntax);
+ const b_match_with_eql = syntaxMatchesWithEql(b_syntax);
+
+ if (a_match_with_eql and !b_match_with_eql) {
+ return true;
+ } else if (!a_match_with_eql and b_match_with_eql) {
+ return false;
+ }
+
+ if (!a_match_with_eql and !b_match_with_eql) {
+ const a_name = a.get("Name").?.value.String;
+ const b_name = b.get("Name").?.value.String;
+ if (a_name.len != b_name.len) {
+ return a_name.len > b_name.len;
+ }
+ }
+
+ const a_key = a.get("!name").?.value.String;
+ const b_key = b.get("!name").?.value.String;
+ return std.mem.lessThan(u8, a_key, b_key);
}
fn usageAndExit(file: fs.File, arg0: []const u8, code: u8) noreturn {