remove flock workaround
- Task #9431 (#9439) is in progress. - The issue sometimes happened on Linux. Therefore, remove the flock workaround.
This commit is contained in:
parent
e479882224
commit
b1a2efb85f
@ -66,10 +66,7 @@ Read [#Known Issues](#known-issues) before using.
|
||||
**Task:** [ziglang/zig #9431 FileNotFound when compiling macos](https://github.com/ziglang/zig/issues/9431)
|
||||
|
||||
Background: there is a race when calling `zig c++`, which Bazel does a lot.
|
||||
This may fail compilation. Yours truly only reproduced it on macos with a cold
|
||||
cache. Based on that, a workaround in the toolchain exists, named
|
||||
`speed_first_safety_later`. The possible values are `auto` (default), `yes`,
|
||||
`no`.
|
||||
This may fail compilation.
|
||||
|
||||
## relocation error with glibc < 2.32
|
||||
|
||||
|
@ -138,15 +138,11 @@ def _target_linux_musl(gocpu, zigcpu):
|
||||
tool_paths = {"ld": "ld.lld"},
|
||||
)
|
||||
|
||||
def register_toolchains(
|
||||
register = [],
|
||||
speed_first_safety_later = "auto"):
|
||||
def register_toolchains(register = []):
|
||||
"""
|
||||
Download zig toolchain and register some.
|
||||
@param register registers the given toolchains to the system using
|
||||
native.register_toolchains(). See README for possible choices.
|
||||
@param speed_first_safety_later is a workaround for
|
||||
https://github.com/ziglang/zig/issues/9431
|
||||
"""
|
||||
|
||||
zig_repository(
|
||||
@ -170,7 +166,6 @@ def register_toolchains(
|
||||
"macos-aarch64": "lib/zig/",
|
||||
"macos-x86_64": "lib/zig/",
|
||||
},
|
||||
speed_first_safety_later = speed_first_safety_later,
|
||||
)
|
||||
|
||||
toolchains = ["@zig_sdk//:%s_toolchain" % t for t in register]
|
||||
@ -191,23 +186,7 @@ fi
|
||||
export ZIG_LOCAL_CACHE_DIR="$_cache_prefix/bazel-zig-cc"
|
||||
export ZIG_GLOBAL_CACHE_DIR=$ZIG_LOCAL_CACHE_DIR
|
||||
|
||||
# https://github.com/ziglang/zig/issues/9431
|
||||
_flock=
|
||||
if [[ -n "{do_flock}" ]]; then
|
||||
_flock=$(command -v flock || :)
|
||||
if [[ -z "$_flock" && -x /usr/local/bin/flock ]]; then
|
||||
_flock=/usr/local/bin/flock
|
||||
else
|
||||
>&2 echo "WARNING: flock not found, proceeding unsafely."
|
||||
>&2 echo "If build fails, retry it."
|
||||
fi
|
||||
fi
|
||||
|
||||
if [[ -n "$_flock" ]]; then
|
||||
exec "$_flock" "{zig}" "{zig}" "{zig_tool}" "$@"
|
||||
else
|
||||
exec "{zig}" "{zig_tool}" "$@"
|
||||
fi
|
||||
"""
|
||||
|
||||
_ZIG_TOOLS = [
|
||||
@ -245,20 +224,12 @@ def _zig_repository_impl(repository_ctx):
|
||||
sha256 = zig_sha256,
|
||||
)
|
||||
|
||||
if repository_ctx.attr.speed_first_safety_later == "auto":
|
||||
do_flock = repository_ctx.os.name.lower().startswith("mac os")
|
||||
elif repository_ctx.attr.speed_first_safety_later == "yes":
|
||||
do_flock = False
|
||||
else:
|
||||
do_flock = True
|
||||
|
||||
for zig_tool in _ZIG_TOOLS:
|
||||
repository_ctx.file(
|
||||
ZIG_TOOL_PATH.format(zig_tool = zig_tool),
|
||||
ZIG_TOOL_WRAPPER.format(
|
||||
zig = str(repository_ctx.path("zig")),
|
||||
zig_tool = zig_tool,
|
||||
do_flock = "1" if do_flock else "",
|
||||
),
|
||||
)
|
||||
|
||||
@ -287,14 +258,6 @@ zig_repository = repository_rule(
|
||||
"host_platform_sha256": attr.string_dict(),
|
||||
"url_format": attr.string(),
|
||||
"host_platform_include_root": attr.string_dict(),
|
||||
"speed_first_safety_later": attr.string(
|
||||
values = ["yes", "no", "auto"],
|
||||
default = "auto",
|
||||
doc = "Workaround for github.com/ziglang/zig/issues/9431; " +
|
||||
"dramatically decreases compilation time on multi-core " +
|
||||
"hosts, but may fail compilation. Then re-run it. So far, " +
|
||||
"the author has reproduced this only on OSX.",
|
||||
),
|
||||
},
|
||||
implementation = _zig_repository_impl,
|
||||
)
|
||||
|
Loading…
Reference in New Issue
Block a user