Patchwork nodejs: Make configure script not use host libutil

login
register
mail settings
Submitter Patrik Dahlström
Date April 19, 2011, 2:55 p.m.
Message ID <1303224907-13125-1-git-send-email-patda293@student.liu.se>
Download mbox | patch
Permalink /patch/2505/
State Accepted
Headers show

Comments

Patrik Dahlström - April 19, 2011, 2:55 p.m.
Without this patch the configure script of nodejs-0.4.2 will use host libs for libutil. Excerpt from build/config.log:

Checking for library util
==>

int main() {
        return 0;
}

<==
[1/2] cxx: build/.conf_check_0/test.cpp -> build/.conf_check_0/testbuild/default/test_1.o
['arm-angstrom-linux-gnueabi-g++', '-march=armv7-a', '-mtune=cortex-a8', '-mfpu=neon', '-mfloat-abi=softfp', '-mthumb-interwork', '-mno-thumb', '--sysroot=/home/bitbake/build/tmp_beagleboard/sysroots/armv7a-angstrom-linux-gnueabi', '-fexpensive-optimizations', '-fomit-frame-pointer', '-frename-registers', '-O2', '-ggdb2', '-fpermissive', '-fvisibility-inlines-hidden', '-DHAVE_OPENSSL=1', '../test.cpp', '-c', '-o', 'default/test_1.o']
[2/2] cxx_link: build/.conf_check_0/testbuild/default/test_1.o -> build/.conf_check_0/testbuild/default/testprog
/usr/lib/libutil.so: file not recognized: File format not recognized
collect2: ld returned 1 exit status
['arm-angstrom-linux-gnueabi-g++', '-march=armv7-a', '-mtune=cortex-a8', '-mfpu=neon', '-mfloat-abi=softfp', '-mthumb-interwork', '-mno-thumb', '--sysroot=/home/bitbake/build/tmp_beagleboard/sysroots/armv7a-angstrom-linux-gnueabi', 'default/test_1.o', '-o', '/home/bitbake/build/tmp_beagleboard/work/armv7a-angstrom-linux-gnueabi/nodejs-0.4.2-r0/node-v0.4.2/build/.conf_check_0/testbuild/default/testprog', '-Wl,-O1', '-Wl,--hash-style=gnu', '-L/usr/lib', '-L/usr/local/lib', '-Wl,-Bdynamic', '-lutil']
command returned 'Build failed:  -> task failed (err #1): \n\t{task: cxx_link test_1.o -> testprog}'not found

It is strange how the configure script still continues even though it didn't find some of its dependencies.
Eventually the build will fail with:

default/src/node_stdio_4.o: In function `node::OpenPTY(v8::Arguments const&)':
/home/bitbake/build/tmp_beagleboard/work/armv7a-angstrom-linux-gnueabi/nodejs-0.4.2-r0/node-v0.4.2/build/../src/node_stdio.cc:241: undefined reference to `openpty'
collect2: ld returned 1 exit status

Signed-off-by: Patrik Dahlström <patda293@student.liu.se>
---
 recipes/nodejs/nodejs_0.4.2.bb |    2 ++
 1 files changed, 2 insertions(+), 0 deletions(-)
Koen Kooi - April 19, 2011, 7:12 p.m.
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

On 19-04-11 16:55, Patrik Dahlström wrote:
> Without this patch the configure script of nodejs-0.4.2 will use host libs for libutil. Excerpt from build/config.log:
> 
> Checking for library util
> ==>
> 
> int main() {
>         return 0;
> }
> 
> <==
> [1/2] cxx: build/.conf_check_0/test.cpp -> build/.conf_check_0/testbuild/default/test_1.o
> ['arm-angstrom-linux-gnueabi-g++', '-march=armv7-a', '-mtune=cortex-a8', '-mfpu=neon', '-mfloat-abi=softfp', '-mthumb-interwork', '-mno-thumb', '--sysroot=/home/bitbake/build/tmp_beagleboard/sysroots/armv7a-angstrom-linux-gnueabi', '-fexpensive-optimizations', '-fomit-frame-pointer', '-frename-registers', '-O2', '-ggdb2', '-fpermissive', '-fvisibility-inlines-hidden', '-DHAVE_OPENSSL=1', '../test.cpp', '-c', '-o', 'default/test_1.o']
> [2/2] cxx_link: build/.conf_check_0/testbuild/default/test_1.o -> build/.conf_check_0/testbuild/default/testprog
> /usr/lib/libutil.so: file not recognized: File format not recognized
> collect2: ld returned 1 exit status
> ['arm-angstrom-linux-gnueabi-g++', '-march=armv7-a', '-mtune=cortex-a8', '-mfpu=neon', '-mfloat-abi=softfp', '-mthumb-interwork', '-mno-thumb', '--sysroot=/home/bitbake/build/tmp_beagleboard/sysroots/armv7a-angstrom-linux-gnueabi', 'default/test_1.o', '-o', '/home/bitbake/build/tmp_beagleboard/work/armv7a-angstrom-linux-gnueabi/nodejs-0.4.2-r0/node-v0.4.2/build/.conf_check_0/testbuild/default/testprog', '-Wl,-O1', '-Wl,--hash-style=gnu', '-L/usr/lib', '-L/usr/local/lib', '-Wl,-Bdynamic', '-lutil']
> command returned 'Build failed:  -> task failed (err #1): \n\t{task: cxx_link test_1.o -> testprog}'not found
> 
> It is strange how the configure script still continues even though it didn't find some of its dependencies.

Welcome to the waf/scons/cmake world...

> Eventually the build will fail with:
> 
> default/src/node_stdio_4.o: In function `node::OpenPTY(v8::Arguments const&)':
> /home/bitbake/build/tmp_beagleboard/work/armv7a-angstrom-linux-gnueabi/nodejs-0.4.2-r0/node-v0.4.2/build/../src/node_stdio.cc:241: undefined reference to `openpty'
> collect2: ld returned 1 exit status
> 
> Signed-off-by: Patrik Dahlström <patda293@student.liu.se>

Acked-by: Koen Kooi <koen@dominion.thruhere.net>
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.5 (Darwin)

iD8DBQFNrd6JMkyGM64RGpERAhL4AJ9g1fpRaCJfFsjdY1J6TeBE6Uxu4ACgiJi7
tBWqH4N4Uhgzba8G2NNcrq8=
=7GVC
-----END PGP SIGNATURE-----

Patch

diff --git a/recipes/nodejs/nodejs_0.4.2.bb b/recipes/nodejs/nodejs_0.4.2.bb
index 912eb5d..40787b4 100644
--- a/recipes/nodejs/nodejs_0.4.2.bb
+++ b/recipes/nodejs/nodejs_0.4.2.bb
@@ -18,6 +18,8 @@  S = "${WORKDIR}/node-v${PV}"
 CCACHE = ""
 
 do_configure () {
+  sed -i -e 's:/usr/lib:${STAGING_LIBDIR}:g' wscript
+  sed -i -e 's:/usr/local/lib:${STAGING_LIBDIR}:g' wscript
   ./configure --prefix=${prefix} --without-snapshot
 }