From 57345467282da25593db2b340a1dc5551354bc88 Mon Sep 17 00:00:00 2001 From: André Draszik Date: Sun, 10 Nov 2019 22:05:10 +0000 Subject: nodejs: support long directory names for ${B} / ${S} MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Part of the NodeJS build builds V8, which at some stage tries to call ar with all objects with *absolute* paths (and printf the command line first). This will fail if the build path is too long: make[1]: execvp: printf: Argument list too long when trying to create Release/obj.target/deps/v8/gypfiles/libv8_base.a via below gyp-generated out/Makefile rule: cmd_alink_thin = rm -f $@ && $(AR.$(TOOLSET)) crsT $@ $(filter %.o,$^) i.e. something like printf rm -f Release/obj.target/deps/v8/gypfiles/libv8_base.a && arm-poky-linux-musleabi-gcc-ar crsT Release/obj.target/deps/v8/gypfiles/libv8_base.a ... The above failure happened on a build-directory S with 204 characters on a Jenkins machine. While one could probably increase the ulimit on that specific machine, that would be a pretty specific build machine fix which would need to be applied everywhere, or switch to non-verbose builds / compilation, but fortunately we can change all object references to be relative to the build directory itself by setting the builddir_name make variable and thus avoid the other two possible work-arounds. Signed-off-by: André Draszik Signed-off-by: Khem Raj --- meta-oe/recipes-devtools/nodejs/nodejs_10.17.0.bb | 2 ++ 1 file changed, 2 insertions(+) diff --git a/meta-oe/recipes-devtools/nodejs/nodejs_10.17.0.bb b/meta-oe/recipes-devtools/nodejs/nodejs_10.17.0.bb index 44c016a904..8c690ae7dc 100644 --- a/meta-oe/recipes-devtools/nodejs/nodejs_10.17.0.bb +++ b/meta-oe/recipes-devtools/nodejs/nodejs_10.17.0.bb @@ -69,6 +69,8 @@ EXTRA_OEMAKE = "\ CXXFLAGS.host='${CPPFLAGS} ${CXXFLAGS}' \ LDFLAGS.host='${LDFLAGS}' \ AR.host='${AR}' \ + \ + builddir_name=./ \ " python do_unpack() { -- cgit 1.2.3-korg