1diff --git a/utils/bazel/llvm-project-overlay/clang/BUILD.bazel b/utils/bazel/llvm-project-overlay/clang/BUILD.bazel
2index 0c1abe607b58..a382a3bc3d69 100644
3--- a/utils/bazel/llvm-project-overlay/clang/BUILD.bazel
4+++ b/utils/bazel/llvm-project-overlay/clang/BUILD.bazel
5@@ -26,7 +26,7 @@ cc_binary(
6     srcs = glob([
7         "utils/TableGen/*.cpp",
8         "utils/TableGen/*.h",
9-    ]),
10+    ], allow_empty = True),
11     copts = [
12         "$(STACK_FRAME_UNLIMITED)",
13     ] + llvm_stdcxx_copts,
14@@ -68,7 +68,7 @@ gentbl(
15     ],
16     tblgen = ":clang-tblgen",
17     td_file = "include/clang/Basic/Diagnostic.td",
18-    td_srcs = glob(["include/clang/Basic/*.td"]),
19+    td_srcs = glob(["include/clang/Basic/*.td"], allow_empty = True),
20 )
21
22 gentbl(
23@@ -333,11 +333,11 @@ gentbl(
24 # Table definition files can be used for documentation:
25 filegroup(
26     name = "all_table_defs",
27-    srcs = glob(["include/**/*.td"]),
28+    srcs = glob(["include/**/*.td"], allow_empty = True),
29 )
30
31 exports_files(
32-    glob(["include/**/*.td"]),
33+    glob(["include/**/*.td"], allow_empty = True),
34 )
35
36 genrule(
37@@ -384,7 +384,7 @@ cc_library(
38     name = "basic_internal_headers",
39     hdrs = glob([
40         "lib/Basic/*.h",
41-    ]),
42+    ], allow_empty = True),
43     features = ["-header_modules"],
44     strip_include_prefix = "lib/Basic",
45 )
46@@ -400,10 +400,10 @@ cc_library(
47         "lib/Basic/*.h",
48         "lib/Basic/Targets/*.cpp",
49         "lib/Basic/Targets/*.h",
50-    ]),
51+    ], allow_empty = True),
52     hdrs = glob([
53         "include/clang/Basic/*.h",
54-    ]),
55+    ], allow_empty = True),
56     copts = [
57         "-DHAVE_VCS_VERSION_INC",
58         "$(STACK_FRAME_UNLIMITED)",
59@@ -435,7 +435,7 @@ cc_library(
60         "include/clang/Basic/DiagnosticIndexName.inc",
61     ] + glob([
62         "include/clang/Basic/*.def",
63-    ]),
64+    ], allow_empty = True),
65     deps = [
66         ":basic_arm_cde_gen",
67         ":basic_arm_fp16_inc_gen",
68@@ -468,10 +468,10 @@ cc_library(
69     srcs = glob([
70         "lib/Lex/*.cpp",
71         "lib/Lex/*.h",
72-    ]),
73+    ], allow_empty = True),
74     hdrs = glob([
75         "include/clang/Lex/*.h",
76-    ]),
77+    ], allow_empty = True),
78     copts = llvm_stdcxx_copts,
79     includes = ["include"],
80     deps = [
81@@ -694,13 +694,13 @@ cc_library(
82         "lib/AST/*.h",
83         "lib/AST/Interp/*.cpp",
84         "lib/AST/Interp/*.h",
85-    ]) + [
86+    ], allow_empty = True) + [
87         "lib/AST/AttrDocTable.inc",
88         "lib/AST/Interp/Opcodes.inc",
89     ],
90     hdrs = glob([
91         "include/clang/AST/*.h",
92-    ]),
93+    ], allow_empty = True),
94     copts = [
95         # FIXME: This is necessary to allow "file relative" include paths from
96         # non-generated `srcs` to find generated `srcs` above. Bazel should
97@@ -731,7 +731,7 @@ cc_library(
98         "include/clang/AST/StmtNodes.inc",
99     ] + glob([
100         "include/clang/AST/*.def",
101-    ]),
102+    ], allow_empty = True),
103     deps = [
104         ":ast_attr_gen",
105         ":ast_comment_command_info_gen",
106@@ -760,7 +760,7 @@ cc_library(
107     srcs = glob([
108         "lib/Index/*.cpp",
109         "lib/Index/*.h",
110-    ]),
111+    ], allow_empty = True),
112     hdrs = glob([
113         "include/clang/Index/*.h",
114         "include/clang-c/*.h",
115@@ -785,15 +785,15 @@ cc_library(
116     srcs = glob([
117         "lib/Analysis/*.cpp",
118         "lib/Analysis/*.h",
119-    ]),
120+    ], allow_empty = True),
121     hdrs = glob([
122         "include/clang/Analysis/**/*.h",
123-    ]),
124+    ], allow_empty = True),
125     copts = llvm_stdcxx_copts,
126     includes = ["include"],
127     textual_hdrs = glob([
128         "include/clang/Analysis/**/*.def",
129-    ]),
130+    ], allow_empty = True),
131     deps = [
132         ":ast",
133         ":ast_matchers",
134@@ -843,7 +843,7 @@ cc_library(
135     srcs = glob([
136         "lib/Sema/*.cpp",
137         "lib/Sema/*.h",
138-    ]),
139+    ], allow_empty = True),
140     hdrs = glob([
141         "include/clang/Sema/*.h",
142         "include/clang-c/*.h",
143@@ -910,11 +910,11 @@ cc_library(
144     ] + glob([
145         "lib/Parse/*.cpp",
146         "lib/Parse/*.h",
147-    ]),
148+    ], allow_empty = True),
149     hdrs = [
150         "include/clang/Parse/AttrParserStringSwitches.inc",
151         "include/clang/Parse/AttrSubMatchRulesParserStringSwitches.inc",
152-    ] + glob(["include/clang/Parse/*.h"]),
153+    ] + glob(["include/clang/Parse/*.h"], allow_empty = True),
154     copts = llvm_stdcxx_copts,
155     includes = ["include"],
156     deps = [
157@@ -935,8 +935,8 @@ cc_library(
158     srcs = glob([
159         "lib/ASTMatchers/*.cpp",
160         "lib/ASTMatchers/*.h",
161-    ]),
162-    hdrs = glob(["include/clang/ASTMatchers/*.h"]),
163+    ], allow_empty = True),
164+    hdrs = glob(["include/clang/ASTMatchers/*.h"], allow_empty = True),
165     copts = llvm_stdcxx_copts,
166     includes = ["include"],
167     deps = [
168@@ -952,8 +952,8 @@ cc_library(
169     srcs = glob([
170         "lib/ASTMatchers/Dynamic/*.cpp",
171         "lib/ASTMatchers/Dynamic/*.h",
172-    ]),
173-    hdrs = glob(["include/clang/ASTMatchers/Dynamic/*.h"]),
174+    ], allow_empty = True),
175+    hdrs = glob(["include/clang/ASTMatchers/Dynamic/*.h"], allow_empty = True),
176     copts = ["$(STACK_FRAME_UNLIMITED)"] + llvm_stdcxx_copts,
177     includes = ["include"],
178     deps = [
179@@ -970,8 +970,8 @@ cc_library(
180     srcs = glob([
181         "lib/Rewrite/*.cpp",
182         "lib/Rewrite/*.h",
183-    ]),
184-    hdrs = glob(["include/clang/Rewrite/Core/*.h"]),
185+    ], allow_empty = True),
186+    hdrs = glob(["include/clang/Rewrite/Core/*.h"], allow_empty = True),
187     copts = llvm_stdcxx_copts,
188     includes = ["include"],
189     deps = [
190@@ -987,8 +987,8 @@ cc_library(
191     name = "testing",
192     srcs = glob([
193         "lib/Testing/*.cpp",
194-    ]),
195-    hdrs = glob(["include/clang/Testing/*.h"]),
196+    ], allow_empty = True),
197+    hdrs = glob(["include/clang/Testing/*.h"], allow_empty = True),
198     copts = llvm_stdcxx_copts,
199     includes = ["include"],
200     deps = [
201@@ -1002,8 +1002,8 @@ cc_library(
202     srcs = glob([
203         "lib/Tooling/Core/*.cpp",
204         "lib/Tooling/Core/*.h",
205-    ]),
206-    hdrs = glob(["include/clang/Tooling/Core/*.h"]),
207+    ], allow_empty = True),
208+    hdrs = glob(["include/clang/Tooling/Core/*.h"], allow_empty = True),
209     copts = llvm_stdcxx_copts,
210     includes = ["include"],
211     deps = [
212@@ -1026,7 +1026,7 @@ cc_library(
213     ),
214     hdrs = glob([
215         "include/clang/Tooling/*.h",
216-    ]),
217+    ], allow_empty = True),
218     copts = llvm_stdcxx_copts,
219     includes = ["include"],
220     deps = [
221@@ -1048,10 +1048,10 @@ cc_library(
222     name = "tooling_inclusions",
223     srcs = glob([
224         "lib/Tooling/Inclusions/**/*.cpp",
225-    ]),
226+    ], allow_empty = True),
227     hdrs = glob([
228         "include/clang/Tooling/Inclusions/**/*.h",
229-    ]),
230+    ], allow_empty = True),
231     copts = llvm_stdcxx_copts,
232     deps = [
233         ":basic",
234@@ -1067,11 +1067,11 @@ cc_library(
235     srcs = glob([
236         "lib/Tooling/Refactoring/**/*.cpp",
237         "lib/Tooling/Refactoring/**/*.h",
238-    ]),
239+    ], allow_empty = True),
240     hdrs = glob([
241         "include/clang/Tooling/Refactoring/**/*.h",
242         "include/clang/Tooling/Refactoring/**/*.def",
243-    ]),
244+    ], allow_empty = True),
245     copts = llvm_stdcxx_copts,
246     deps = [
247         ":ast",
248@@ -1104,8 +1104,8 @@ gentbl(
249
250 cc_library(
251     name = "tooling_syntax",
252-    srcs = glob(["lib/Tooling/Syntax/**/*.cpp"]),
253-    hdrs = glob(["include/clang/Tooling/Syntax/**/*.h"]),
254+    srcs = glob(["lib/Tooling/Syntax/**/*.cpp"], allow_empty = True),
255+    hdrs = glob(["include/clang/Tooling/Syntax/**/*.h"], allow_empty = True),
256     copts = llvm_stdcxx_copts,
257     deps = [
258         ":ast",
259@@ -1119,8 +1119,8 @@ cc_library(
260
261 cc_library(
262     name = "tooling_dependency_scanning",
263-    srcs = glob(["lib/Tooling/DependencyScanning/**/*.cpp"]),
264-    hdrs = glob(["include/clang/Tooling/DependencyScanning/**/*.h"]),
265+    srcs = glob(["lib/Tooling/DependencyScanning/**/*.cpp"], allow_empty = True),
266+    hdrs = glob(["include/clang/Tooling/DependencyScanning/**/*.h"], allow_empty = True),
267     copts = llvm_stdcxx_copts,
268     deps = [
269         ":basic",
270@@ -1135,8 +1135,8 @@ cc_library(
271
272 cc_library(
273     name = "transformer",
274-    srcs = glob(["lib/Tooling/Transformer/**/*.cpp"]),
275-    hdrs = glob(["include/clang/Tooling/Transformer/**/*.h"]),
276+    srcs = glob(["lib/Tooling/Transformer/**/*.cpp"], allow_empty = True),
277+    hdrs = glob(["include/clang/Tooling/Transformer/**/*.h"], allow_empty = True),
278     copts = llvm_stdcxx_copts,
279     deps = [
280         ":ast",
281@@ -1151,8 +1151,8 @@ cc_library(
282
283 cc_library(
284     name = "ast-diff",
285-    srcs = glob(["lib/Tooling/ASTDiff/*.cpp"]),
286-    hdrs = glob(["include/clang/Tooling/ASTDiff/*.h"]),
287+    srcs = glob(["lib/Tooling/ASTDiff/*.cpp"], allow_empty = True),
288+    hdrs = glob(["include/clang/Tooling/ASTDiff/*.h"], allow_empty = True),
289     copts = llvm_stdcxx_copts,
290     deps = [
291         ":ast",
292@@ -1164,8 +1164,8 @@ cc_library(
293
294 cc_library(
295     name = "crosstu",
296-    srcs = glob(["lib/CrossTU/*.cpp"]),
297-    hdrs = glob(["include/clang/CrossTU/*.h"]),
298+    srcs = glob(["lib/CrossTU/*.cpp"], allow_empty = True),
299+    hdrs = glob(["include/clang/CrossTU/*.h"], allow_empty = True),
300     copts = llvm_stdcxx_copts,
301     deps = [
302         ":ast",
303@@ -1184,13 +1184,13 @@ cc_library(
304             "lib/Format/*.cpp",
305             "lib/Format/*.h",
306         ],
307-    ),
308+    allow_empty = True),
309     hdrs = [
310         "lib/Format/FormatTokenLexer.h",
311         "lib/Format/Macros.h",
312     ] + glob([
313         "include/clang/Format/*.h",
314-    ]),
315+    ], allow_empty = True),
316     copts = llvm_stdcxx_copts,
317     includes = ["include"],
318     deps = [
319@@ -1204,8 +1204,8 @@ cc_library(
320
321 cc_library(
322     name = "edit",
323-    srcs = glob(["lib/Edit/*.cpp"]),
324-    hdrs = glob(["include/clang/Edit/*.h"]),
325+    srcs = glob(["lib/Edit/*.cpp"], allow_empty = True),
326+    hdrs = glob(["include/clang/Edit/*.h"], allow_empty = True),
327     copts = llvm_stdcxx_copts,
328     includes = ["include"],
329     deps = [
330@@ -1237,15 +1237,15 @@ cc_library(
331     srcs = glob([
332         "lib/StaticAnalyzer/Core/**/*.cpp",
333         "lib/StaticAnalyzer/Core/**/*.h",
334-    ]),
335+    ], allow_empty = True),
336     hdrs = glob([
337         "include/clang/StaticAnalyzer/Core/**/*.h",
338-    ]),
339+    ], allow_empty = True),
340     copts = llvm_stdcxx_copts,
341     includes = ["include"],
342     textual_hdrs = glob([
343         "include/clang/StaticAnalyzer/Core/**/*.def",
344-    ]),
345+    ], allow_empty = True),
346     deps = [
347         ":analysis",
348         ":ast",
349@@ -1282,12 +1282,12 @@ cc_library(
350     srcs = glob([
351         "lib/StaticAnalyzer/Checkers/**/*.cpp",
352         "lib/StaticAnalyzer/Checkers/**/*.h",
353-    ]),
354+    ], allow_empty = True),
355     hdrs = [
356         "include/clang/StaticAnalyzer/Checkers/Checkers.inc",
357     ] + glob([
358         "include/clang/StaticAnalyzer/Checkers/**/*.h",
359-    ]),
360+    ], allow_empty = True),
361     copts = ["$(STACK_FRAME_UNLIMITED)"] + llvm_stdcxx_copts,
362     includes = ["include"],
363     deps = [
364@@ -1332,10 +1332,10 @@ cc_library(
365         exclude = [
366             "lib/Driver/ToolChains/MSVCSetupApi.h",
367         ],
368-    ),
369+    allow_empty = True),
370     hdrs = glob([
371         "include/clang/Driver/*.h",
372-    ]),
373+    ], allow_empty = True),
374     copts = ["$(STACK_FRAME_UNLIMITED)"] + llvm_stdcxx_copts,
375     includes = [
376         "include",
377@@ -1349,7 +1349,7 @@ cc_library(
378     }),
379     textual_hdrs = glob([
380         "include/clang/Driver/*.def",
381-    ]),
382+    ], allow_empty = True),
383     deps = [
384         ":ast",
385         ":basic",
386@@ -1466,7 +1466,7 @@ gentbl(
387 # We generate the set of builtin headers under a special subdirectory in the
388 # 'bin' section of the bazel output so that they can be used as data
389 # dependencies. It requires listing explicitly all the generated inputs here.
390-builtin_headers = glob(["lib/Headers/**/*.h"]) + [
391+builtin_headers = glob(["lib/Headers/**/*.h"], allow_empty = True) + [
392     "lib/Headers/arm_cde.h",
393     "lib/Headers/arm_fp16.h",
394     "lib/Headers/arm_mve.h",
395@@ -1495,16 +1495,16 @@ cc_library(
396     srcs = glob([
397         "lib/Frontend/*.cpp",
398         "lib/Frontend/*.h",
399-    ]),
400+    ], allow_empty = True),
401     hdrs = glob([
402         "include/clang/Frontend/*.h",
403-    ]),
404+    ], allow_empty = True),
405     copts = ["$(STACK_FRAME_UNLIMITED)"] + llvm_stdcxx_copts,
406     data = [":builtin_headers_gen"],
407     includes = ["include"],
408     textual_hdrs = glob([
409         "include/clang/Frontend/*.def",
410-    ]),
411+    ], allow_empty = True),
412     deps = [
413         ":ast",
414         ":basic",
415@@ -1537,8 +1537,8 @@ cc_library(
416     srcs = glob([
417         "lib/Frontend/Rewrite/*.cpp",
418         "lib/Frontend/Rewrite/*.h",
419-    ]),
420-    hdrs = glob(["include/clang/Rewrite/Frontend/*.h"]),
421+    ], allow_empty = True),
422+    hdrs = glob(["include/clang/Rewrite/Frontend/*.h"], allow_empty = True),
423     copts = llvm_stdcxx_copts,
424     includes = ["include"],
425     deps = [
426@@ -1560,8 +1560,8 @@ cc_library(
427     srcs = glob([
428         "lib/Interpreter/*.cpp",
429         "lib/Interpreter/*.h",
430-    ]),
431-    hdrs = glob(["include/clang/Interpreter/*.h"]),
432+    ], allow_empty = True),
433+    hdrs = glob(["include/clang/Interpreter/*.h"], allow_empty = True),
434     copts = llvm_stdcxx_copts,
435     includes = ["include"],
436     deps = [
437@@ -1593,8 +1593,8 @@ cc_library(
438     srcs = glob([
439         "lib/CodeGen/*.cpp",
440         "lib/CodeGen/*.h",
441-    ]),
442-    hdrs = glob(["include/clang/CodeGen/*.h"]),
443+    ], allow_empty = True),
444+    hdrs = glob(["include/clang/CodeGen/*.h"], allow_empty = True),
445     copts = ["$(STACK_FRAME_UNLIMITED)"] + llvm_stdcxx_copts,
446     includes = ["include"],
447     deps = [
448@@ -1644,8 +1644,8 @@ cc_library(
449     srcs = glob([
450         "lib/StaticAnalyzer/Frontend/**/*.cpp",
451         "lib/StaticAnalyzer/Frontend/**/*.h",
452-    ]),
453-    hdrs = glob(["include/clang/StaticAnalyzer/Frontend/**/*.h"]),
454+    ], allow_empty = True),
455+    hdrs = glob(["include/clang/StaticAnalyzer/Frontend/**/*.h"], allow_empty = True),
456     copts = llvm_stdcxx_copts,
457     includes = ["include"],
458     deps = [
459@@ -1697,15 +1697,15 @@ cc_library(
460     ] + glob([
461         "lib/Serialization/*.cpp",
462         "lib/Serialization/*.h",
463-    ]),
464+    ], allow_empty = True),
465     hdrs = glob([
466         "include/clang/Serialization/*.h",
467-    ]),
468+    ], allow_empty = True),
469     copts = llvm_stdcxx_copts,
470     includes = ["include"],
471     textual_hdrs = glob([
472         "include/clang/Serialization/*.def",
473-    ]),
474+    ], allow_empty = True),
475     deps = [
476         ":ast",
477         ":basic",
478@@ -1727,8 +1727,8 @@ cc_library(
479     srcs = glob([
480         "lib/FrontendTool/*.cpp",
481         "lib/FrontendTool/*.h",
482-    ]),
483-    hdrs = glob(["include/clang/FrontendTool/*.h"]),
484+    ], allow_empty = True),
485+    hdrs = glob(["include/clang/FrontendTool/*.h"], allow_empty = True),
486     copts = llvm_stdcxx_copts,
487     includes = ["include"],
488     deps = [
489@@ -1749,8 +1749,8 @@ cc_library(
490     srcs = glob([
491         "lib/ARCMigrate/*.cpp",
492         "lib/ARCMigrate/*.h",
493-    ]),
494-    hdrs = glob(["include/clang/ARCMigrate/*.h"]),
495+    ], allow_empty = True),
496+    hdrs = glob(["include/clang/ARCMigrate/*.h"], allow_empty = True),
497     copts = llvm_stdcxx_copts,
498     includes = ["include"],
499     deps = [
500@@ -1776,7 +1776,7 @@ cc_library(
501     srcs = glob([
502         "tools/libclang/*.cpp",
503         "tools/libclang/*.h",
504-    ]),
505+    ], allow_empty = True),
506     hdrs = glob(["include/clang-c/*.h"]),
507     copts = llvm_stdcxx_copts,
508     defines = ["CINDEX_NO_EXPORTS"],
509@@ -1805,7 +1805,7 @@ cc_plugin_library(
510     srcs = glob([
511         "tools/libclang/*.cpp",
512         "tools/libclang/*.h",
513-    ]),
514+    ], allow_empty = True),
515     hdrs = glob(["include/clang-c/*.h"]),
516     copts = select({
517         "@bazel_tools//src/conditions:windows": ["-D_CINDEX_LIB_"],
518@@ -1914,7 +1914,7 @@ cc_binary(
519     srcs = glob([
520         "tools/clang-import-test/*.cpp",
521         "tools/clang-import-test/*.h",
522-    ]),
523+    ], allow_empty = True),
524     stamp = 0,
525     deps = [
526         ":ast",
527@@ -1934,7 +1934,7 @@ cc_library(
528     srcs = glob([
529         "tools/driver/*.cpp",
530         "tools/driver/*.h",
531-    ]),
532+    ], allow_empty = True),
533     copts = [
534         # Disable stack frame size checks in the driver because
535         # clang::ensureStackAddressSpace allocates a large array on the stack.
536@@ -1986,7 +1986,7 @@ cc_binary(
537     srcs = glob([
538         "tools/diagtool/*.cpp",
539         "tools/diagtool/*.h",
540-    ]),
541+    ], allow_empty = True),
542     stamp = 0,
543     deps = [
544         ":basic",
545diff --git a/utils/bazel/llvm-project-overlay/llvm/BUILD.bazel b/utils/bazel/llvm-project-overlay/llvm/BUILD.bazel
546index 716d7f5d9645..1e3e7a8ff0e7 100644
547--- a/utils/bazel/llvm-project-overlay/llvm/BUILD.bazel
548+++ b/utils/bazel/llvm-project-overlay/llvm/BUILD.bazel
549@@ -39,7 +39,7 @@ enum_targets_gen(
550 llvm_target_asm_printers = [
551     t
552     for t in llvm_targets
553-    if glob(["lib/Target/{}/*AsmPrinter.cpp".format(t)])
554+    if glob(["lib/Target/{}/*AsmPrinter.cpp".format(t)], allow_empty = True)
555 ]
556
557 enum_targets_gen(
558@@ -54,7 +54,7 @@ enum_targets_gen(
559 llvm_target_asm_parsers = [
560     t
561     for t in llvm_targets
562-    if glob(["lib/Target/{}/AsmParser/CMakeLists.txt".format(t)])
563+    if glob(["lib/Target/{}/AsmParser/CMakeLists.txt".format(t)], allow_empty = True)
564 ]
565
566 enum_targets_gen(
567@@ -69,7 +69,7 @@ enum_targets_gen(
568 llvm_target_disassemblers = [
569     t
570     for t in llvm_targets
571-    if glob(["lib/Target/{}/Disassembler/CMakeLists.txt".format(t)])
572+    if glob(["lib/Target/{}/Disassembler/CMakeLists.txt".format(t)], allow_empty = True)
573 ]
574
575 enum_targets_gen(
576@@ -84,7 +84,7 @@ enum_targets_gen(
577 llvm_target_mcas = [
578     t
579     for t in llvm_targets
580-    if glob(["lib/Target/{}/MCA/CMakeLists.txt".format(t)])
581+    if glob(["lib/Target/{}/MCA/CMakeLists.txt".format(t)], allow_empty = True)
582 ]
583
584 enum_targets_gen(
585@@ -149,8 +149,8 @@ cc_library(
586     srcs = glob([
587         "lib/Demangle/*.cpp",
588         "lib/Demangle/*.h",
589-    ]),
590-    hdrs = glob(["include/llvm/Demangle/*.h"]),
591+    ], allow_empty = True),
592+    hdrs = glob(["include/llvm/Demangle/*.h"], allow_empty = True),
593     copts = llvm_copts,
594     deps = [":config"],
595 )
596@@ -175,11 +175,11 @@ cc_library(
597     name = "Support-c",
598     srcs = glob([
599         "lib/Support/*.c",
600-    ]),
601+    ], allow_empty = True),
602     hdrs = glob([
603         "include/llvm/Support/**/*.h",
604         "include/llvm/ADT/*.h",
605-    ]) + [
606+    ], allow_empty = True) + [
607         "include/llvm-c/Core.h",
608         "include/llvm-c/DataTypes.h",
609         "include/llvm-c/Deprecated.h",
610@@ -213,7 +213,7 @@ cc_library(
611         "include/llvm/Support/*.def",
612         "lib/Support/*.h",
613         "lib/Support/*.inc",
614-    ]),
615+    ], allow_empty = True),
616     deps = [
617         ":config",
618         ":Demangle",
619@@ -241,16 +241,16 @@ cc_library(
620         "@bazel_tools//src/conditions:windows": glob([
621             "lib/Support/Windows/*.h",
622             "lib/Support/Windows/*.inc",
623-        ]),
624+        ], allow_empty = True),
625         "//conditions:default": glob([
626             "lib/Support/Unix/*.h",
627             "lib/Support/Unix/*.inc",
628-        ]),
629+        ], allow_empty = True),
630     }),
631     hdrs = glob([
632         "include/llvm/Support/**/*.h",
633         "include/llvm/ADT/*.h",
634-    ]) + [
635+    ], allow_empty = True) + [
636         "include/llvm-c/Core.h",
637         "include/llvm-c/DataTypes.h",
638         "include/llvm-c/Deprecated.h",
639@@ -282,7 +282,7 @@ cc_library(
640     }),
641     textual_hdrs = glob([
642         "include/llvm/Support/*.def",
643-    ]),
644+    ], allow_empty = True),
645     deps = [
646         ":Support-c",
647         ":config",
648@@ -306,8 +306,8 @@ cc_library(
649     srcs = glob([
650         "lib/FileCheck/*.cpp",
651         "lib/FileCheck/*.h",
652-    ]),
653-    hdrs = glob(["include/llvm/FileCheck/*.h"]),
654+    ], allow_empty = True),
655+    hdrs = glob(["include/llvm/FileCheck/*.h"], allow_empty = True),
656     copts = llvm_copts,
657     deps = [":Support"],
658 )
659@@ -317,8 +317,8 @@ cc_library(
660     srcs = glob([
661         "lib/LineEditor/*.cpp",
662         "lib/LineEditor/*.h",
663-    ]),
664-    hdrs = glob(["include/llvm/LineEditor/*.h"]),
665+    ], allow_empty = True),
666+    hdrs = glob(["include/llvm/LineEditor/*.h"], allow_empty = True),
667     copts = llvm_copts,
668     deps = [
669         ":Support",
670@@ -331,8 +331,8 @@ cc_library(
671     srcs = glob([
672         "lib/Option/*.cpp",
673         "lib/Option/*.h",
674-    ]),
675-    hdrs = glob(["include/llvm/Option/*.h"]),
676+    ], allow_empty = True),
677+    hdrs = glob(["include/llvm/Option/*.h"], allow_empty = True),
678     copts = llvm_copts,
679     deps = [
680         ":Support",
681@@ -345,8 +345,8 @@ cc_library(
682     srcs = glob([
683         "lib/TableGen/*.cpp",
684         "lib/TableGen/*.h",
685-    ]),
686-    hdrs = glob(["include/llvm/TableGen/*.h"]),
687+    ], allow_empty = True),
688+    hdrs = glob(["include/llvm/TableGen/*.h"], allow_empty = True),
689     copts = llvm_copts,
690     deps = [
691         ":Support",
692@@ -365,7 +365,7 @@ cc_library(
693         exclude = [
694             "include/llvm/LinkAllPasses.h",
695         ],
696-    ) + [
697+    allow_empty = True) + [
698         "include/llvm/IR/Value.def",
699         "include/llvm-c/Comdat.h",
700         "include/llvm-c/DebugInfo.h",
701@@ -379,16 +379,16 @@ cc_library(
702         "lib/BinaryFormat/*.cpp",
703         "lib/BinaryFormat/*.def",
704         "lib/BinaryFormat/*.h",
705-    ]),
706+    ], allow_empty = True),
707     hdrs = glob([
708         "include/llvm/BinaryFormat/*.h",
709-    ]),
710+    ], allow_empty = True),
711     copts = llvm_copts,
712     includes = ["include"],
713     textual_hdrs = glob([
714         "include/llvm/BinaryFormat/*.def",
715         "include/llvm/BinaryFormat/ELFRelocs/*.def",
716-    ]),
717+    ], allow_empty = True),
718     deps = [
719         ":Support",
720     ],
721@@ -396,7 +396,7 @@ cc_library(
722
723 cc_library(
724     name = "DebugInfo",
725-    hdrs = glob(["include/llvm/DebugInfo/*.h"]),
726+    hdrs = glob(["include/llvm/DebugInfo/*.h"], allow_empty = True),
727     copts = llvm_copts,
728     deps = [
729         ":Object",
730@@ -409,8 +409,8 @@ cc_library(
731     srcs = glob([
732         "lib/DebugInfo/MSF/*.cpp",
733         "lib/DebugInfo/MSF/*.h",
734-    ]),
735-    hdrs = glob(["include/llvm/DebugInfo/MSF/*.h"]),
736+    ], allow_empty = True),
737+    hdrs = glob(["include/llvm/DebugInfo/MSF/*.h"], allow_empty = True),
738     copts = llvm_copts,
739     deps = [":Support"],
740 )
741@@ -420,14 +420,14 @@ cc_library(
742     srcs = glob([
743         "lib/DebugInfo/CodeView/*.cpp",
744         "lib/DebugInfo/CodeView/*.h",
745-    ]),
746+    ], allow_empty = True),
747     hdrs = glob([
748         "include/llvm/DebugInfo/CodeView/*.h",
749-    ]),
750+    ], allow_empty = True),
751     copts = llvm_copts,
752     textual_hdrs = glob([
753         "include/llvm/DebugInfo/CodeView/*.def",
754-    ]),
755+    ], allow_empty = True),
756     deps = [
757         ":BinaryFormat",
758         ":DebugInfoMSF",
759@@ -442,11 +442,11 @@ cc_library(
760         "lib/DebugInfo/PDB/*.h",
761         "lib/DebugInfo/PDB/Native/*.cpp",
762         "lib/DebugInfo/PDB/Native/*.h",
763-    ]),
764+    ], allow_empty = True),
765     hdrs = glob([
766         "include/llvm/DebugInfo/PDB/*.h",
767         "include/llvm/DebugInfo/PDB/Native/*.h",
768-    ]),
769+    ], allow_empty = True),
770     copts = llvm_copts,
771     deps = [
772         ":BinaryFormat",
773@@ -463,10 +463,10 @@ cc_library(
774     name = "Debuginfod",
775     srcs = glob([
776         "lib/Debuginfod/*.cpp",
777-    ]),
778+    ], allow_empty = True),
779     hdrs = glob([
780         "include/llvm/Debuginfod/*.h",
781-    ]),
782+    ], allow_empty = True),
783     copts = llvm_copts,
784     deps = [
785         ":Support",
786@@ -478,12 +478,12 @@ cc_library(
787     srcs = glob([
788         "lib/MC/*.cpp",
789         "lib/MC/*.h",
790-    ]),
791+    ], allow_empty = True),
792     hdrs = glob([
793         "include/llvm/MC/*.h",
794         "include/llvm/MC/*.def",
795         "include/llvm/MC/*.inc",
796-    ]),
797+    ], allow_empty = True),
798     copts = llvm_copts,
799     deps = [
800         ":BinaryFormat",
801@@ -499,8 +499,8 @@ cc_library(
802     srcs = glob([
803         "lib/DebugInfo/DWARF/*.cpp",
804         "lib/DebugInfo/DWARF/*.h",
805-    ]),
806-    hdrs = glob(["include/llvm/DebugInfo/DWARF/*.h"]),
807+    ], allow_empty = True),
808+    hdrs = glob(["include/llvm/DebugInfo/DWARF/*.h"], allow_empty = True),
809     copts = llvm_copts,
810     deps = [
811         ":BinaryFormat",
812@@ -516,8 +516,8 @@ cc_library(
813     srcs = glob([
814         "lib/DebugInfo/Symbolize/*.cpp",
815         "lib/DebugInfo/Symbolize/*.h",
816-    ]),
817-    hdrs = glob(["include/llvm/DebugInfo/Symbolize/*.h"]),
818+    ], allow_empty = True),
819+    hdrs = glob(["include/llvm/DebugInfo/Symbolize/*.h"], allow_empty = True),
820     copts = llvm_copts,
821     deps = [
822         ":BinaryFormat",
823@@ -553,7 +553,7 @@ cc_library(
824     hdrs = glob([
825         "utils/TableGen/*.h",
826         "utils/TableGen/GlobalISel/*.h",
827-    ]),
828+    ], allow_empty = True),
829     copts = llvm_copts,
830     features = ["-header_modules"],
831     strip_include_prefix = "utils/TableGen",
832@@ -581,7 +581,7 @@ gentbl(
833     td_srcs = glob([
834         "include/llvm/CodeGen/*.td",
835         "include/llvm/IR/Intrinsics*.td",
836-    ]),
837+    ], allow_empty = True),
838 )
839
840 gentbl(
841@@ -592,7 +592,7 @@ gentbl(
842     td_srcs = glob([
843         "include/llvm/CodeGen/*.td",
844         "include/llvm/IR/Intrinsics*.td",
845-    ]),
846+    ], allow_empty = True),
847 )
848
849 # Note that the intrinsics are not currently set up so they can be pruned for
850@@ -672,7 +672,7 @@ llvm_target_intrinsics_list = [
851         td_srcs = glob([
852             "include/llvm/CodeGen/*.td",
853             "include/llvm/IR/*.td",
854-        ]),
855+        ], allow_empty = True),
856     ),
857 ] for target in llvm_target_intrinsics_list]
858
859@@ -692,7 +692,7 @@ cc_library(
860     srcs = glob([
861         "lib/Bitstream/Reader/*.cpp",
862         "lib/Bitstream/Reader/*.h",
863-    ]),
864+    ], allow_empty = True),
865     hdrs = [
866         "include/llvm/Bitstream/BitCodes.h",
867         "include/llvm/Bitstream/BitstreamReader.h",
868@@ -707,7 +707,7 @@ cc_library(
869     name = "BitstreamWriter",
870     srcs = glob([
871         "lib/Bitstream/Writer/*.h",
872-    ]),
873+    ], allow_empty = True),
874     hdrs = [
875         "include/llvm/Bitstream/BitCodes.h",
876         "include/llvm/Bitstream/BitstreamWriter.h",
877@@ -726,13 +726,13 @@ cc_library(
878             "lib/Remarks/*.h",
879         ],
880         exclude = ["lib/Remarks/RemarkLinker.cpp"],
881-    ),
882+    allow_empty = True),
883     hdrs = glob(
884         [
885             "include/llvm/Remarks/*.h",
886         ],
887         exclude = ["include/llvm/Remarks/RemarkLinker.h"],
888-    ) + [
889+    allow_empty = True) + [
890         "include/llvm-c/Remarks.h",
891     ],
892     copts = llvm_copts,
893@@ -767,7 +767,7 @@ cc_library(
894     srcs = glob([
895         "lib/IR/*.cpp",
896         "lib/IR/*.h",
897-    ]),
898+    ], allow_empty = True),
899     hdrs = glob(
900         [
901             "include/llvm/*.h",
902@@ -776,12 +776,12 @@ cc_library(
903         exclude = [
904             "include/llvm/LinkAllPasses.h",
905         ],
906-    ) + [
907+    allow_empty = True) + [
908         "include/llvm-c/Comdat.h",
909         "include/llvm-c/DebugInfo.h",
910     ] + [":llvm_intrinsics_headers"],
911     copts = llvm_copts,
912-    textual_hdrs = glob(["include/llvm/IR/*.def"]),
913+    textual_hdrs = glob(["include/llvm/IR/*.def"], allow_empty = True),
914     deps = [
915         ":BinaryFormat",
916         ":Remarks",
917@@ -798,7 +798,7 @@ cc_library(
918     srcs = glob([
919         "lib/Bitcode/Reader/*.cpp",
920         "lib/Bitcode/Reader/*.h",
921-    ]),
922+    ], allow_empty = True),
923     hdrs = [
924         "include/llvm-c/BitReader.h",
925         "include/llvm/Bitcode/BitcodeAnalyzer.h",
926@@ -820,8 +820,8 @@ cc_library(
927     srcs = glob([
928         "lib/MC/MCParser/*.cpp",
929         "lib/MC/MCParser/*.h",
930-    ]),
931-    hdrs = glob(["include/llvm/MC/MCParser/*.h"]),
932+    ], allow_empty = True),
933+    hdrs = glob(["include/llvm/MC/MCParser/*.h"], allow_empty = True),
934     copts = llvm_copts,
935     deps = [
936         ":BinaryFormat",
937@@ -835,12 +835,12 @@ cc_library(
938     name = "TextAPI",
939     srcs = glob([
940         "lib/TextAPI/**/*.cpp",
941-    ]),
942+    ], allow_empty = True),
943     hdrs = glob([
944         "include/llvm/TextAPI/**/*.h",
945         "include/llvm/TextAPI/**/*.def",
946         "lib/TextAPI/**/*.h",
947-    ]),
948+    ], allow_empty = True),
949     copts = llvm_copts,
950     deps = [
951         ":BinaryFormat",
952@@ -853,10 +853,10 @@ cc_library(
953     srcs = glob([
954         "lib/Object/*.cpp",
955         "lib/Object/*.h",
956-    ]),
957+    ], allow_empty = True),
958     hdrs = glob([
959         "include/llvm/Object/*.h",
960-    ]) + [
961+    ], allow_empty = True) + [
962         "include/llvm-c/Object.h",
963     ],
964     copts = llvm_copts,
965@@ -877,8 +877,8 @@ cc_library(
966     srcs = glob([
967         "lib/ObjectYAML/*.cpp",
968         "lib/ObjectYAML/*.h",
969-    ]),
970-    hdrs = glob(["include/llvm/ObjectYAML/*.h"]),
971+    ], allow_empty = True),
972+    hdrs = glob(["include/llvm/ObjectYAML/*.h"], allow_empty = True),
973     copts = llvm_copts,
974     deps = [
975         ":BinaryFormat",
976@@ -893,11 +893,11 @@ cc_library(
977     srcs = glob([
978         "lib/ProfileData/*.cpp",
979         "lib/ProfileData/*.h",
980-    ]),
981+    ], allow_empty = True),
982     hdrs = glob([
983         "include/llvm/ProfileData/*.h",
984         "include/llvm/ProfileData/*.inc",
985-    ]),
986+    ], allow_empty = True),
987     copts = llvm_copts,
988     deps = [
989         ":Core",
990@@ -912,8 +912,8 @@ cc_library(
991     srcs = glob([
992         "lib/ProfileData/Coverage/*.cpp",
993         "lib/ProfileData/Coverage/*.h",
994-    ]),
995-    hdrs = glob(["include/llvm/ProfileData/Coverage/*.h"]),
996+    ], allow_empty = True),
997+    hdrs = glob(["include/llvm/ProfileData/Coverage/*.h"], allow_empty = True),
998     copts = llvm_copts,
999     deps = [
1000         ":Object",
1001@@ -930,20 +930,20 @@ cc_library(
1002             "lib/Analysis/*.h",
1003             "lib/Analysis/*.def",
1004         ],
1005-    ),
1006+    allow_empty = True),
1007     hdrs = glob(
1008         [
1009             "include/llvm/Analysis/*.h",
1010             "include/llvm/Analysis/Utils/*.h",
1011         ],
1012-    ) + [
1013+    allow_empty = True) + [
1014         "include/llvm-c/Analysis.h",
1015         "include/llvm-c/Initialization.h",
1016     ],
1017     copts = llvm_copts,
1018     textual_hdrs = glob([
1019         "include/llvm/Analysis/*.def",
1020-    ]),
1021+    ], allow_empty = True),
1022     deps = [
1023         ":BinaryFormat",
1024         ":Core",
1025@@ -959,7 +959,7 @@ cc_library(
1026     srcs = glob([
1027         "lib/Bitcode/Writer/*.cpp",
1028         "lib/Bitcode/Writer/*.h",
1029-    ]),
1030+    ], allow_empty = True),
1031     hdrs = [
1032         "include/llvm-c/BitWriter.h",
1033         "include/llvm/Bitcode/BitcodeCommon.h",
1034@@ -984,10 +984,10 @@ cc_library(
1035     srcs = glob([
1036         "lib/Target/*.cpp",
1037         "lib/Target/*.h",
1038-    ]),
1039+    ], allow_empty = True),
1040     hdrs = glob([
1041         "include/llvm/Target/*.h",
1042-    ]) + [
1043+    ], allow_empty = True) + [
1044         "include/llvm-c/Target.h",
1045         "include/llvm-c/TargetMachine.h",
1046     ],
1047@@ -1007,8 +1007,8 @@ cc_library(
1048     srcs = glob([
1049         "lib/DWP/*.cpp",
1050         "lib/DWP/*.h",
1051-    ]),
1052-    hdrs = glob(["include/llvm/DWP/*.h"]),
1053+    ], allow_empty = True),
1054+    hdrs = glob(["include/llvm/DWP/*.h"], allow_empty = True),
1055     copts = llvm_copts,
1056     deps = [
1057         ":DebugInfoDWARF",
1058@@ -1024,8 +1024,8 @@ cc_library(
1059     srcs = glob([
1060         "lib/Transforms/Utils/*.cpp",
1061         "lib/Transforms/Utils/*.h",
1062-    ]),
1063-    hdrs = glob(["include/llvm/Transforms/Utils/*.h"]) + [
1064+    ], allow_empty = True),
1065+    hdrs = glob(["include/llvm/Transforms/Utils/*.h"], allow_empty = True) + [
1066         "include/llvm/Transforms/Utils.h",
1067         "include/llvm-c/Transforms/Utils.h",
1068     ],
1069@@ -1053,7 +1053,7 @@ gentbl(
1070     td_srcs = glob([
1071         "include/llvm/CodeGen/*.td",
1072         "include/llvm/IR/Intrinsics*.td",
1073-    ]) + [
1074+    ], allow_empty = True) + [
1075         "lib/Target/AMDGPU/InstCombineTables.td",
1076         "include/llvm/TableGen/SearchableTable.td",
1077     ],
1078@@ -1064,8 +1064,8 @@ cc_library(
1079     srcs = glob([
1080         "lib/Transforms/InstCombine/*.cpp",
1081         "lib/Transforms/InstCombine/*.h",
1082-    ]),
1083-    hdrs = glob(["include/llvm/Transforms/InstCombine/*.h"]) + [
1084+    ], allow_empty = True),
1085+    hdrs = glob(["include/llvm/Transforms/InstCombine/*.h"], allow_empty = True) + [
1086         "include/llvm-c/Transforms/InstCombine.h",
1087     ],
1088     copts = llvm_copts,
1089@@ -1085,7 +1085,7 @@ cc_library(
1090     srcs = glob([
1091         "lib/Transforms/AggressiveInstCombine/*.cpp",
1092         "lib/Transforms/AggressiveInstCombine/*.h",
1093-    ]),
1094+    ], allow_empty = True),
1095     hdrs = [
1096         "include/llvm-c/Transforms/AggressiveInstCombine.h",
1097         "include/llvm/Transforms/AggressiveInstCombine/AggressiveInstCombine.h",
1098@@ -1105,8 +1105,8 @@ cc_library(
1099         "lib/Transforms/Instrumentation/*.cpp",
1100         "lib/Transforms/Instrumentation/*.h",
1101         "lib/Transforms/Instrumentation/*.inc",
1102-    ]),
1103-    hdrs = glob(["include/llvm/Transforms/Instrumentation/*.h"]) + [
1104+    ], allow_empty = True),
1105+    hdrs = glob(["include/llvm/Transforms/Instrumentation/*.h"], allow_empty = True) + [
1106         "include/llvm/Transforms/Instrumentation.h",
1107     ],
1108     copts = llvm_copts,
1109@@ -1127,7 +1127,7 @@ cc_library(
1110     srcs = glob([
1111         "lib/Transforms/ObjCARC/*.cpp",
1112         "lib/Transforms/ObjCARC/*.h",
1113-    ]),
1114+    ], allow_empty = True),
1115     hdrs = ["include/llvm/Transforms/ObjCARC.h"],
1116     copts = llvm_copts,
1117     deps = [
1118@@ -1145,8 +1145,8 @@ cc_library(
1119     srcs = glob([
1120         "lib/Transforms/Scalar/*.cpp",
1121         "lib/Transforms/Scalar/*.h",
1122-    ]),
1123-    hdrs = glob(["include/llvm/Transforms/Scalar/*.h"]) + [
1124+    ], allow_empty = True),
1125+    hdrs = glob(["include/llvm/Transforms/Scalar/*.h"], allow_empty = True) + [
1126         "include/llvm-c/Transforms/Scalar.h",
1127         "include/llvm/Transforms/Scalar.h",
1128     ],
1129@@ -1169,10 +1169,10 @@ cc_library(
1130     srcs = glob([
1131         "lib/Transforms/Vectorize/*.cpp",
1132         "lib/Transforms/Vectorize/*.h",
1133-    ]),
1134+    ], allow_empty = True),
1135     hdrs = glob([
1136         "include/llvm/Transforms/Vectorize/*.h",
1137-    ]) + [
1138+    ], allow_empty = True) + [
1139         "include/llvm-c/Transforms/Vectorize.h",
1140         "include/llvm/Transforms/Vectorize.h",
1141     ],
1142@@ -1192,7 +1192,7 @@ filegroup(
1143     srcs = glob([
1144         "include/llvm/Frontend/OpenMP/*.td",
1145         "include/llvm/Frontend/Directive/*.td",
1146-    ]),
1147+    ], allow_empty = True),
1148 )
1149
1150 gentbl(
1151@@ -1221,19 +1221,19 @@ cc_library(
1152     name = "FrontendOpenMP",
1153     srcs = glob([
1154         "lib/Frontend/OpenMP/*.cpp",
1155-    ]),
1156+    ], allow_empty = True),
1157     hdrs = glob([
1158         "include/llvm/Frontend/OpenMP/*.h",
1159         "include/llvm/Frontend/OpenMP/OMP/*.h",
1160         "include/llvm/Frontend/*.h",
1161-    ]) + [
1162+    ], allow_empty = True) + [
1163         "include/llvm/Frontend/OpenMP/OMP.h.inc",
1164         "include/llvm/Frontend/OpenMP/OMP.inc",
1165     ],
1166     copts = llvm_copts,
1167     textual_hdrs = glob([
1168         "include/llvm/Frontend/OpenMP/*.def",
1169-    ]),
1170+    ], allow_empty = True),
1171     deps = [
1172         ":Analysis",
1173         ":Core",
1174@@ -1248,7 +1248,7 @@ filegroup(
1175     srcs = glob([
1176         "include/llvm/Frontend/OpenACC/*.td",
1177         "include/llvm/Frontend/Directive/*.td",
1178-    ]),
1179+    ], allow_empty = True),
1180 )
1181
1182 gentbl(
1183@@ -1277,12 +1277,12 @@ cc_library(
1184     name = "FrontendOpenACC",
1185     srcs = glob([
1186         "lib/Frontend/OpenACC/*.cpp",
1187-    ]) + [
1188+    ], allow_empty = True) + [
1189         "include/llvm/Frontend/OpenACC/ACC.inc",
1190     ],
1191     hdrs = glob([
1192         "include/llvm/Frontend/OpenACC/*.h",
1193-    ]) + ["include/llvm/Frontend/OpenACC/ACC.h.inc"],
1194+    ], allow_empty = True) + ["include/llvm/Frontend/OpenACC/ACC.h.inc"],
1195     copts = llvm_copts,
1196     deps = [
1197         ":Analysis",
1198@@ -1297,8 +1297,8 @@ cc_library(
1199     srcs = glob([
1200         "lib/AsmParser/*.cpp",
1201         "lib/AsmParser/*.h",
1202-    ]),
1203-    hdrs = glob(["include/llvm/AsmParser/*.h"]),
1204+    ], allow_empty = True),
1205+    hdrs = glob(["include/llvm/AsmParser/*.h"], allow_empty = True),
1206     copts = llvm_copts,
1207     deps = [
1208         ":BinaryFormat",
1209@@ -1312,10 +1312,10 @@ cc_library(
1210     srcs = glob([
1211         "lib/IRReader/*.cpp",
1212         "lib/IRReader/*.h",
1213-    ]),
1214+    ], allow_empty = True),
1215     hdrs = glob([
1216         "include/llvm/IRReader/*.h",
1217-    ]) + [
1218+    ], allow_empty = True) + [
1219         "include/llvm-c/IRReader.h",
1220     ],
1221     copts = llvm_copts,
1222@@ -1333,10 +1333,10 @@ cc_library(
1223     srcs = glob([
1224         "lib/Linker/*.cpp",
1225         "lib/Linker/*.h",
1226-    ]),
1227+    ], allow_empty = True),
1228     hdrs = glob([
1229         "include/llvm/Linker/*.h",
1230-    ]) + [
1231+    ], allow_empty = True) + [
1232         "include/llvm-c/Linker.h",
1233     ],
1234     copts = llvm_copts,
1235@@ -1353,10 +1353,10 @@ cc_library(
1236     srcs = glob([
1237         "lib/Transforms/IPO/*.cpp",
1238         "lib/Transforms/IPO/*.h",
1239-    ]),
1240+    ], allow_empty = True),
1241     hdrs = glob([
1242         "include/llvm/Transforms/IPO/*.h",
1243-    ]) + [
1244+    ], allow_empty = True) + [
1245         "include/llvm-c/Transforms/IPO.h",
1246         "include/llvm-c/Transforms/PassManagerBuilder.h",
1247         "include/llvm/Transforms/IPO.h",
1248@@ -1391,7 +1391,7 @@ cc_library(
1249     srcs = glob([
1250         "lib/Transforms/CFGuard/*.cpp",
1251         "lib/Transforms/CFGuard/*.h",
1252-    ]),
1253+    ], allow_empty = True),
1254     hdrs = ["include/llvm/Transforms/CFGuard.h"],
1255     copts = llvm_copts,
1256     deps = [
1257@@ -1405,7 +1405,7 @@ cc_library(
1258     srcs = glob([
1259         "lib/Transforms/Coroutines/*.cpp",
1260         "lib/Transforms/Coroutines/*.h",
1261-    ]),
1262+    ], allow_empty = True),
1263     hdrs = [
1264         "include/llvm-c/Transforms/Coroutines.h",
1265         "include/llvm/Transforms/Coroutines.h",
1266@@ -1445,7 +1445,7 @@ cc_library(
1267 cc_library(
1268     name = "asm_printer_defs",
1269     copts = llvm_copts,
1270-    textual_hdrs = glob(["lib/CodeGen/AsmPrinter/*.def"]),
1271+    textual_hdrs = glob(["lib/CodeGen/AsmPrinter/*.def"], allow_empty = True),
1272 )
1273
1274 cc_library(
1275@@ -1457,19 +1457,19 @@ cc_library(
1276             "lib/CodeGen/SelectionDAG/*.cpp",
1277             "lib/CodeGen/SelectionDAG/*.h",
1278         ],
1279-    ),
1280+    allow_empty = True),
1281     hdrs = [
1282         "include/llvm/LinkAllPasses.h",
1283     ] + glob(
1284         [
1285             "include/llvm/CodeGen/**/*.h",
1286         ],
1287-    ),
1288+    allow_empty = True),
1289     copts = llvm_copts,
1290     textual_hdrs = glob([
1291         "include/llvm/CodeGen/**/*.def",
1292         "include/llvm/CodeGen/**/*.inc",
1293-    ]),
1294+    ], allow_empty = True),
1295     deps = [
1296         ":Analysis",
1297         ":AsmParser",
1298@@ -1498,10 +1498,10 @@ cc_library(
1299     srcs = glob([
1300         "lib/MC/MCDisassembler/*.cpp",
1301         "lib/MC/MCDisassembler/*.h",
1302-    ]),
1303+    ], allow_empty = True),
1304     hdrs = glob([
1305         "include/llvm/MC/MCDisassembler/*.h",
1306-    ]) + [
1307+    ], allow_empty = True) + [
1308         "include/llvm-c/Disassembler.h",
1309     ],
1310     copts = llvm_copts,
1311@@ -1818,7 +1818,7 @@ filegroup(
1312         "include/llvm/TableGen/*.td",
1313         "include/llvm/Target/*.td",
1314         "include/llvm/Target/GlobalISel/*.td",
1315-    ]),
1316+    ], allow_empty = True),
1317 )
1318
1319 gentbl(
1320@@ -1836,7 +1836,7 @@ gentbl(
1321         ":common_target_td_sources",
1322     ] + glob([
1323         "lib/Target/AMDGPU/*.td",
1324-    ]),
1325+    ], allow_empty = True),
1326 )
1327
1328 gentbl(
1329@@ -1858,7 +1858,7 @@ gentbl(
1330         ":common_target_td_sources",
1331     ] + glob([
1332         "lib/Target/AMDGPU/*.td",
1333-    ]),
1334+    ], allow_empty = True),
1335 )
1336
1337 [[
1338@@ -1880,7 +1880,7 @@ gentbl(
1339         ] + glob([
1340             "lib/Target/" + target["name"] + "/*.td",
1341             "lib/Target/" + target["name"] + "/GISel/*.td",
1342-        ]),
1343+        ], allow_empty = True),
1344         deps = target.get("tbl_deps", []),
1345     )],
1346     [cc_library(
1347@@ -1914,7 +1914,7 @@ gentbl(
1348             # library. This mixture is likely incompatible with header modules.
1349             "lib/Target/" + target["name"] + "/MCTargetDesc/*.h",
1350             "lib/Target/" + target["name"] + "/Utils/*.h",
1351-        ]),
1352+        ], allow_empty = True),
1353         hdrs = glob([
1354             "lib/Target/" + target["name"] + "/MCTargetDesc/*.h",
1355             "lib/Target/" + target["name"] + "/Utils/*.h",
1356@@ -1938,7 +1938,7 @@ gentbl(
1357             # distinction between these two.
1358             "lib/Target/" + target["name"] + "/*.def",
1359             "lib/Target/" + target["name"] + "/*.inc",
1360-        ]),
1361+        ], allow_empty = True),
1362         copts = llvm_copts,
1363         features = [
1364             "-parse_headers",
1365@@ -1967,14 +1967,14 @@ gentbl(
1366             "lib/Target/" + target["name"] + "/GISel/*.h",
1367             "lib/Target/" + target["name"] + "/*.cpp",
1368             "lib/Target/" + target["name"] + "/*.h",
1369-        ]),
1370+        ], allow_empty = True),
1371         hdrs = ["lib/Target/" + target["name"] + "/" + target["short_name"] + ".h"],
1372         copts = llvm_copts,
1373         strip_include_prefix = "lib/Target/" + target["name"],
1374         textual_hdrs = glob([
1375             "lib/Target/" + target["name"] + "/*.def",
1376             "lib/Target/" + target["name"] + "/*.inc",
1377-        ]),
1378+        ], allow_empty = True),
1379         deps = [
1380             ":Analysis",
1381             ":BinaryFormat",
1382@@ -2001,7 +2001,7 @@ gentbl(
1383         srcs = glob([
1384             "lib/Target/" + target["name"] + "/AsmParser/*.cpp",
1385             "lib/Target/" + target["name"] + "/AsmParser/*.h",
1386-        ]),
1387+        ], allow_empty = True),
1388         copts = llvm_copts,
1389         deps = [
1390             ":BinaryFormat",
1391@@ -2031,7 +2031,7 @@ gentbl(
1392         # distinction between these two.
1393         hdrs = glob([
1394             "lib/Target/" + target["name"] + "/Disassembler/*.h",
1395-        ]),
1396+        ], allow_empty = True),
1397         features = [
1398             "-parse_headers",
1399             "-header_modules",
1400@@ -2044,7 +2044,7 @@ gentbl(
1401             "lib/Target/" + target["name"] + "/Disassembler/*.cpp",
1402             "lib/Target/" + target["name"] + "/Disassembler/*.c",
1403             "lib/Target/" + target["name"] + "/Disassembler/*.h",
1404-        ]),
1405+        ], allow_empty = True),
1406         copts = llvm_copts,
1407         deps = [
1408             ":CodeGen",
1409@@ -2065,7 +2065,7 @@ gentbl(
1410             "lib/Target/" + target["name"] + "/MCA/*.cpp",
1411             "lib/Target/" + target["name"] + "/MCA/*.c",
1412             "lib/Target/" + target["name"] + "/MCA/*.h",
1413-        ]),
1414+        ], allow_empty = True),
1415         copts = llvm_copts,
1416         deps = [
1417             ":MC",
1418@@ -2126,10 +2126,10 @@ cc_library(
1419     srcs = glob([
1420         "lib/Analysis/ML/*.cpp",
1421         "lib/Analysis/ML/*.h",
1422-    ]),
1423+    ], allow_empty = True),
1424     hdrs = glob([
1425         "include/llvm/Analysis/ML/*.h",
1426-    ]),
1427+    ], allow_empty = True),
1428     copts = llvm_copts,
1429     deps = [
1430         ":Analysis",
1431@@ -2143,8 +2143,8 @@ cc_library(
1432     srcs = glob([
1433         "lib/Passes/*.cpp",
1434         "lib/Passes/*.h",
1435-    ]),
1436-    hdrs = glob(["include/llvm/Passes/*.h"]) + ["include/llvm-c/Transforms/PassBuilder.h"],
1437+    ], allow_empty = True),
1438+    hdrs = glob(["include/llvm/Passes/*.h"], allow_empty = True) + ["include/llvm-c/Transforms/PassBuilder.h"],
1439     copts = llvm_copts,
1440     deps = [
1441         ":Analysis",
1442@@ -2166,11 +2166,11 @@ cc_library(
1443     srcs = glob([
1444         "lib/LTO/*.cpp",
1445         "lib/LTO/*.h",
1446-    ]),
1447+    ], allow_empty = True),
1448     hdrs = glob([
1449         "include/llvm/LTO/*.h",
1450         "include/llvm/LTO/legacy/*.h",
1451-    ]) + [
1452+    ], allow_empty = True) + [
1453         "include/llvm-c/lto.h",
1454     ],
1455     copts = llvm_copts,
1456@@ -2203,7 +2203,7 @@ cc_library(
1457         "lib/ExecutionEngine/RuntimeDyld/*.h",
1458         "lib/ExecutionEngine/RuntimeDyld/Targets/*.cpp",
1459         "lib/ExecutionEngine/RuntimeDyld/Targets/*.h",
1460-    ]),
1461+    ], allow_empty = True),
1462     hdrs = glob(
1463         [
1464             "include/llvm/ExecutionEngine/*.h",
1465@@ -2212,7 +2212,7 @@ cc_library(
1466             "include/llvm/ExecutionEngine/MCJIT*.h",
1467             "include/llvm/ExecutionEngine/OProfileWrapper.h",
1468         ],
1469-    ) + [
1470+    allow_empty = True) + [
1471         "include/llvm-c/ExecutionEngine.h",
1472     ],
1473     copts = llvm_copts,
1474@@ -2237,7 +2237,7 @@ cc_library(
1475     srcs = glob([
1476         "lib/ExecutionEngine/Interpreter/*.cpp",
1477         "lib/ExecutionEngine/Interpreter/*.h",
1478-    ]),
1479+    ], allow_empty = True),
1480     hdrs = ["include/llvm/ExecutionEngine/Interpreter.h"],
1481     copts = llvm_copts,
1482     deps = [
1483@@ -2255,10 +2255,10 @@ cc_library(
1484     srcs = glob([
1485         "lib/ExecutionEngine/JITLink/*.cpp",
1486         "lib/ExecutionEngine/JITLink/*.h",
1487-    ]),
1488+    ], allow_empty = True),
1489     hdrs = glob([
1490         "include/llvm/ExecutionEngine/JITLink/*.h",
1491-    ]),
1492+    ], allow_empty = True),
1493     copts = llvm_copts,
1494     deps = [
1495         ":ExecutionEngine",
1496@@ -2274,8 +2274,8 @@ cc_library(
1497     srcs = glob([
1498         "lib/ExecutionEngine/MCJIT/*.cpp",
1499         "lib/ExecutionEngine/MCJIT/*.h",
1500-    ]),
1501-    hdrs = glob(["include/llvm/ExecutionEngine/MCJIT*.h"]),
1502+    ], allow_empty = True),
1503+    hdrs = glob(["include/llvm/ExecutionEngine/MCJIT*.h"], allow_empty = True),
1504     copts = llvm_copts,
1505     deps = [
1506         ":CodeGen",
1507@@ -2294,11 +2294,11 @@ cc_library(
1508     srcs = glob([
1509         "lib/ExecutionEngine/Orc/*.cpp",
1510         "lib/ExecutionEngine/Orc/*.h",
1511-    ]),
1512+    ], allow_empty = True),
1513     hdrs = glob([
1514         "include/llvm/ExecutionEngine/Orc/*.h",
1515         "include/llvm/ExecutionEngine/Orc/RPC/*.h",
1516-    ]) + [
1517+    ], allow_empty = True) + [
1518         "include/llvm-c/LLJIT.h",
1519         "include/llvm-c/Orc.h",
1520         "include/llvm-c/OrcEE.h",
1521@@ -2325,10 +2325,10 @@ cc_library(
1522     name = "OrcShared",
1523     srcs = glob([
1524         "lib/ExecutionEngine/Orc/Shared/*.cpp",
1525-    ]),
1526+    ], allow_empty = True),
1527     hdrs = glob([
1528         "include/llvm/ExecutionEngine/Orc/Shared/*.h",
1529-    ]),
1530+    ], allow_empty = True),
1531     copts = llvm_copts,
1532     deps = [
1533         ":BinaryFormat",
1534@@ -2350,10 +2350,10 @@ cc_library(
1535     srcs = glob([
1536         "lib/ExecutionEngine/Orc/TargetProcess/*.cpp",
1537         "lib/ExecutionEngine/Orc/TargetProcess/*.h",
1538-    ]),
1539+    ], allow_empty = True),
1540     hdrs = glob([
1541         "include/llvm/ExecutionEngine/Orc/TargetProcess/*.h",
1542-    ]),
1543+    ], allow_empty = True),
1544     copts = llvm_copts,
1545     deps = [
1546         ":BinaryFormat",
1547@@ -2376,8 +2376,8 @@ cc_library(
1548     srcs = glob([
1549         "lib/DWARFLinker/*.cpp",
1550         "lib/DWARFLinker/*.h",
1551-    ]),
1552-    hdrs = glob(["include/llvm/DWARFLinker/*.h"]),
1553+    ], allow_empty = True),
1554+    hdrs = glob(["include/llvm/DWARFLinker/*.h"], allow_empty = True),
1555     copts = llvm_copts,
1556     deps = [
1557         ":CodeGen",
1558@@ -2442,10 +2442,10 @@ cc_library(
1559     srcs = glob([
1560         "lib/InterfaceStub/*.cpp",
1561         "lib/InterfaceStub/*.h",
1562-    ]),
1563+    ], allow_empty = True),
1564     hdrs = glob([
1565         "include/llvm/InterfaceStub/*.h",
1566-    ]),
1567+    ], allow_empty = True),
1568     copts = llvm_copts,
1569     deps = [
1570         ":Object",
1571@@ -2458,10 +2458,10 @@ cc_library(
1572     name = "WindowsManifest",
1573     srcs = glob([
1574         "lib/WindowsManifest/*.cpp",
1575-    ]),
1576+    ], allow_empty = True),
1577     hdrs = glob([
1578         "include/llvm/WindowsManifest/*.h",
1579-    ]),
1580+    ], allow_empty = True),
1581     copts = llvm_copts,
1582     linkopts = [
1583         # Libxml2 is required to process Windows manifests. Without this,
1584@@ -2499,10 +2499,10 @@ cc_library(
1585     srcs = glob([
1586         "lib/MCA/**/*.cpp",
1587         "lib/MCA/**/*.h",
1588-    ]),
1589+    ], allow_empty = True),
1590     hdrs = glob([
1591         "include/llvm/MCA/**/*.h",
1592-    ]),
1593+    ], allow_empty = True),
1594     copts = llvm_copts,
1595     deps = [
1596         ":MC",
1597@@ -2526,8 +2526,8 @@ cc_library(
1598     srcs = glob([
1599         "lib/XRay/*.cpp",
1600         "lib/XRay/*.h",
1601-    ]),
1602-    hdrs = glob(["include/llvm/XRay/*.h"]),
1603+    ], allow_empty = True),
1604+    hdrs = glob(["include/llvm/XRay/*.h"], allow_empty = True),
1605     copts = llvm_copts,
1606     deps = [
1607         ":Object",
1608@@ -2594,7 +2594,7 @@ cc_binary(
1609     srcs = glob([
1610         "tools/dsymutil/*.cpp",
1611         "tools/dsymutil/*.h",
1612-    ]),
1613+    ], allow_empty = True),
1614     copts = llvm_copts,
1615     stamp = 0,
1616     deps = [
1617@@ -2620,7 +2620,7 @@ cc_binary(
1618     srcs = glob([
1619         "tools/llc/*.cpp",
1620         "tools/llc/*.h",
1621-    ]),
1622+    ], allow_empty = True),
1623     copts = llvm_copts,
1624     stamp = 0,
1625     deps = [
1626@@ -2644,7 +2644,7 @@ cc_binary(
1627     srcs = glob([
1628         "tools/lli/*.cpp",
1629         "tools/lli/*.h",
1630-    ]),
1631+    ], allow_empty = True),
1632     copts = llvm_copts,
1633     # ll scripts rely on symbols from dependent
1634     # libraries being resolvable.
1635@@ -2689,7 +2689,7 @@ cc_binary(
1636     srcs = glob([
1637         "tools/llvm-ar/*.cpp",
1638         "tools/llvm-ar/*.h",
1639-    ]),
1640+    ], allow_empty = True),
1641     copts = llvm_copts,
1642     stamp = 0,
1643     deps = [
1644@@ -2725,7 +2725,7 @@ cc_binary(
1645     srcs = glob([
1646         "tools/llvm-as/*.cpp",
1647         "tools/llvm-as/*.h",
1648-    ]),
1649+    ], allow_empty = True),
1650     copts = llvm_copts,
1651     stamp = 0,
1652     deps = [
1653@@ -2742,7 +2742,7 @@ cc_binary(
1654     srcs = glob([
1655         "tools/llvm-bcanalyzer/*.cpp",
1656         "tools/llvm-bcanalyzer/*.h",
1657-    ]),
1658+    ], allow_empty = True),
1659     copts = llvm_copts,
1660     stamp = 0,
1661     deps = [
1662@@ -2755,7 +2755,7 @@ cc_binary(
1663     name = "llvm-cat",
1664     srcs = glob([
1665         "tools/llvm-cat/*.cpp",
1666-    ]),
1667+    ], allow_empty = True),
1668     copts = llvm_copts,
1669     stamp = 0,
1670     deps = [
1671@@ -2773,7 +2773,7 @@ cc_binary(
1672         "tools/llvm-cfi-verify/*.cpp",
1673         "tools/llvm-cfi-verify/lib/*.cpp",
1674         "tools/llvm-cfi-verify/lib/*.h",
1675-    ]),
1676+    ], allow_empty = True),
1677     copts = llvm_copts,
1678     stamp = 0,
1679     deps = [
1680@@ -2796,7 +2796,7 @@ cc_binary(
1681     srcs = glob([
1682         "tools/llvm-cov/*.cpp",
1683         "tools/llvm-cov/*.h",
1684-    ]),
1685+    ], allow_empty = True),
1686     copts = llvm_copts,
1687     stamp = 0,
1688     deps = [
1689@@ -2825,7 +2825,7 @@ cc_binary(
1690     srcs = glob([
1691         "tools/llvm-cvtres/*.cpp",
1692         "tools/llvm-cvtres/*.h",
1693-    ]),
1694+    ], allow_empty = True),
1695     copts = llvm_copts,
1696     stamp = 0,
1697     deps = [
1698@@ -2841,7 +2841,7 @@ cc_binary(
1699     srcs = glob([
1700         "tools/llvm-cxxdump/*.cpp",
1701         "tools/llvm-cxxdump/*.h",
1702-    ]),
1703+    ], allow_empty = True),
1704     copts = llvm_copts,
1705     stamp = 0,
1706     deps = [
1707@@ -2857,7 +2857,7 @@ cc_binary(
1708     srcs = glob([
1709         "tools/llvm-cxxmap/*.cpp",
1710         "tools/llvm-cxxmap/*.h",
1711-    ]),
1712+    ], allow_empty = True),
1713     copts = llvm_copts,
1714     stamp = 0,
1715     deps = [
1716@@ -2882,7 +2882,7 @@ cc_binary(
1717     srcs = glob([
1718         "tools/llvm-cxxfilt/*.cpp",
1719         "tools/llvm-cxxfilt/*.h",
1720-    ]),
1721+    ], allow_empty = True),
1722     copts = llvm_copts,
1723     stamp = 0,
1724     deps = [
1725@@ -2898,7 +2898,7 @@ cc_binary(
1726     srcs = glob([
1727         "tools/llvm-dis/*.cpp",
1728         "tools/llvm-dis/*.h",
1729-    ]),
1730+    ], allow_empty = True),
1731     copts = llvm_copts,
1732     stamp = 0,
1733     deps = [
1734@@ -2914,7 +2914,7 @@ cc_binary(
1735     srcs = glob([
1736         "tools/llvm-dwarfdump/*.cpp",
1737         "tools/llvm-dwarfdump/*.h",
1738-    ]),
1739+    ], allow_empty = True),
1740     copts = llvm_copts,
1741     stamp = 0,
1742     deps = [
1743@@ -2933,7 +2933,7 @@ cc_binary(
1744     srcs = glob([
1745         "tools/llvm-dwp/*.cpp",
1746         "tools/llvm-dwp/*.h",
1747-    ]),
1748+    ], allow_empty = True),
1749     copts = llvm_copts,
1750     stamp = 0,
1751     deps = [
1752@@ -2974,7 +2974,7 @@ cc_binary(
1753     srcs = glob([
1754         "tools/llvm-extract/*.cpp",
1755         "tools/llvm-extract/*.h",
1756-    ]),
1757+    ], allow_empty = True),
1758     copts = llvm_copts,
1759     stamp = 0,
1760     deps = [
1761@@ -2993,7 +2993,7 @@ cc_binary(
1762     srcs = glob([
1763         "tools/llvm-ifs/*.cpp",
1764         "tools/llvm-ifs/*.h",
1765-    ]),
1766+    ], allow_empty = True),
1767     copts = llvm_copts,
1768     stamp = 0,
1769     deps = [
1770@@ -3009,7 +3009,7 @@ cc_binary(
1771     srcs = glob([
1772         "tools/llvm-jitlink/*.cpp",
1773         "tools/llvm-jitlink/*.h",
1774-    ]),
1775+    ], allow_empty = True),
1776     copts = llvm_copts,
1777     # Make symbols from the standard library dynamically resolvable.
1778     linkopts = select({
1779@@ -3048,7 +3048,7 @@ cc_binary(
1780     srcs = glob([
1781         "tools/llvm-libtool-darwin/*.cpp",
1782         "tools/llvm-libtool-darwin/*.h",
1783-    ]),
1784+    ], allow_empty = True),
1785     copts = llvm_copts,
1786     stamp = 0,
1787     deps = [
1788@@ -3063,7 +3063,7 @@ cc_binary(
1789     srcs = glob([
1790         "tools/llvm-link/*.cpp",
1791         "tools/llvm-link/*.h",
1792-    ]),
1793+    ], allow_empty = True),
1794     copts = llvm_copts,
1795     stamp = 0,
1796     deps = [
1797@@ -3112,7 +3112,7 @@ cc_binary(
1798     srcs = glob([
1799         "tools/llvm-lto/*.cpp",
1800         "tools/llvm-lto/*.h",
1801-    ]),
1802+    ], allow_empty = True),
1803     copts = llvm_copts,
1804     stamp = 0,
1805     deps = [
1806@@ -3134,7 +3134,7 @@ cc_binary(
1807     srcs = glob([
1808         "tools/llvm-lto2/*.cpp",
1809         "tools/llvm-lto2/*.h",
1810-    ]),
1811+    ], allow_empty = True),
1812     copts = llvm_copts,
1813     stamp = 0,
1814     deps = [
1815@@ -3153,7 +3153,7 @@ cc_binary(
1816     srcs = glob([
1817         "tools/llvm-mc/*.cpp",
1818         "tools/llvm-mc/*.h",
1819-    ]),
1820+    ], allow_empty = True),
1821     copts = llvm_copts,
1822     stamp = 0,
1823     deps = [
1824@@ -3175,7 +3175,7 @@ cc_binary(
1825         "tools/llvm-mca/*.h",
1826         "tools/llvm-mca/Views/*.cpp",
1827         "tools/llvm-mca/Views/*.h",
1828-    ]),
1829+    ], allow_empty = True),
1830     copts = llvm_copts,
1831     stamp = 0,
1832     deps = [
1833@@ -3208,7 +3208,7 @@ cc_binary(
1834     srcs = glob([
1835         "tools/llvm-ml/*.cpp",
1836         "tools/llvm-ml/*.h",
1837-    ]),
1838+    ], allow_empty = True),
1839     copts = llvm_copts,
1840     stamp = 0,
1841     deps = [
1842@@ -3227,7 +3227,7 @@ cc_binary(
1843     name = "llvm-modextract",
1844     srcs = glob([
1845         "tools/llvm-modextract/*.cpp",
1846-    ]),
1847+    ], allow_empty = True),
1848     copts = llvm_copts,
1849     stamp = 0,
1850     deps = [
1851@@ -3255,7 +3255,7 @@ cc_binary(
1852     srcs = glob([
1853         "tools/llvm-mt/*.cpp",
1854         "tools/llvm-mt/*.h",
1855-    ]),
1856+    ], allow_empty = True),
1857     copts = llvm_copts,
1858     stamp = 0,
1859     tags = [
1860@@ -3287,7 +3287,7 @@ cc_binary(
1861     srcs = glob([
1862         "tools/llvm-nm/*.cpp",
1863         "tools/llvm-nm/*.h",
1864-    ]),
1865+    ], allow_empty = True),
1866     copts = llvm_copts,
1867     stamp = 0,
1868     deps = [
1869@@ -3369,7 +3369,7 @@ cc_binary(
1870     srcs = glob([
1871         "tools/llvm-stress/*.cpp",
1872         "tools/llvm-stress/*.h",
1873-    ]),
1874+    ], allow_empty = True),
1875     copts = llvm_copts,
1876     stamp = 0,
1877     deps = [
1878@@ -3425,7 +3425,7 @@ cc_binary(
1879     srcs = glob([
1880         "tools/llvm-objdump/*.cpp",
1881         "tools/llvm-objdump/*.h",
1882-    ]),
1883+    ], allow_empty = True),
1884     copts = llvm_copts,
1885     stamp = 0,
1886     deps = [
1887@@ -3482,7 +3482,7 @@ cc_binary(
1888     name = "llvm-opt-report",
1889     srcs = glob([
1890         "tools/llvm-opt-report/*.cpp",
1891-    ]),
1892+    ], allow_empty = True),
1893     copts = llvm_copts,
1894     stamp = 0,
1895     deps = [
1896@@ -3498,7 +3498,7 @@ cc_binary(
1897     srcs = glob([
1898         "tools/llvm-pdbutil/*.cpp",
1899         "tools/llvm-pdbutil/*.h",
1900-    ]),
1901+    ], allow_empty = True),
1902     copts = llvm_copts,
1903     stamp = 0,
1904     deps = [
1905@@ -3518,7 +3518,7 @@ cc_binary(
1906     srcs = glob([
1907         "tools/llvm-profdata/*.cpp",
1908         "tools/llvm-profdata/*.h",
1909-    ]),
1910+    ], allow_empty = True),
1911     copts = llvm_copts,
1912     stamp = 0,
1913     deps = [
1914@@ -3533,7 +3533,7 @@ cc_binary(
1915     srcs = glob([
1916         "tools/llvm-profgen/*.cpp",
1917         "tools/llvm-profgen/*.h",
1918-    ]),
1919+    ], allow_empty = True),
1920     copts = llvm_copts,
1921     stamp = 0,
1922     deps = [
1923@@ -3578,7 +3578,7 @@ cc_binary(
1924     srcs = glob([
1925         "tools/llvm-rc/*.cpp",
1926         "tools/llvm-rc/*.h",
1927-    ]),
1928+    ], allow_empty = True),
1929     copts = llvm_copts,
1930     stamp = 0,
1931     deps = [
1932@@ -3613,7 +3613,7 @@ cc_binary(
1933     srcs = glob([
1934         "tools/llvm-readobj/*.cpp",
1935         "tools/llvm-readobj/*.h",
1936-    ]),
1937+    ], allow_empty = True),
1938     copts = llvm_copts,
1939     stamp = 0,
1940     deps = [
1941@@ -3641,7 +3641,7 @@ cc_binary(
1942     srcs = glob([
1943         "tools/llvm-reduce/**/*.cpp",
1944         "tools/llvm-reduce/**/*.h",
1945-    ]),
1946+    ], allow_empty = True),
1947     copts = llvm_copts,
1948     includes = ["tools/llvm-reduce"],
1949     stamp = 0,
1950@@ -3658,7 +3658,7 @@ cc_binary(
1951     srcs = glob([
1952         "tools/llvm-rtdyld/*.cpp",
1953         "tools/llvm-rtdyld/*.h",
1954-    ]),
1955+    ], allow_empty = True),
1956     copts = llvm_copts,
1957     stamp = 0,
1958     deps = [
1959@@ -3691,7 +3691,7 @@ cc_binary(
1960     srcs = glob([
1961         "tools/llvm-size/*.cpp",
1962         "tools/llvm-size/*.h",
1963-    ]),
1964+    ], allow_empty = True),
1965     copts = llvm_copts,
1966     stamp = 0,
1967     deps = [
1968@@ -3707,7 +3707,7 @@ cc_binary(
1969     srcs = glob([
1970         "tools/llvm-split/*.cpp",
1971         "tools/llvm-split/*.h",
1972-    ]),
1973+    ], allow_empty = True),
1974     copts = llvm_copts,
1975     stamp = 0,
1976     deps = [
1977@@ -3736,7 +3736,7 @@ cc_binary(
1978     srcs = glob([
1979         "tools/llvm-strings/*.cpp",
1980         "tools/llvm-strings/*.h",
1981-    ]),
1982+    ], allow_empty = True),
1983     copts = llvm_copts,
1984     stamp = 0,
1985     deps = [
1986@@ -3764,7 +3764,7 @@ cc_binary(
1987     srcs = glob([
1988         "tools/llvm-symbolizer/*.cpp",
1989         "tools/llvm-symbolizer/*.h",
1990-    ]),
1991+    ], allow_empty = True),
1992     copts = llvm_copts,
1993     stamp = 0,
1994     deps = [
1995@@ -3789,7 +3789,7 @@ cc_binary(
1996     srcs = glob([
1997         "tools/llvm-undname/*.cpp",
1998         "tools/llvm-undname/*.h",
1999-    ]),
2000+    ], allow_empty = True),
2001     copts = llvm_copts,
2002     stamp = 0,
2003     deps = [
2004@@ -3804,7 +3804,7 @@ cc_binary(
2005         "tools/llvm-xray/*.cpp",
2006         "tools/llvm-xray/*.cc",
2007         "tools/llvm-xray/*.h",
2008-    ]),
2009+    ], allow_empty = True),
2010     copts = llvm_copts,
2011     stamp = 0,
2012     deps = [
2013@@ -3821,7 +3821,7 @@ cc_binary(
2014     srcs = glob([
2015         "tools/opt/*.cpp",
2016         "tools/opt/*.h",
2017-    ]),
2018+    ], allow_empty = True),
2019     copts = llvm_copts,
2020     linkopts = select({
2021         "@bazel_tools//src/conditions:windows": [],
2022@@ -3854,7 +3854,7 @@ cc_binary(
2023     srcs = glob([
2024         "tools/sancov/*.cpp",
2025         "tools/sancov/*.h",
2026-    ]),
2027+    ], allow_empty = True),
2028     copts = llvm_copts,
2029     stamp = 0,
2030     deps = [
2031@@ -3875,7 +3875,7 @@ cc_binary(
2032     srcs = glob([
2033         "tools/sanstats/*.cpp",
2034         "tools/sanstats/*.h",
2035-    ]),
2036+    ], allow_empty = True),
2037     copts = llvm_copts,
2038     stamp = 0,
2039     deps = [
2040@@ -3890,7 +3890,7 @@ cc_binary(
2041     srcs = glob([
2042         "tools/split-file/*.cpp",
2043         "tools/split-file/*.h",
2044-    ]),
2045+    ], allow_empty = True),
2046     copts = llvm_copts,
2047     stamp = 0,
2048     deps = [
2049@@ -3904,8 +3904,8 @@ cc_binary(
2050 cc_library(
2051     name = "FuzzMutate",
2052     testonly = True,
2053-    srcs = glob(["lib/FuzzMutate/*.cpp"]),
2054-    hdrs = glob(["include/llvm/FuzzMutate/*.h"]),
2055+    srcs = glob(["lib/FuzzMutate/*.cpp"], allow_empty = True),
2056+    hdrs = glob(["include/llvm/FuzzMutate/*.h"], allow_empty = True),
2057     copts = llvm_copts,
2058     includes = ["include"],
2059     deps = [
2060@@ -3921,8 +3921,8 @@ cc_library(
2061 cc_library(
2062     name = "Diff",
2063     testonly = True,
2064-    srcs = glob(["tools/llvm-diff/lib/*.cpp"]),
2065-    hdrs = glob(["tools/llvm-diff/lib/*.h"]),
2066+    srcs = glob(["tools/llvm-diff/lib/*.cpp"], allow_empty = True),
2067+    hdrs = glob(["tools/llvm-diff/lib/*.h"], allow_empty = True),
2068     deps = [
2069         ":Core",
2070         ":Support",
2071@@ -4023,7 +4023,7 @@ cc_library(
2072 py_binary(
2073     name = "lit",
2074     testonly = True,
2075-    srcs = ["utils/lit/lit.py"] + glob(["utils/lit/lit/**/*.py"]),
2076+    srcs = ["utils/lit/lit.py"] + glob(["utils/lit/lit/**/*.py"], allow_empty = True),
2077 )
2078
2079 cc_library(
2080@@ -4032,10 +4032,10 @@ cc_library(
2081     srcs = glob([
2082         "lib/Testing/Support/*.cpp",
2083         "lib/Testing/Support/*.h",
2084-    ]),
2085+    ], allow_empty = True),
2086     hdrs = glob([
2087         "include/llvm/Testing/Support/*.h",
2088-    ]),
2089+    ], allow_empty = True),
2090     copts = llvm_copts,
2091     deps = [
2092         ":Support",
2093@@ -4054,7 +4054,7 @@ cc_binary(
2094     srcs = glob([
2095         "utils/FileCheck/*.cpp",
2096         "utils/FileCheck/*.h",
2097-    ]),
2098+    ], allow_empty = True),
2099     copts = llvm_copts,
2100     stamp = 0,
2101     deps = [":FileCheckLib"],
2102@@ -4065,7 +4065,7 @@ cc_binary(
2103     srcs = glob([
2104         "tools/bugpoint/*.cpp",
2105         "tools/bugpoint/*.h",
2106-    ]),
2107+    ], allow_empty = True),
2108     copts = llvm_copts,
2109     stamp = 0,
2110     deps = [
2111@@ -4093,7 +4093,7 @@ cc_binary(
2112     srcs = glob([
2113         "utils/count/*.c",
2114         "utils/count/*.h",
2115-    ]),
2116+    ], allow_empty = True),
2117     stamp = 0,
2118 )
2119
2120@@ -4103,7 +4103,7 @@ cc_binary(
2121     srcs = glob([
2122         "tools/lli/ChildTarget/*.cpp",
2123         "tools/lli/ChildTarget/*.h",
2124-    ]),
2125+    ], allow_empty = True),
2126     copts = llvm_copts,
2127     # The tests load code into this binary that expect to see symbols
2128     # from libstdc++ such as __cxa_begin_catch and _ZTIi. The latter
2129@@ -4164,7 +4164,7 @@ cc_binary(
2130     srcs = glob([
2131         "tools/llvm-diff/*.cpp",
2132         "tools/llvm-diff/*.h",
2133-    ]),
2134+    ], allow_empty = True),
2135     copts = llvm_copts,
2136     stamp = 0,
2137     deps = [
2138@@ -4181,7 +4181,7 @@ cc_binary(
2139     srcs = glob([
2140         "tools/llvm-isel-fuzzer/*.cpp",
2141         "tools/llvm-isel-fuzzer/*.h",
2142-    ]),
2143+    ], allow_empty = True),
2144     copts = llvm_copts,
2145     stamp = 0,
2146     deps = [
2147@@ -4225,7 +4225,7 @@ cc_binary(
2148     srcs = glob([
2149         "utils/not/*.cpp",
2150         "utils/not/*.h",
2151-    ]),
2152+    ], allow_empty = True),
2153     copts = llvm_copts,
2154     stamp = 0,
2155     deps = [":Support"],
2156@@ -4287,7 +4287,7 @@ cc_binary(
2157     srcs = glob([
2158         "tools/llvm-tli-checker/*.cpp",
2159         "tools/llvm-tli-checker/*.h",
2160-    ]),
2161+    ], allow_empty = True),
2162     copts = llvm_copts,
2163     stamp = 0,
2164     deps = [
2165@@ -4314,7 +4314,7 @@ cc_binary(
2166     srcs = glob([
2167         "tools/obj2yaml/*.cpp",
2168         "tools/obj2yaml/*.h",
2169-    ]),
2170+    ], allow_empty = True),
2171     copts = llvm_copts,
2172     stamp = 0,
2173     deps = [
2174@@ -4332,7 +4332,7 @@ cc_binary(
2175     srcs = glob([
2176         "tools/verify-uselistorder/*.cpp",
2177         "tools/verify-uselistorder/*.h",
2178-    ]),
2179+    ], allow_empty = True),
2180     copts = llvm_copts,
2181     stamp = 0,
2182     deps = [
2183@@ -4351,7 +4351,7 @@ cc_binary(
2184     srcs = glob([
2185         "tools/yaml2obj/*.cpp",
2186         "tools/yaml2obj/*.h",
2187-    ]),
2188+    ], allow_empty = True),
2189     copts = llvm_copts,
2190     stamp = 0,
2191     deps = [
2192