diff options
author | André Draszik <git@andred.net> | 2019-11-10 22:05:10 +0000 |
---|---|---|
committer | Khem Raj <raj.khem@gmail.com> | 2019-11-13 07:17:03 -0800 |
commit | 57345467282da25593db2b340a1dc5551354bc88 (patch) | |
tree | e164762c9f44eadf3fe14cb47b81b637f05e0f96 | |
parent | c174217540abebac63498cf2f8ae429662c15fec (diff) | |
download | meta-openembedded-contrib-57345467282da25593db2b340a1dc5551354bc88.tar.gz |
nodejs: support long directory names for ${B} / ${S}
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 <git@andred.net>
Signed-off-by: Khem Raj <raj.khem@gmail.com>
-rw-r--r-- | meta-oe/recipes-devtools/nodejs/nodejs_10.17.0.bb | 2 |
1 files changed, 2 insertions, 0 deletions
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() { |