aboutsummaryrefslogtreecommitdiff
path: root/src/Compilation.zig
diff options
context:
space:
mode:
authorAlexander Slesarev <alex.slesarev@gmail.com>2021-10-31 22:36:30 -0600
committerAndrew Kelley <andrew@ziglang.org>2022-05-10 16:40:48 -0700
commit3997828a6176203b25b541c6e450f5e4bda82ce4 (patch)
treedfa5c6bc07cb5be758d997c9c1c893c5f942cc73 /src/Compilation.zig
parent67c4b16d6e27f1d81e2e2f837bd53d958b9baa33 (diff)
downloadzig-3997828a6176203b25b541c6e450f5e4bda82ce4.tar.gz
zig-3997828a6176203b25b541c6e450f5e4bda82ce4.zip
Added _LIBCPP_HAS_NO_THREADS for single_threaded binaries linked with libcxx.
Fixed single-threaded mode for Windows.
Diffstat (limited to 'src/Compilation.zig')
-rw-r--r--src/Compilation.zig13
1 files changed, 13 insertions, 0 deletions
diff --git a/src/Compilation.zig b/src/Compilation.zig
index 9126289804..3eb527b612 100644
--- a/src/Compilation.zig
+++ b/src/Compilation.zig
@@ -1180,6 +1180,15 @@ pub fn create(gpa: Allocator, options: InitOptions) !*Compilation {
if (must_single_thread and !single_threaded) {
return error.TargetRequiresSingleThreaded;
}
+ if (!single_threaded and options.link_libcpp) {
+ if (options.target.cpu.arch.isARM()) {
+ log.warn(
+ \\libc++ does not work on multi-threaded ARM yet.
+ \\For more details: https://github.com/ziglang/zig/issues/6573
+ , .{});
+ return error.TargetRequiresSingleThreaded;
+ }
+ }
const llvm_cpu_features: ?[*:0]const u8 = if (build_options.have_llvm and use_llvm) blk: {
var buf = std.ArrayList(u8).init(arena);
@@ -3803,6 +3812,10 @@ pub fn addCCArgs(
try argv.append("-D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS");
try argv.append("-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS");
try argv.append("-D_LIBCPP_HAS_NO_VENDOR_AVAILABILITY_ANNOTATIONS");
+
+ if (comp.bin_file.options.single_threaded) {
+ try argv.append("-D_LIBCPP_HAS_NO_THREADS");
+ } else {}
}
if (comp.bin_file.options.link_libunwind) {