Skip to content

Commit 896c3b5

Browse files
committed
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
1 parent 4ebf483 commit 896c3b5

File tree

3 files changed

+32
-19
lines changed

3 files changed

+32
-19
lines changed

src/clang_options_data.zig

Lines changed: 26 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -4002,7 +4002,7 @@ flagpd1("malign-double"),
40024002
m("maltivec"),
40034003
flagpd1("mamdgpu-ieee"),
40044004
m("mamx-bf16"),
4005-
flagpd1("mamx-fp16"),
4005+
m("mamx-fp16"),
40064006
m("mamx-int8"),
40074007
m("mamx-tile"),
40084008
flagpd1("marm"),
@@ -4027,10 +4027,10 @@ m("mavx512vl"),
40274027
m("mavx512vnni"),
40284028
m("mavx512vp2intersect"),
40294029
m("mavx512vpopcntdq"),
4030-
flagpd1("mavxifma"),
4031-
flagpd1("mavxneconvert"),
4030+
m("mavxifma"),
4031+
m("mavxneconvert"),
40324032
m("mavxvnni"),
4033-
flagpd1("mavxvnniint8"),
4033+
m("mavxvnniint8"),
40344034
flagpd1("mbackchain"),
40354035
flagpd1("mbig-endian"),
40364036
m("mbmi"),
@@ -4039,6 +4039,7 @@ flagpd1("mbranch-likely"),
40394039
flagpd1("mbranch-target-enforce"),
40404040
flagpd1("mbranches-within-32B-boundaries"),
40414041
m("mbulk-memory"),
4042+
m("mcabac"),
40424043
flagpd1("mcheck-zero-division"),
40434044
m("mcldemote"),
40444045
m("mclflushopt"),
@@ -4047,7 +4048,7 @@ m("mclzero"),
40474048
flagpd1("mcmodel=medany"),
40484049
flagpd1("mcmodel=medlow"),
40494050
m("mcmpb"),
4050-
flagpd1("mcmpccxadd"),
4051+
m("mcmpccxadd"),
40514052
flagpd1("mcmse"),
40524053
flagpd1("mcode-object-v3"),
40534054
flagpd1("mconstant-cfstrings"),
@@ -4185,7 +4186,7 @@ m("mno-aes"),
41854186
m("mno-altivec"),
41864187
flagpd1("mno-amdgpu-ieee"),
41874188
m("mno-amx-bf16"),
4188-
flagpd1("mno-amx-fp16"),
4189+
m("mno-amx-fp16"),
41894190
m("mno-amx-int8"),
41904191
m("mno-amx-tile"),
41914192
m("mno-atomics"),
@@ -4207,10 +4208,10 @@ m("mno-avx512vl"),
42074208
m("mno-avx512vnni"),
42084209
m("mno-avx512vp2intersect"),
42094210
m("mno-avx512vpopcntdq"),
4210-
flagpd1("mno-avxifma"),
4211-
flagpd1("mno-avxneconvert"),
4211+
m("mno-avxifma"),
4212+
m("mno-avxneconvert"),
42124213
m("mno-avxvnni"),
4213-
flagpd1("mno-avxvnniint8"),
4214+
m("mno-avxvnniint8"),
42144215
flagpd1("mno-backchain"),
42154216
m("mno-bmi"),
42164217
m("mno-bmi2"),
@@ -4223,7 +4224,7 @@ m("mno-clflushopt"),
42234224
m("mno-clwb"),
42244225
m("mno-clzero"),
42254226
m("mno-cmpb"),
4226-
flagpd1("mno-cmpccxadd"),
4227+
m("mno-cmpccxadd"),
42274228
flagpd1("mno-code-object-v3"),
42284229
flagpd1("mno-constant-cfstrings"),
42294230
flagpd1("mno-constructor-aliases"),
@@ -4249,7 +4250,7 @@ flagpd1("mno-fix-cortex-a72-aes-1655431"),
42494250
m("mno-float128"),
42504251
m("mno-fma"),
42514252
m("mno-fma4"),
4252-
flagpd1("mno-fmv"),
4253+
m("mno-fmv"),
42534254
flagpd1("mno-fp-ret-in-387"),
42544255
m("mno-fprnd"),
42554256
m("mno-fpu"),
@@ -4322,13 +4323,13 @@ m("mno-popcntd"),
43224323
m("mno-power10-vector"),
43234324
m("mno-power8-vector"),
43244325
m("mno-power9-vector"),
4325-
flagpd1("mno-prefetchi"),
4326+
m("mno-prefetchi"),
43264327
m("mno-prefetchwt1"),
43274328
flagpd1("mno-prefixed"),
43284329
m("mno-prfchw"),
43294330
m("mno-ptwrite"),
43304331
flagpd1("mno-pure-code"),
4331-
flagpd1("mno-raoint"),
4332+
m("mno-raoint"),
43324333
m("mno-rdpid"),
43334334
m("mno-rdpru"),
43344335
m("mno-rdrnd"),
@@ -4438,15 +4439,15 @@ m("mpower10-vector"),
44384439
m("mcrypto"),
44394440
m("mpower8-vector"),
44404441
m("mpower9-vector"),
4441-
flagpd1("mprefetchi"),
4442+
m("mprefetchi"),
44424443
m("mprefetchwt1"),
44434444
flagpd1("mprefixed"),
44444445
m("mprfchw"),
44454446
m("mprivileged"),
44464447
m("mptwrite"),
44474448
flagpd1("mpure-code"),
44484449
flagpd1("mqdsp6-compat"),
4449-
flagpd1("mraoint"),
4450+
m("mraoint"),
44504451
m("mrdpid"),
44514452
m("mrdpru"),
44524453
m("mrdrnd"),
@@ -4533,9 +4534,9 @@ m("mv67"),
45334534
flagpd1("mv67t"),
45344535
m("mv68"),
45354536
m("mv69"),
4536-
flagpd1("mv71"),
4537+
m("mv71"),
45374538
flagpd1("mv71t"),
4538-
flagpd1("mv73"),
4539+
m("mv73"),
45394540
m("mvaes"),
45404541
m("mvirt"),
45414542
m("mvis"),
@@ -4950,7 +4951,14 @@ flagpd1("print-stats"),
49504951
flagpd1("private_bundle"),
49514952
flagpd1("pthread"),
49524953
flagpd1("pthreads"),
4953-
flagpd1("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

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1567,7 +1567,7 @@ fn buildOutputType(
15671567
out_path = it.only_arg;
15681568
}
15691569
},
1570-
.c => c_out_mode = .object, // -c
1570+
.c, .r => c_out_mode = .object, // -c or -r
15711571
.asm_only => c_out_mode = .assembly, // -S
15721572
.preprocess_only => c_out_mode = .preprocessor, // -E
15731573
.emit_llvm => emit_llvm = true,
@@ -5128,6 +5128,7 @@ pub const ClangArgIterator = struct {
51285128
target,
51295129
o,
51305130
c,
5131+
r,
51315132
m,
51325133
x,
51335134
other,

tools/update_clang_options.zig

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -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",

0 commit comments

Comments
 (0)