[oe-commits] [meta-openembedded] 30/60: luajit: fix build issues, obey more vars

git at git.openembedded.org git at git.openembedded.org
Wed Aug 17 18:07:11 UTC 2016


martin_jansa pushed a commit to branch krogoth-next
in repository meta-openembedded.

commit ae5df2e296b998876476dd071bb4ef88a3247128
Author: Christopher Larson <chris_larson at mentor.com>
AuthorDate: Tue May 31 10:38:58 2016 -0700

    luajit: fix build issues, obey more vars
    
    Rework how variables are passed in to ensure that more of our flag vars are
    obeyed, make it obey more of our target path vars, and use fewer of its
    hardcoded flags. Also add verbosity to the compile output for debugging.
    
    Without this, errors were seen for us:
    
        | In file included from .../lib/gcc/i686-pc-linux-gnu/5.2.0/include-fixed/64/sgxx-glibc/syslimits.h:7:0,
        |                  from .../lib/gcc/i686-pc-linux-gnu/5.2.0/include-fixed/64/sgxx-glibc/limits.h:34,
        |                  from luaconf.h:12,
        |                  from lua.h:16,
        |                  from lj_arch.h:9:
        | .../lib/gcc/i686-pc-linux-gnu/5.2.0/include-fixed/64/sgxx-glibc/limits.h:168:61: fatal error: limits.h: No such file or directory
        | compilation terminated.
        | Makefile:233: *** Unsupported target architecture.  Stop.
        | make[1]: Leaving directory '.../luajit/2.0.4-r0/LuaJIT-2.0.4/src'
    
    Signed-off-by: Christopher Larson <chris_larson at mentor.com>
    Signed-off-by: Martin Jansa <Martin.Jansa at gmail.com>
    (cherry picked from commit 852cd67b916cdbe9f91d5323fe2a6cc790a7a0eb)
    Signed-off-by: Armin Kuster <akuster808 at gmail.com>
---
 meta-oe/recipes-devtools/luajit/luajit_2.0.4.bb | 56 +++++++++++++++++++------
 1 file changed, 43 insertions(+), 13 deletions(-)

diff --git a/meta-oe/recipes-devtools/luajit/luajit_2.0.4.bb b/meta-oe/recipes-devtools/luajit/luajit_2.0.4.bb
index a0252aa..964dc1d 100644
--- a/meta-oe/recipes-devtools/luajit/luajit_2.0.4.bb
+++ b/meta-oe/recipes-devtools/luajit/luajit_2.0.4.bb
@@ -15,11 +15,6 @@ inherit pkgconfig binconfig
 
 BBCLASSEXTEND = "native"
 
-do_configure_prepend() {
-    sed -i 's:PREFIX= /usr/local:PREFIX= ${prefix}:g' ${S}/Makefile
-    sed -i 's:MULTILIB= lib:MULTILIB= ${baselib}:g' ${S}/Makefile
-}
-
 # http://luajit.org/install.html#cross
 # Host luajit needs to be compiled with the same pointer size
 # If you want to cross-compile to any 32 bit target on an x64 OS,
@@ -30,20 +25,52 @@ BUILD_CC_ARCH_append_powerpc = ' -m32'
 BUILD_CC_ARCH_append_x86 = ' -m32'
 BUILD_CC_ARCH_append_arm = ' -m32'
 
-EXTRA_OEMAKE_append_class-target = '\
-    CROSS=${HOST_PREFIX} \
-    HOST_CC="${BUILD_CC} ${BUILD_CC_ARCH}" \
-    TARGET_CFLAGS="${TOOLCHAIN_OPTIONS} ${TARGET_CC_ARCH}" \
-    TARGET_LDFLAGS="${TOOLCHAIN_OPTIONS}" \
-    TARGET_SHLDFLAGS="${TOOLCHAIN_OPTIONS}" \
-'
+# The lua makefiles expect the TARGET_SYS to be from uname -s
+# Values: Windows, Linux, Darwin, iOS, SunOS, PS3, GNU/kFreeBSD
+LUA_TARGET_OS = "Unknown"
+LUA_TARGET_OS_darwin = "Darwin"
+LUA_TARGET_OS_linux = "Linux"
+LUA_TARGET_OS_linux-gnueabi = "Linux"
+LUA_TARGET_OS_mingw32 = "Windows"
+
+# We don't want the lua buildsystem's compiler optimizations, or its
+# stripping, and we don't want it to pick up CFLAGS or LDFLAGS, as those apply
+# to both host and target compiles
+EXTRA_OEMAKE = "\
+    Q= E='@:' \
+    \
+    CCOPT= CCOPT_x86= CFLAGS= LDFLAGS= TARGET_STRIP='@:' \
+    \
+    'TARGET_SYS=${LUA_TARGET_OS}' \
+    \
+    'CC=${CC}' \
+    'TARGET_AR=${AR} rcus' \
+    'TARGET_CFLAGS=${CFLAGS}' \
+    'TARGET_LDFLAGS=${LDFLAGS}' \
+    'TARGET_SHLDFLAGS=${LDFLAGS}' \
+    'HOST_CC=${BUILD_CC}' \
+    'HOST_CFLAGS=${BUILD_CFLAGS}' \
+    'HOST_LDFLAGS=${BUILD_LDFLAGS}' \
+    \
+    'PREFIX=${prefix}' \
+    'MULTILIB=${baselib}' \
+"
 
 do_compile () {
     oe_runmake
 }
 
+# There's INSTALL_LIB and INSTALL_SHARE also, but the lua binary hardcodes the
+# '/share' and '/' + LUA_MULTILIB paths, so we don't want to break those
+# expectations.
+EXTRA_OEMAKEINST = "\
+    'DESTDIR=${D}' \
+    'INSTALL_BIN=${D}${bindir}' \
+    'INSTALL_INC=${D}${includedir}/luajit-$(MAJVER).$(MINVER)' \
+    'INSTALL_MAN=${D}${mandir}/man1' \
+"
 do_install () {
-    oe_runmake 'DESTDIR=${D}' install
+    oe_runmake ${EXTRA_OEMAKEINST} install
     rmdir ${D}${datadir}/lua/5.* \
           ${D}${datadir}/lua \
           ${D}${libdir}/lua/5.* \
@@ -52,6 +79,9 @@ do_install () {
 
 PACKAGES += 'luajit-common'
 
+# See the comment for EXTRA_OEMAKEINST. This is needed to ensure the hardcoded
+# paths are packaged regardless of what the libdir and datadir paths are.
+FILES_${PN} += "${prefix}/${baselib} ${prefix}/share"
 FILES_${PN} += "${libdir}/libluajit-5.1.so.2 \
     ${libdir}/libluajit-5.1.so.${PV} \
 "

-- 
To stop receiving notification emails like this one, please contact
the administrator of this repository.


More information about the Openembedded-commits mailing list