Browse Source

build: Don't regenerate node symlink

The node -> out/*/node symlink is getting recreated in parallel with
other targets in the makefile which require it (e.g. test-ci) and
this seems to be causing a race condition which is showing up on AIX

Fixes: https://github.com/nodejs/node/issues/9825
PR-URL: https://github.com/nodejs/node/pull/9827
Reviewed-By: Gibson Fahnestock <gibfahn@gmail.com>
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Reviewed-by: Michael Dawson <michael_dawson@ca.ibm.com>
v7.x
sxa555 8 years ago
committed by Anna Henningsen
parent
commit
9d04152e15
No known key found for this signature in database GPG Key ID: D8B9F5AEAE84E4CF
  1. 9
      Makefile

9
Makefile

@ -64,13 +64,18 @@ endif
# to check for changes. # to check for changes.
.PHONY: $(NODE_EXE) $(NODE_G_EXE) .PHONY: $(NODE_EXE) $(NODE_G_EXE)
# The -r/-L check stops it recreating the link if it is already in place,
# otherwise $(NODE_EXE) being a .PHONY target means it is always re-run.
# Without the check there is a race condition between the link being deleted
# and recreated which can break the addons build when running test-ci
# See comments on the build-addons target for some more info
$(NODE_EXE): config.gypi out/Makefile $(NODE_EXE): config.gypi out/Makefile
$(MAKE) -C out BUILDTYPE=Release V=$(V) $(MAKE) -C out BUILDTYPE=Release V=$(V)
ln -fs out/Release/$(NODE_EXE) $@ if [ ! -r $(NODE_EXE) -o ! -L $(NODE_EXE) ]; then ln -fs out/Release/$(NODE_EXE) $@; fi
$(NODE_G_EXE): config.gypi out/Makefile $(NODE_G_EXE): config.gypi out/Makefile
$(MAKE) -C out BUILDTYPE=Debug V=$(V) $(MAKE) -C out BUILDTYPE=Debug V=$(V)
ln -fs out/Debug/$(NODE_EXE) $@ if [ ! -r $(NODE_EXE) -o ! -L $(node_EXE) ]; then ln -fs out/Debug/$(NODE_EXE) $@; fi
out/Makefile: common.gypi deps/uv/uv.gyp deps/http_parser/http_parser.gyp \ out/Makefile: common.gypi deps/uv/uv.gyp deps/http_parser/http_parser.gyp \
deps/zlib/zlib.gyp deps/v8/gypfiles/toolchain.gypi \ deps/zlib/zlib.gyp deps/v8/gypfiles/toolchain.gypi \

Loading…
Cancel
Save