Skip to contentSkip to conversation

3 fixes for multilib

PATCH In review Yi Zhao 2 participants 6 messages Jun 4, 2015 – Jun 12, 2015

lore
Share & tools
lore

Yi Zhao

author
#0 lore raw

cover 3 fixes for multilib

The following changes since commit 9a5d25f2a717814f948b492b9c01c1ff0edb678d:

pinpoint: use clutter-gst-3.0 (2015-05-28 10:35:35 +0200)

are available in the git repository at:

git://git.openembedded.org/meta-openembedded-contrib yzhao/fixes-for-multilib
http://cgit.openembedded.org/cgit.cgi/meta-openembedded-contrib/log/?h=yzhao/fixes-for-multilib

Yi Zhao (3):
luajit: fix build failure for multilib
nodejs: fix build failure for multilib
llvm: fix libdir for multilib

 meta-oe/recipes-core/llvm/llvm.inc               |    9 ++++++++-
 meta-oe/recipes-devtools/luajit/luajit_2.0.3.bb  |    4 ++--
 meta-oe/recipes-devtools/nodejs/nodejs_0.12.4.bb |    9 +++------
 3 files changed, 13 insertions(+), 9 deletions(-)
Signature · 1 line
1.7.9.5
author
#1 lore raw

PATCH 1/3 luajit: fix build failure for multilib

Fix libdir in Makefile

---
 meta-oe/recipes-devtools/luajit/luajit_2.0.3.bb |    4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)
meta-oe/recipes-devtools/luajit/luajit_2.0.3.bb +2 -2
index 48137e3..f3235c9 100644
@@ -16,8 +16,8 @@ inherit pkgconfig binconfig
 BBCLASSEXTEND = "native"
 
 do_configure_prepend() {
-    sed -i -e s:/usr/local:${prefix}:g ${S}/Makefile
-    sed -i -e s:/lib$:${base_libdir}:g ${S}/Makefile
+    sed -i 's:PREFIX= /usr/local:PREFIX= ${prefix}:g' ${S}/Makefile
+    sed -i 's:MULTILIB= lib:MULTILIB= ${base_libdir}:g' ${S}/Makefile
 }
 
 EXTRA_OEMAKE = 'CROSS=${HOST_PREFIX} \
Signature · 1 line
1.7.9.5
#2 lore raw

Re: [meta-oe][PATCH 1/3] luajit: fix build failure for multilib

Quoted 12 lines · Yi Zhao

Fix libdir in Makefile

---
 meta-oe/recipes-devtools/luajit/luajit_2.0.3.bb |    4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)
meta-oe/recipes-devtools/luajit/luajit_2.0.3.bb +0 -0
index 48137e3..f3235c9 100644

meta-oe/recipes-devtools/luajit/luajit_2.0.3.bb inherit pkgconfig binconfig · line 21

Quoted 8 lines
meta-oe/recipes-devtools/luajit/luajit_2.0.3.bb +2 -2
@@ -16,8 +16,8 @@ inherit pkgconfig binconfig
 BBCLASSEXTEND = "native"
 
 do_configure_prepend() {
-    sed -i -e s:/usr/local:${prefix}:g ${S}/Makefile
-    sed -i -e s:/lib$:${base_libdir}:g ${S}/Makefile
+    sed -i 's:PREFIX= /usr/local:PREFIX= ${prefix}:g' ${S}/Makefile
+    sed -i 's:MULTILIB= lib:MULTILIB= ${base_libdir}:g' ${S}/Makefile
 }

This seems to break qemux86 build

| ==== Successfully installed LuaJIT 2.0.3 to /home/jenkins/oe/world/shr-core/tmp-glibc/sysroots/x86_64-linux/usr ====
| rmdir: failed to remove `/home/jenkins/oe/world/shr-core/tmp-glibc/work/x86_64-linux/luajit-native/2.0.3-r0/image/home/jenkins/oe/world/shr-core/tmp-glibc/sysroots/x86_64-linux/usr/lib/lua/5.*': No such file or directory
| rmdir: failed to remove `/home/jenkins/oe/world/shr-core/tmp-glibc/work/x86_64-linux/luajit-native/2.0.3-r0/image/home/jenkins/oe/world/shr-core/tmp-glibc/sysroots/x86_64-linux/usr/lib/lua': No such file or directory
| WARNING: exit code 1 from a shell command.
| ERROR: Function failed: do_install (log file is located at /home/jenkins/oe/world/shr-core/tmp-glibc/work/x86_64-linux/luajit-native/2.0.3-r0/temp/log.do_install.31954)

NOTE: recipe luajit-native-2.0.3-r0: task do_install: Failed
ERROR: Task 31965 (virtual:native:/home/jenkins/oe/world/shr-core/meta-openembedded/meta-oe/recipes-devtools/luajit/luajit_2.0.3.bb, do_install) failed with exit code '1'

Quoted 10 lines
meta-oe/recipes-devtools/luajit/luajit_2.0.3.bb +0 -0
 EXTRA_OEMAKE = 'CROSS=${HOST_PREFIX} \
Signature · 7 lines
1.7.9.5

-- 
_______________________________________________
Openembedded-devel mailing list
[email protected]
http://lists.openembedded.org/mailman/listinfo/openembedded-devel
Signature · 1 line
Martin 'JaMa' Jansa     jabber: [email protected]
author
#3 lore raw

Re: [meta-oe][PATCH 1/3] luajit: fix build failure for multilib

Quoted 23 lines · Martin Jansa
Quoted 12 lines · Yi Zhao

Fix libdir in Makefile

---
  meta-oe/recipes-devtools/luajit/luajit_2.0.3.bb |    4 ++--
  1 file changed, 2 insertions(+), 2 deletions(-)
meta-oe/recipes-devtools/luajit/luajit_2.0.3.bb +0 -0
index 48137e3..f3235c9 100644

meta-oe/recipes-devtools/luajit/luajit_2.0.3.bb inherit pkgconfig binconfig · line 21

Quoted 8 lines
meta-oe/recipes-devtools/luajit/luajit_2.0.3.bb +2 -2
@@ -16,8 +16,8 @@ inherit pkgconfig binconfig
  BBCLASSEXTEND = "native"
 
  do_configure_prepend() {
-    sed -i -e s:/usr/local:${prefix}:g ${S}/Makefile
-    sed -i -e s:/lib$:${base_libdir}:g ${S}/Makefile
+    sed -i 's:PREFIX= /usr/local:PREFIX= ${prefix}:g' ${S}/Makefile
+    sed -i 's:MULTILIB= lib:MULTILIB= ${base_libdir}:g' ${S}/Makefile
  }

This seems to break qemux86 build

Quoted 8 lines
| ==== Successfully installed LuaJIT 2.0.3 to /home/jenkins/oe/world/shr-core/tmp-glibc/sysroots/x86_64-linux/usr ====
| rmdir: failed to remove `/home/jenkins/oe/world/shr-core/tmp-glibc/work/x86_64-linux/luajit-native/2.0.3-r0/image/home/jenkins/oe/world/shr-core/tmp-glibc/sysroots/x86_64-linux/usr/lib/lua/5.*': No such file or directory
| rmdir: failed to remove `/home/jenkins/oe/world/shr-core/tmp-glibc/work/x86_64-linux/luajit-native/2.0.3-r0/image/home/jenkins/oe/world/shr-core/tmp-glibc/sysroots/x86_64-linux/usr/lib/lua': No such file or directory
| WARNING: exit code 1 from a shell command.
| ERROR: Function failed: do_install (log file is located at /home/jenkins/oe/world/shr-core/tmp-glibc/work/x86_64-linux/luajit-native/2.0.3-r0/temp/log.do_install.31954)

NOTE: recipe luajit-native-2.0.3-r0: task do_install: Failed
ERROR: Task 31965 (virtual:native:/home/jenkins/oe/world/shr-core/meta-openembedded/meta-oe/recipes-devtools/luajit/luajit_2.0.3.bb, do_install) failed with exit code '1'

Thanks, Martin. I can reproduce it. A patch will be sent later.

Yi

Quoted 10 lines
Quoted 10 lines
meta-oe/recipes-devtools/luajit/luajit_2.0.3.bb +0 -0
  EXTRA_OEMAKE = 'CROSS=${HOST_PREFIX} \
Signature · 7 lines
1.7.9.5

-- 
_______________________________________________
Openembedded-devel mailing list
[email protected]
http://lists.openembedded.org/mailman/listinfo/openembedded-devel
author
#4 lore raw

PATCH 2/3 nodejs: fix build failure for multilib

In reply to Yi Zhao

bitbake nodejs
[snip]
sed: can't read /buildarea2/build/tmp/work/core2-64-poky-linux/nodejs/0.12.4-r0/image/usr/lib64/node_modules/npm/bin/npm-cli.js:
No such file or directory
[snip]

The node modules are not binary files. It doesn't make sense to install them to /usr/lib64.
Use /usr/lib/node_modules instead of /usr/lib64/node_modules even on multilib.

---
 meta-oe/recipes-devtools/nodejs/nodejs_0.12.4.bb |    9 +++------
 1 file changed, 3 insertions(+), 6 deletions(-)
meta-oe/recipes-devtools/nodejs/nodejs_0.12.4.bb +3 -6
index 4e1ba1f..81b8c0d 100644
@@ -61,20 +61,17 @@ do_install_append_class-native() {
     # /usr/bin/npm is symlink to /usr/lib/node_modules/npm/bin/npm-cli.js
     # use sed on npm-cli.js because otherwise symlink is replaced with normal file and
     # npm-cli.js continues to use old shebang
-    sed "1s^.*^#\!/usr/bin/env node^g" -i ${D}${libdir}/node_modules/npm/bin/npm-cli.js
+    sed "1s^.*^#\!/usr/bin/env node^g" -i ${D}${exec_prefix}/lib/node_modules/npm/bin/npm-cli.js
 }
 
 do_install_append_class-target() {
-    sed "1s^.*^#\!${bindir}/env node^g" -i ${D}${libdir}/node_modules/npm/bin/npm-cli.js
+    sed "1s^.*^#\!${bindir}/env node^g" -i ${D}${exec_prefix}/lib/node_modules/npm/bin/npm-cli.js
 }
 
 PACKAGES =+ "${PN}-npm"
-FILES_${PN}-npm = "${libdir}/node_modules ${bindir}/npm"
+FILES_${PN}-npm = "${exec_prefix}/lib/node_modules ${bindir}/npm"
 RDEPENDS_${PN}-npm = "bash python-shell python-datetime python-subprocess python-textutils"
 
-PACKAGES =+ "${PN}-dtrace"
-FILES_${PN}-dtrace = "${libdir}/dtrace"
-
 PACKAGES =+ "${PN}-systemtap"
 FILES_${PN}-systemtap = "${datadir}/systemtap"
 
Signature · 1 line
1.7.9.5
author
#5 lore raw

PATCH 3/3 llvm: fix libdir for multilib

In reply to Yi Zhao

Fix the hardcoded libdir in llvm-config and Makefile.config

---
 meta-oe/recipes-core/llvm/llvm.inc |    9 ++++++++-
 1 file changed, 8 insertions(+), 1 deletion(-)
meta-oe/recipes-core/llvm/llvm.inc +8 -1
index 26bac33..0597be1 100644
@@ -60,6 +60,9 @@ do_configure_prepend() {
     sed -i "s|sys::path::parent_path(CurrentPath))\.str()|sys::path::parent_path(sys::path::parent_path(CurrentPath))).str()|g" ${S}/tools/llvm-config/llvm-config.cpp
     sed -ri "s#/(bin|include|lib)(/?\")#/\1/${LLVM_DIR}\2#g" ${S}/tools/llvm-config/llvm-config.cpp
 
+    # Fix the hardcoded libdir in llvm-config
+    sed -i 's:/lib\>:${base_libdir}:g' ${S}/tools/llvm-config/llvm-config.cpp
+
     # Fails to build unless using separate directory from source
     mkdir -p ${LLVM_BUILD_DIR}
     cd ${LLVM_BUILD_DIR}
@@ -67,6 +70,10 @@ do_configure_prepend() {
 
 do_compile() {
     cd ${LLVM_BUILD_DIR}
+
+    # Fix libdir for multilib
+    sed -i 's:(PROJ_prefix)/lib:(PROJ_prefix)${base_libdir}:g' Makefile.config
+
     oe_runmake \
         AR="${BUILD_AR}" \
         CC="${BUILD_CC}" \
@@ -127,7 +134,7 @@ FILES_${PN}-dev = "${bindir}/${LLVM_DIR} \
 
 PACKAGES_DYNAMIC = "^libllvm-.*$"
 
-INSANE_SKIP_libllvm${LLVM_RELEASE}-llvm-${LLVM_RELEASE} += "dev-so"
+INSANE_SKIP_${MLPREFIX}libllvm${LLVM_RELEASE}-llvm-${LLVM_RELEASE} += "dev-so"
 
 python llvm_populate_packages() {
     libdir = bb.data.expand('${libdir}', d)
Signature · 1 line
1.7.9.5