Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Compile v6.8.1 on armv7 #55

Open
joaopaulob opened this issue Oct 18, 2016 · 7 comments
Open

Compile v6.8.1 on armv7 #55

joaopaulob opened this issue Oct 18, 2016 · 7 comments

Comments

@joaopaulob
Copy link

Hi,

I'm trying to compile the version v6.8.1 but I'm getting the following warning:

NOTE: preferred version 6.8.1 of nodejs not available (for item nodejs)
NOTE: versions of nodejs available: 0.12.7
NOTE: Resolving any missing task queue dependencies
NOTE: preferred version 6.8.1 of nodejs not available (for item nodejs-dev)
NOTE: versions of nodejs available: 0.12.7
NOTE: preferred version 6.8.1 of nodejs not available (for item nodejs)
NOTE: versions of nodejs available: 0.12.7

My local.conf:

PREFERRED_VERSION_nodejs = "6.8.1"

Build configuration:

BB_VERSION = "1.28.0" BUILD_SYS = "x86_64-linux" NATIVELSBSTRING = "Ubuntu-14.04" TARGET_SYS = "arm-poky-linux-gnueabi" MACHINE = "colibri-imx7" DISTRO = "poky" DISTRO_VERSION = "2.0.2" TUNE_FEATURES = "arm armv7a vfp thumb neon callconvention-hard cortexa7" TARGET_FPU = "vfp-neon" meta meta-yocto = "jethro:37eb21b2b1d5977a028a448e52551607fae99bf7" meta-oe meta-python meta-networking meta-gnome meta-ruby = "jethro:8ab04afbffb4bc5184cfe0655049de6f44269990" meta-yocto-bsp = "jethro:37eb21b2b1d5977a028a448e52551607fae99bf7" meta-toradex = "V2.6:485643678b2d39d37b1cc9d1aa2200bb934b08de" meta-fsl-arm = "jethro:417f669e4dede244a81e11aa6d8b60c4e333e589" meta-fsl-arm-extra = "master:fddc5aef6712b9ea87095772ad51a8d41be9ad67"

Am i missing anything? I'm using the latest master.

Best regards

@gizero
Copy link

gizero commented Oct 18, 2016

Maybe meta-nodejs is completely missing from your bblayers.conf? I don't see in your config...

@imyller
Copy link
Owner

imyller commented Oct 18, 2016

I agree with @gizero

Looks like meta-nodejs is not included.

@joaopaulob
Copy link
Author

joaopaulob commented Oct 18, 2016

Hi,

My bblayers.conf:

`LCONF_VERSION = "6"

BBPATH = "${TOPDIR}"
BBFILES ?= ""

BBLAYERS ?= "
${TOPDIR}/../meta
${TOPDIR}/../meta-yocto
${TOPDIR}/../meta-openembedded/meta-oe
${TOPDIR}/../meta-openembedded/meta-python
${TOPDIR}/../meta-openembedded/meta-networking
${TOPDIR}/../meta-openembedded/meta-gnome
${TOPDIR}/../meta-openembedded/meta-ruby
${TOPDIR}/../meta-yocto-bsp
${TOPDIR}/../meta-toradex \
${TOPDIR}/../meta-fsl-arm \
${TOPDIR}/../meta-fsl-arm-extra
${TOPDIR}/../meta-browser
${TOPDIR}/../meta-mytapp-chromium
"
BBLAYERS_NON_REMOVABLE ?= "
${TOPDIR}/../meta
${TOPDIR}/../meta-yocto
"
EXTRALAYERS +="
${TOPDIR}/../meta-nodejs
${TOPDIR}/../meta-nodejs-contrib
"`

$ bitbake -s | grep nodejs
NOTE: preferred version 6.8.1 of nodejs not available
NOTE: versions of nodejs available: 0.12.7
nodejs :0.12.7-r0
nodejs-native :0.12.7-r0
nodejs4-native :0.4.12-r0

`

$ cd meta-nodejs; git branch -av
master c84b420 2016-10-14, Version 6.8.1 (Current)
remotes/origin/HEAD -> origin/master
remotes/origin/jethro aa4dfb9 2016-10-14, Version 6.8.1 (Current)
remotes/origin/krogoth c84b420 2016-10-14, Version 6.8.1 (Current)
remotes/origin/master c84b420 2016-10-14, Version 6.8.1 (Current)

`

The version 0.12.7 is compiled.

Regards

@joaopaulob
Copy link
Author

joaopaulob commented Oct 18, 2016

Found the issue. The layer should not be on EXTRALAYERS section.

Now I am getting the following compiling error:

| arm-poky-linux-gnueabi-gcc -march=armv7-a -marm -mthumb-interwork -mfloat-abi=hard -mfpu=neon -mtune=cortex-a7 --sysroot=/home/joao/projetos/toradex/poky_imx7/poky-toradex/build/tmp/sysroots/colibri-imx7 '-D_REENTRANT' '-DPURIFY' '-DOPENSSL_NO_COMP' '-DOPENSSL_NO_SSL3' '-DOPENSSL_NO_HEARTBEATS' '-DOPENSSL_NO_HW' '-DENGINESDIR="/dev/null"' '-DTERMIOS' '-DOPENSSLDIR="/etc/ssl"' '-DL_ENDIAN' '-DAES_ASM' '-DCPUID_ASM' '-DOPENSSL_BN_ASM_MONT' '-DOPENSSL_CPUID_OBJ' '-DSHA1_ASM' '-DSHA256_ASM' '-DSHA512_ASM' '-DGHASH_ASM' '-DDSO_DLFCN' '-DHAVE_DLFCN_H' -I../deps/openssl -I../deps/openssl/openssl -I../deps/openssl/openssl/crypto -I../deps/openssl/openssl/crypto/asn1 -I../deps/openssl/openssl/crypto/evp -I../deps/openssl/openssl/crypto/md2 -I../deps/openssl/openssl/crypto/modes -I../deps/openssl/openssl/crypto/store -I../deps/openssl/openssl/include -Wno-missing-field-initializers -pthread -Wall -Wextra -Wno-unused-parameter -O3 -fno-omit-frame-pointer -MMD -MF /home/joao/projetos/toradex/poky_imx7/poky-toradex/build/tmp/work/cortexa7hf-vfp-neon-poky-linux-gnueabi/nodejs/6.8.1-r1.7/node-v6.8.1/out/Release/.deps//home/joao/projetos/toradex/poky_imx7/poky-toradex/build/tmp/work/cortexa7hf-vfp-neon-poky-linux-gnueabi/nodejs/6.8.1-r1.7/node-v6.8.1/out/Release/obj.target/openssl/deps/openssl/openssl/crypto/armcap.o.d.raw -O2 -pipe -g -feliminate-unused-debug-types -c -o /home/joao/projetos/toradex/poky_imx7/poky-toradex/build/tmp/work/cortexa7hf-vfp-neon-poky-linux-gnueabi/nodejs/6.8.1-r1.7/node-v6.8.1/out/Release/obj.target/openssl/deps/openssl/openssl/crypto/armcap.o ../deps/openssl/openssl/crypto/armcap.c
| arm-poky-linux-gnueabi-gcc -march=armv7-a -marm -mthumb-interwork -mfloat-abi=hard -mfpu=neon -mtune=cortex-a7 --sysroot=/home/joao/projetos/toradex/poky_imx7/poky-toradex/build/tmp/sysroots/colibri-imx7 '-D_REENTRANT' '-DPURIFY' '-DOPENSSL_NO_COMP' '-DOPENSSL_NO_SSL3' '-DOPENSSL_NO_HEARTBEATS' '-DOPENSSL_NO_HW' '-DENGINESDIR="/dev/null"' '-DTERMIOS' '-DOPENSSLDIR="/etc/ssl"' '-DL_ENDIAN' '-DAES_ASM' '-DCPUID_ASM' '-DOPENSSL_BN_ASM_MONT' '-DOPENSSL_CPUID_OBJ' '-DSHA1_ASM' '-DSHA256_ASM' '-DSHA512_ASM' '-DGHASH_ASM' '-DDSO_DLFCN' '-DHAVE_DLFCN_H' -I../deps/openssl -I../deps/openssl/openssl -I../deps/openssl/openssl/crypto -I../deps/openssl/openssl/crypto/asn1 -I../deps/openssl/openssl/crypto/evp -I../deps/openssl/openssl/crypto/md2 -I../deps/openssl/openssl/crypto/modes -I../deps/openssl/openssl/crypto/store -I../deps/openssl/openssl/include -Wno-missing-field-initializers -pthread -Wall -Wextra -Wno-unused-parameter -O3 -fno-omit-frame-pointer -MMD -MF /home/joao/projetos/toradex/poky_imx7/poky-toradex/build/tmp/work/cortexa7hf-vfp-neon-poky-linux-gnueabi/nodejs/6.8.1-r1.7/node-v6.8.1/out/Release/.deps//home/joao/projetos/toradex/poky_imx7/poky-toradex/build/tmp/work/cortexa7hf-vfp-neon-poky-linux-gnueabi/nodejs/6.8.1-r1.7/node-v6.8.1/out/Release/obj.target/openssl/deps/openssl/openssl/crypto/armv4cpuid.o.d.raw -O2 -pipe -g -feliminate-unused-debug-types -c -o /home/joao/projetos/toradex/poky_imx7/poky-toradex/build/tmp/work/cortexa7hf-vfp-neon-poky-linux-gnueabi/nodejs/6.8.1-r1.7/node-v6.8.1/out/Release/obj.target/openssl/deps/openssl/openssl/crypto/armv4cpuid.o ../deps/openssl/openssl/crypto/armv4cpuid.S

| make[1]: execvp: printf: Argument list too long

| make[1]: *** [/home/joao/projetos/toradex/poky_imx7/poky-toradex/build/tmp/work/cortexa7hf-vfp-neon-poky-linux-gnueabi/nodejs/6.8.1-r1.7/node-v6.8.1/out/Release/obj.target/deps/openssl/libopenssl.a] Error 127
| make[1]: Leaving directory `/home/joao/projetos/toradex/poky_imx7/poky-toradex/build/tmp/work/cortexa7hf-vfp-neon-poky-linux-gnueabi/nodejs/6.8.1-r1.7/node-v6.8.1/out'

| make: *** [node] Error 2
| ERROR: oe_runmake failed
| ERROR: Function failed: do_compile (log file is located at /home/joao/projetos/toradex/poky_imx7/poky-toradex/build/tmp/work/cortexa7hf-vfp-neon-poky-linux-gnueabi/nodejs/6.8.1-r1.7/temp/log.do_compile.3691)
ERROR: Task 290 (/home/joao/projetos/toradex/poky_imx7/poky-toradex/build/../meta-nodejs/recipes-devtools/nodejs/nodejs_6.8.1.bb, do_compile) failed with exit code '1

Best regards

@gizero
Copy link

gizero commented Oct 20, 2016

Take a look at #9... seems related. I also experienced a similar issue when building from unusual build paths and suspected this was related to the length of the paths

@imyller
Copy link
Owner

imyller commented Oct 29, 2016

@joaopaulob

If bundled openssl compilation fails you can build Node.js with use shared openssl.

This can be enabled with PACKAGECONFIG:

http://www.yoctoproject.org/docs/2.1/ref-manual/ref-manual.html#var-PACKAGECONFIG

For example, in your local.conf

PACKAGECONFIG_append_pn-nodejs = " openssl"

or in nodejs_%.bbappend:

PACKAGECONFIG_append = " openssl"

@lewicki-pk
Copy link

using PACKAGECONFIG_append = " openssl" helps you because it shortens the command used to link openssl, but it does not touch the core of the issue.

I give you my example. I keep my yocto related stuff in one directory, where I have 2 other dirs: build and layers. This should be self-explainatory.

If my main path is:

  • /home/myusername12/yocto-builds/2016-11-02 - the build fails with execvp: printf: Argument list too long error, but if i change it to:
  • /home/myusername12/2016-11-02 - the build succeeds (username changed, but directory name length preserved).

In my opinion this issue should be forwarded to the developers responsible for creating nodejs.

There has already been a patch for this issue in nodejs 0.8.18 but I tried applying it manually (normal patching failed), but even that did not help.

There is already an issue for it in here: nodejs/node#9137

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants