authorgravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2023-04-07 15:13:33-07:00
committergravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2023-04-08 15:48:27-04:00
logc22a30ac99b9a2b92d9a8e926b9bf0c9dbc3d14e
tree7fd19495c2ba91cc768b4a3aca8c9ff625b40a7d
parentaa45854ec3d94c1b95fb1a5d8e5482a80561b068

zig cc: handle the -r flag

This makes -r treated the same as -c which is to output an object file. Zig's ELF linker code already handles multiple object files into an object file with the -r flag to LLD. closes #11683

3 files changed, 32 insertions(+), 19 deletions(-)

src/clang_options_data.zig+26-18
......@@ -4002,7 +4002,7 @@ flagpd1("malign-double"),
40024002m("maltivec"),
40034003flagpd1("mamdgpu-ieee"),
40044004m("mamx-bf16"),
4005flagpd1("mamx-fp16"),
4005m("mamx-fp16"),
40064006m("mamx-int8"),
40074007m("mamx-tile"),
40084008flagpd1("marm"),
......@@ -4027,10 +4027,10 @@ m("mavx512vl"),
40274027m("mavx512vnni"),
40284028m("mavx512vp2intersect"),
40294029m("mavx512vpopcntdq"),
4030flagpd1("mavxifma"),
4031flagpd1("mavxneconvert"),
4030m("mavxifma"),
4031m("mavxneconvert"),
40324032m("mavxvnni"),
4033flagpd1("mavxvnniint8"),
4033m("mavxvnniint8"),
40344034flagpd1("mbackchain"),
40354035flagpd1("mbig-endian"),
40364036m("mbmi"),
......@@ -4039,6 +4039,7 @@ flagpd1("mbranch-likely"),
40394039flagpd1("mbranch-target-enforce"),
40404040flagpd1("mbranches-within-32B-boundaries"),
40414041m("mbulk-memory"),
4042m("mcabac"),
40424043flagpd1("mcheck-zero-division"),
40434044m("mcldemote"),
40444045m("mclflushopt"),
......@@ -4047,7 +4048,7 @@ m("mclzero"),
40474048flagpd1("mcmodel=medany"),
40484049flagpd1("mcmodel=medlow"),
40494050m("mcmpb"),
4050flagpd1("mcmpccxadd"),
4051m("mcmpccxadd"),
40514052flagpd1("mcmse"),
40524053flagpd1("mcode-object-v3"),
40534054flagpd1("mconstant-cfstrings"),
......@@ -4185,7 +4186,7 @@ m("mno-aes"),
41854186m("mno-altivec"),
41864187flagpd1("mno-amdgpu-ieee"),
41874188m("mno-amx-bf16"),
4188flagpd1("mno-amx-fp16"),
4189m("mno-amx-fp16"),
41894190m("mno-amx-int8"),
41904191m("mno-amx-tile"),
41914192m("mno-atomics"),
......@@ -4207,10 +4208,10 @@ m("mno-avx512vl"),
42074208m("mno-avx512vnni"),
42084209m("mno-avx512vp2intersect"),
42094210m("mno-avx512vpopcntdq"),
4210flagpd1("mno-avxifma"),
4211flagpd1("mno-avxneconvert"),
4211m("mno-avxifma"),
4212m("mno-avxneconvert"),
42124213m("mno-avxvnni"),
4213flagpd1("mno-avxvnniint8"),
4214m("mno-avxvnniint8"),
42144215flagpd1("mno-backchain"),
42154216m("mno-bmi"),
42164217m("mno-bmi2"),
......@@ -4223,7 +4224,7 @@ m("mno-clflushopt"),
42234224m("mno-clwb"),
42244225m("mno-clzero"),
42254226m("mno-cmpb"),
4226flagpd1("mno-cmpccxadd"),
4227m("mno-cmpccxadd"),
42274228flagpd1("mno-code-object-v3"),
42284229flagpd1("mno-constant-cfstrings"),
42294230flagpd1("mno-constructor-aliases"),
......@@ -4249,7 +4250,7 @@ flagpd1("mno-fix-cortex-a72-aes-1655431"),
42494250m("mno-float128"),
42504251m("mno-fma"),
42514252m("mno-fma4"),
4252flagpd1("mno-fmv"),
4253m("mno-fmv"),
42534254flagpd1("mno-fp-ret-in-387"),
42544255m("mno-fprnd"),
42554256m("mno-fpu"),
......@@ -4322,13 +4323,13 @@ m("mno-popcntd"),
43224323m("mno-power10-vector"),
43234324m("mno-power8-vector"),
43244325m("mno-power9-vector"),
4325flagpd1("mno-prefetchi"),
4326m("mno-prefetchi"),
43264327m("mno-prefetchwt1"),
43274328flagpd1("mno-prefixed"),
43284329m("mno-prfchw"),
43294330m("mno-ptwrite"),
43304331flagpd1("mno-pure-code"),
4331flagpd1("mno-raoint"),
4332m("mno-raoint"),
43324333m("mno-rdpid"),
43334334m("mno-rdpru"),
43344335m("mno-rdrnd"),
......@@ -4438,7 +4439,7 @@ m("mpower10-vector"),
44384439m("mcrypto"),
44394440m("mpower8-vector"),
44404441m("mpower9-vector"),
4441flagpd1("mprefetchi"),
4442m("mprefetchi"),
44424443m("mprefetchwt1"),
44434444flagpd1("mprefixed"),
44444445m("mprfchw"),
......@@ -4446,7 +4447,7 @@ m("mprivileged"),
44464447m("mptwrite"),
44474448flagpd1("mpure-code"),
44484449flagpd1("mqdsp6-compat"),
4449flagpd1("mraoint"),
4450m("mraoint"),
44504451m("mrdpid"),
44514452m("mrdpru"),
44524453m("mrdrnd"),
......@@ -4533,9 +4534,9 @@ m("mv67"),
45334534flagpd1("mv67t"),
45344535m("mv68"),
45354536m("mv69"),
4536flagpd1("mv71"),
4537m("mv71"),
45374538flagpd1("mv71t"),
4538flagpd1("mv73"),
4539m("mv73"),
45394540m("mvaes"),
45404541m("mvirt"),
45414542m("mvis"),
......@@ -4950,7 +4951,14 @@ flagpd1("print-stats"),
49504951flagpd1("private_bundle"),
49514952flagpd1("pthread"),
49524953flagpd1("pthreads"),
4953flagpd1("r"),
4954.{
4955 .name = "r",
4956 .syntax = .flag,
4957 .zig_equivalent = .r,
4958 .pd1 = true,
4959 .pd2 = false,
4960 .psl = false,
4961},
49544962.{
49554963 .name = "rdynamic",
49564964 .syntax = .flag,
src/main.zig+2-1
......@@ -1569,7 +1569,7 @@ fn buildOutputType(
15691569 out_path = it.only_arg;
15701570 }
15711571 },
1572 .c => c_out_mode = .object, // -c
1572 .c, .r => c_out_mode = .object, // -c or -r
15731573 .asm_only => c_out_mode = .assembly, // -S
15741574 .preprocess_only => c_out_mode = .preprocessor, // -E
15751575 .emit_llvm => emit_llvm = true,
......@@ -5134,6 +5134,7 @@ pub const ClangArgIterator = struct {
51345134 target,
51355135 o,
51365136 c,
5137 r,
51375138 m,
51385139 x,
51395140 other,
tools/update_clang_options.zig+4
......@@ -34,6 +34,10 @@ const known_options = [_]KnownOpt{
3434 .name = "c",
3535 .ident = "c",
3636 },
37 .{
38 .name = "r",
39 .ident = "r",
40 },
3741 .{
3842 .name = "l",
3943 .ident = "l",