zig/lib
Andrew Kelley 3f9588ca29 std: do not call malloc() between fork() and execv()
We were violating the POSIX standard which resulted in a deadlock on
musl v1.1.24 on aarch64 alpine linux, uncovered with the new ThreadPool
usage in the stage2 compiler.

std.os execv functions that accept an Allocator parameter are removed
because they are footguns. The POSIX standard does not allow calls to
malloc() between fork() and execv() and since it is common to both
(1) call execv() after fork() and (2) use std.heap.c_allocator,
Programmers are encouraged to go through the `std.process` API
instead, causing some dissonance when combined with `std.os` APIs.

I also slapped a big warning message on all the relevant doc comments.
2020-12-26 13:50:26 -07:00
..
include update to latest clang C headers 2020-12-04 15:39:16 -07:00
libc macho: deduplicate libc headers between macos arch 2020-12-17 10:04:53 +01:00
libcxx update install files for LLVM 11rc1 2020-08-04 17:52:26 -07:00
libcxxabi update install files for LLVM 11rc1 2020-08-04 17:52:26 -07:00
libunwind libunwind: fix compile errors and warnings for 32-bit arm 2020-12-24 13:31:41 -07:00
std std: do not call malloc() between fork() and execv() 2020-12-26 13:50:26 -07:00
tsan stage2: fix Cache deadlock and build more of TSAN 2020-12-24 01:18:48 -07:00