Skip to content

Commit 1a9d3ae

Browse files
committed
🥴 Add some YOLO patches to make modules work better
1 parent 5e9c3e1 commit 1a9d3ae

File tree

3 files changed

+22
-1
lines changed

3 files changed

+22
-1
lines changed

ll/args.bzl

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -307,12 +307,18 @@ def compile_object_args(
307307
# Always use experimental libcxx features.
308308
args.add("-D_LIBCPP_ENABLE_EXPERIMENTAL")
309309

310+
# TODO: Module precompilations embed absolute paths in precompiled binaries.
311+
# We use this workaround to prevent abi_tag attribute redeclaration errors
312+
# in libcxx/include/__bit_reference. We need to figure out how we can
313+
# re-enable abi-tagging.
314+
args.add("-D_LIBCPP_NO_ABI_TAG")
315+
310316
# Additional compile flags.
311317
args.add_all(ctx.attr.compile_flags)
312318

313319
# To keep precompilations sandboxed, embed used headers in the pcm.
314320
# TODO: This does not work yet. For some reason we are still required to
315-
# disable sandboxint in precompilations.
321+
# disable sandboxing in precompilations.
316322
if out_file.extension == "pcm":
317323
args.add("-Xclang")
318324
args.add("-fmodules-embed-all-files")

ll/extensions.bzl

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -92,6 +92,7 @@ def _llvm_configure_extension_impl(ctx):
9292
),
9393
],
9494
patches = [
95+
"@rules_ll//patches:back_inserter_patch.diff",
9596
"@rules_ll//patches:disable_synth_three_way_patch.diff",
9697
"@rules_ll//patches:compiler-rt_float128_patch.diff",
9798
"@rules_ll//patches:mallinfo2_patch.diff",

patches/back_inserter_patch.diff

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
diff --git a/libcxx/include/__iterator/back_insert_iterator.h b/libcxx/include/__iterator/back_insert_iterator.h
2+
index da58b860e3..9aec7aa7cf 100644
3+
--- a/libcxx/include/__iterator/back_insert_iterator.h
4+
+++ b/libcxx/include/__iterator/back_insert_iterator.h
5+
@@ -67,6 +67,9 @@ back_inserter(_Container& __x)
6+
return back_insert_iterator<_Container>(__x);
7+
}
8+
9+
+template <class _Container> _LIBCPP_HIDE_FROM_ABI
10+
+back_insert_iterator(_Container& __x) -> back_insert_iterator<_Container>;
11+
+
12+
_LIBCPP_END_NAMESPACE_STD
13+
14+
#endif // _LIBCPP___ITERATOR_BACK_INSERT_ITERATOR_H

0 commit comments

Comments
 (0)