diff options
author | Tavian Barnes <tavianator@tavianator.com> | 2024-07-27 19:10:16 -0400 |
---|---|---|
committer | Tavian Barnes <tavianator@tavianator.com> | 2024-07-27 19:11:39 -0400 |
commit | 085bb402c7b2c2f96624fb0523ff3f9686fe26d9 (patch) | |
tree | 6c9c4240342fdad2f3d8a131265952659f044e46 /build | |
parent | c43d54826fd92017b9d7d49a5f660d98c0393e02 (diff) | |
download | bfs-085bb402c7b2c2f96624fb0523ff3f9686fe26d9.tar.xz |
xspawn: Use _Fork() if available
This completes the workaround for bfs_spawn() hanging on FreeBSD with
ASan enabled.
Link: https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=280318
Diffstat (limited to 'build')
-rw-r--r-- | build/flags.mk | 1 | ||||
-rw-r--r-- | build/flags/bind-now.c | 8 | ||||
-rw-r--r-- | build/has/_Fork.c | 8 | ||||
-rw-r--r-- | build/header.mk | 1 |
4 files changed, 18 insertions, 0 deletions
diff --git a/build/flags.mk b/build/flags.mk index 5c28c3f..0a62f32 100644 --- a/build/flags.mk +++ b/build/flags.mk @@ -105,6 +105,7 @@ include build/exports.mk # Conditionally-supported flags AUTO_FLAGS := \ + gen/flags/bind-now.mk \ gen/flags/deps.mk \ gen/flags/missing-var-decls.mk diff --git a/build/flags/bind-now.c b/build/flags/bind-now.c new file mode 100644 index 0000000..08bb4f2 --- /dev/null +++ b/build/flags/bind-now.c @@ -0,0 +1,8 @@ +// Copyright © Tavian Barnes <tavianator@tavianator.com> +// SPDX-License-Identifier: 0BSD + +/// _LDFLAGS += -Wl,-z,now + +int main(void) { + return 0; +} diff --git a/build/has/_Fork.c b/build/has/_Fork.c new file mode 100644 index 0000000..4d7fbd3 --- /dev/null +++ b/build/has/_Fork.c @@ -0,0 +1,8 @@ +// Copyright © Tavian Barnes <tavianator@tavianator.com> +// SPDX-License-Identifier: 0BSD + +#include <unistd.h> + +int main(void) { + return _Fork(); +} diff --git a/build/header.mk b/build/header.mk index afd04d0..a4f392e 100644 --- a/build/header.mk +++ b/build/header.mk @@ -13,6 +13,7 @@ include build/exports.mk # All header fragments we generate HEADERS := \ gen/has/--st-birthtim.h \ + gen/has/_Fork.h \ gen/has/acl-get-entry.h \ gen/has/acl-get-file.h \ gen/has/acl-get-tag-type.h \ |