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@mentor.com>
Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
(cherry picked from commit 852cd67b91)
Signed-off-by: Armin Kuster <akuster808@gmail.com>
* previous fix didn't work very well, because host version really needs
to use the same pointer size, so it's better to disable native builds
completely and let HOST_LUA to be compiled in target build with
correct params
* EXTRA_OEMAKE_append_mips64 = ' HOST_CC="${BUILD_CC} -m32"'
looks like mistake, is mips64 using 32bit pointers?
Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
* otherwise minilua for host is built during build of target lua, see
comment in Makefile:
# If left blank, minilua is built and used. You can supply an installed
# copy of (plain) Lua 5.1 or 5.2, plus Lua BitOp. E.g. with: HOST_LUA=lua
* be aware that there is still native buildvm which needs the same headers
if it fails for you, then you probably need to install libc6-dev:i386
which installs these headers to hosts /usr/include, some architectures
are passing HOST_CC="${BUILD_CC} -m32" in EXTRA_OEMAKE, that's why
you need 32bit headers on 64bit host.
* building native minilua fails on some hosts like this:
ERROR: luajit-2.0.4-r0 do_compile: oe_runmake failed
ERROR: luajit-2.0.4-r0 do_compile: Function failed: do_compile (log file is located at /home/jenkins/oe/world/shr-core/tmp-glibc/work/armv5te-oe-linux-gnueabi/luajit/2.0.4-r0/temp/log.do_compile.3067)
ERROR: Logfile of failure stored in: /home/jenkins/oe/world/shr-core/tmp-glibc/work/armv5te-oe-linux-gnueabi/luajit/2.0.4-r0/temp/log.do_compile.3067
Log data follows:
| DEBUG: Executing shell function do_compile
| NOTE: make -j 8 CROSS=arm-oe-linux-gnueabi- TARGET_CFLAGS= --sysroot=/home/jenkins/oe/world/shr-core/tmp-glibc/sysroots/qemuarm -march=armv5te -mthumb TARGET_LDFLAGS= --sysroot=/home/jenkins/oe/world/shr-core/tmp-glibc/sysroots/qemuarm TARGET_SHLDFLAGS= --sysroot=/home/jenkins/oe/world/shr-core/tmp-glibc/sysroots/qemuarm HOST_CC=gcc -m32
| ==== Building LuaJIT 2.0.4 ====
| make -C src
| make[1]: Entering directory `/home/jenkins/oe/world/shr-core/tmp-glibc/work/armv5te-oe-linux-gnueabi/luajit/2.0.4-r0/LuaJIT-2.0.4/src'
| HOSTCC host/buildvm_asm.o
| HOSTCC host/minilua.o
| HOSTCC host/buildvm_peobj.o
| HOSTCC host/buildvm_lib.o
| HOSTCC host/buildvm_fold.o
| CC lj_gc.o
| CC lj_obj.o
| CC lj_char.o
| In file included from host/buildvm_peobj.c:9:0:
| host/buildvm.h:9:23: fatal error: sys/types.h: No such file or directory
| #include <sys/types.h>
| ^
| compilation terminated.
| In file included from host/buildvm_fold.c:6:0:
| host/buildvm.h:9:23: fatal error: sys/types.h: No such file or directory
| #include <sys/types.h>
| ^
| compilation terminated.
| In file included from host/buildvm_asm.c:6:0:
| host/buildvm.h:9:23: fatal error: sys/types.h: No such file or directory
| #include <sys/types.h>
| ^
| compilation terminated.
| In file included from host/buildvm_lib.c:6:0:
| host/buildvm.h:9:23: fatal error: sys/types.h: No such file or directory
| #include <sys/types.h>
| ^
| compilation terminated.
| In file included from /usr/include/limits.h:25:0,
| from /usr/lib/gcc/x86_64-linux-gnu/4.8/include-fixed/limits.h:168,
| from /usr/lib/gcc/x86_64-linux-gnu/4.8/include-fixed/syslimits.h:7,
| from /usr/lib/gcc/x86_64-linux-gnu/4.8/include-fixed/limits.h:34,
| from host/minilua.c:33:
| /usr/include/features.h:374:25: fatal error: sys/cdefs.h: No such file or directory
| # include <sys/cdefs.h>
| ^
| compilation terminated.
| make[1]: *** [host/buildvm_lib.o] Error 1
| make[1]: *** Waiting for unfinished jobs....
| make[1]: *** [host/buildvm_fold.o] Error 1
| make[1]: *** [host/buildvm_asm.o] Error 1
| make[1]: *** [host/buildvm_peobj.o] Error 1
| make[1]: *** [host/minilua.o] Error 1
| make[1]: Leaving directory `/home/jenkins/oe/world/shr-core/tmp-glibc/work/armv5te-oe-linux-gnueabi/luajit/2.0.4-r0/LuaJIT-2.0.4/src'
| make: *** [default] Error 2
| ERROR: oe_runmake failed
| ERROR: Function failed: do_compile (log file is located at /home/jenkins/oe/world/shr-core/tmp-glibc/work/armv5te-oe-linux-gnueabi/luajit/2.0.4-r0/temp/log.do_compile.3067)
NOTE: recipe luajit-2.0.4-r0: task do_compile: Failed
ERROR: Task 6 (/home/jenkins/oe/world/shr-core/meta-openembedded/meta-oe/recipes-devtools/luajit/luajit_2.0.4.bb, do_compile) failed with exit code '1'
Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>