* [Buildroot] [PATCH] luajit: new package (v2) @ 2012-06-02 8:49 François Perrad 2012-07-14 22:47 ` Thomas Petazzoni 0 siblings, 1 reply; 8+ messages in thread From: François Perrad @ 2012-06-02 8:49 UTC (permalink / raw) To: buildroot Signed-off-by: Francois Perrad <francois.perrad@gadz.org> --- package/Config.in | 3 ++- package/luajit/Config.in | 9 +++++++ package/luajit/luajit-root-path.patch | 16 ++++++++++++ package/luajit/luajit.mk | 44 +++++++++++++++++++++++++++++++++ 4 files changed, 71 insertions(+), 1 deletion(-) create mode 100644 package/luajit/Config.in create mode 100644 package/luajit/luajit-root-path.patch create mode 100644 package/luajit/luajit.mk diff --git a/package/Config.in b/package/Config.in index fb1b08f..fde30b0 100644 --- a/package/Config.in +++ b/package/Config.in @@ -237,7 +237,8 @@ endmenu menu "Interpreter languages and scripting" source "package/haserl/Config.in" source "package/lua/Config.in" -if BR2_PACKAGE_LUA +source "package/luajit/Config.in" +if BR2_PACKAGE_LUA || BR2_PACKAGE_LUAJIT menu "LUA libraries/modules" source "package/cgilua/Config.in" source "package/copas/Config.in" diff --git a/package/luajit/Config.in b/package/luajit/Config.in new file mode 100644 index 0000000..c665b28 --- /dev/null +++ b/package/luajit/Config.in @@ -0,0 +1,9 @@ +config BR2_PACKAGE_LUAJIT + bool "luajit" + help + LuaJIT implements the full set of language features defined by Lua 5.1. The + virtual machine (VM) is API- and ABI-compatible to the standard Lua interpreter + and can be deployed as a drop-in replacement. + + http://luajit.org/ + diff --git a/package/luajit/luajit-root-path.patch b/package/luajit/luajit-root-path.patch new file mode 100644 index 0000000..2eb037c --- /dev/null +++ b/package/luajit/luajit-root-path.patch @@ -0,0 +1,16 @@ +diff -Naur LuaJIT-2.0.0-beta10.orig/src/luaconf.h LuaJIT-2.0.0-beta10/src/luaconf.h +--- LuaJIT-2.0.0-beta10.orig/src/luaconf.h 2012-05-30 20:33:27.989333819 +0200 ++++ LuaJIT-2.0.0-beta10/src/luaconf.h 2012-05-30 20:46:30.581354777 +0200 +@@ -22,9 +22,9 @@ + #define LUA_CPATH_DEFAULT \ + ".\\?.dll;" LUA_CDIR"?.dll;" LUA_CDIR"loadall.dll" + #else +-#define LUA_ROOT "/usr/local/" +-#define LUA_LDIR LUA_ROOT "share/lua/5.1/" +-#define LUA_CDIR LUA_ROOT "lib/lua/5.1/" ++#define LUA_ROOT "/usr/" ++#define LUA_LDIR LUA_ROOT "share/lua/" ++#define LUA_CDIR LUA_ROOT "lib/lua/" + #ifdef LUA_XROOT + #define LUA_JDIR LUA_XROOT "share/luajit-2.0.0-beta10/" + #define LUA_XPATH \ diff --git a/package/luajit/luajit.mk b/package/luajit/luajit.mk new file mode 100644 index 0000000..b91ddbc --- /dev/null +++ b/package/luajit/luajit.mk @@ -0,0 +1,44 @@ +############################################################# +# +# luajit +# +############################################################# + +LUAJIT_VERSION = 2.0.0-beta10 +LUAJIT_SOURCE:=LuaJIT-$(LUAJIT_VERSION).tar.gz +LUAJIT_SITE = http://luajit.org/download +LUAJIT_INSTALL_STAGING = YES + +define LUAJIT_INSTALL_BETA_FIX_MAKEFILE + $(SED) 's/@echo " $$(SYMLINK) $$(INSTALL_TNAME) $$(INSTALL_TSYM)"/$$(SYMLINK) $$(INSTALL_TNAME) $$(INSTALL_TSYM)/' $(@D)/Makefile +endef + +ifeq ($(findstring beta,$(LUAJIT_VERSION)),beta) +LUAJIT_POST_PATCH_HOOKS += LUAJIT_INSTALL_BETA_FIX_MAKEFILE +endif + +define LUAJIT_NOLARGEFILE_FIX_MAKEFILE + $(SED) 's/TARGET_XCFLAGS= -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE/TARGET_XCFLAGS=/' $(@D)/src/Makefile +endef + +ifneq ($(BR2_LARGEFILE),y) +LUAJIT_POST_PATCH_HOOKS += LUAJIT_NOLARGEFILE_FIX_MAKEFILE +endif + +define LUAJIT_BUILD_CMDS + $(MAKE) PREFIX="/usr" CROSS="$(TARGET_CROSS)" -C $(@D) amalg +endef + +define LUAJIT_INSTALL_STAGING_CMDS + $(MAKE) PREFIX="/usr" DESTDIR="$(STAGING_DIR)" -C $(@D) install +endef + +define LUAJIT_INSTALL_TARGET_CMDS + $(MAKE) PREFIX="/usr" DESTDIR="$(TARGET_DIR)" -C $(@D) install +endef + +define LUAJIT_CLEAN_CMDS + -$(MAKE) -C $(@D) clean +endef + +$(eval $(call GENTARGETS,package,luajit)) -- 1.7.9.5 ^ permalink raw reply related [flat|nested] 8+ messages in thread
* [Buildroot] [PATCH] luajit: new package (v2) 2012-06-02 8:49 [Buildroot] [PATCH] luajit: new package (v2) François Perrad @ 2012-07-14 22:47 ` Thomas Petazzoni 2012-07-14 22:50 ` [Buildroot] [PATCH] luajit: new package Thomas Petazzoni 0 siblings, 1 reply; 8+ messages in thread From: Thomas Petazzoni @ 2012-07-14 22:47 UTC (permalink / raw) To: buildroot Hello, Le Sat, 2 Jun 2012 10:49:14 +0200, Fran?ois Perrad <francois.perrad@gadz.org> a ?crit : > Signed-off-by: Francois Perrad <francois.perrad@gadz.org> > --- > package/Config.in | 3 ++- > package/luajit/Config.in | 9 +++++++ > package/luajit/luajit-root-path.patch | 16 ++++++++++++ > package/luajit/luajit.mk | 44 +++++++++++++++++++++++++++++++++ > 4 files changed, 71 insertions(+), 1 deletion(-) I started integrating this. I made a number of changes (link the luajit binary dynamically against its shared library, remove the symbolic thing, addition of the proper 'depends on' for the architectures that luajit supports, etc.). However, I've hit a wall with the fact that apparently the luajit build process requires the host compiler to have the same bitness as the target architecture. As I was building for ARM on a x86_64 machine, luajit wasn't happy, and suggested to add -m32 to the host compile flags. With this, it works. Unfortunately, it has a number of drawbacks: * Requires the host to have multilib libraries available. This is not a big problem IMO, as most x86_64 machines will most likely have the 32 bits libraries installed for one reason or another, and we are anyway thinking of using this multilib capability to build Grub when the target architecture is x86_64. * The major problem is that it means that if your build machine is a 32 bits machine, then you cannot build luajit for a 64 bits architecture (at the moment, the only 64 bits architecture supported by luajit is x86_64, so basically, on a i386 build machine, you can't build a x86_64 target). Can you have a look at this and see what's possible to do? I will send as a reply the current state of the luajit patch that includes my modifications. Thanks! Thomas -- Thomas Petazzoni, Free Electrons Kernel, drivers, real-time and embedded Linux development, consulting, training and support. http://free-electrons.com ^ permalink raw reply [flat|nested] 8+ messages in thread
* [Buildroot] [PATCH] luajit: new package 2012-07-14 22:47 ` Thomas Petazzoni @ 2012-07-14 22:50 ` Thomas Petazzoni 2012-07-15 17:19 ` François Perrad 0 siblings, 1 reply; 8+ messages in thread From: Thomas Petazzoni @ 2012-07-14 22:50 UTC (permalink / raw) To: buildroot From: Fran?ois Perrad <francois.perrad@gadz.org> [thomas.petazzoni at free-electrons.com: - Added shared library patch to link luajit dynamically against the luajit library - Added no strip patch. - Added no symlink patch. - Removed symlink creation logic from luajit.mk. - Fixed compilation on x86_64 hosts by adding -m32 to the compile flags. - Added 'depends on' for the architectures supported by luajit. ] Signed-off-by: Francois Perrad <francois.perrad@gadz.org> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> --- package/Config.in | 3 +- package/luajit/Config.in | 10 ++++ package/luajit/luajit-01-root-path.patch | 22 +++++++++ package/luajit/luajit-02-shared-lib.patch | 17 +++++++ package/luajit/luajit-03-dont-strip.patch | 23 ++++++++++ package/luajit/luajit-04-no-bin-symlink.patch | 40 ++++++++++++++++ package/luajit/luajit.mk | 61 +++++++++++++++++++++++++ 7 files changed, 175 insertions(+), 1 deletion(-) create mode 100644 package/luajit/Config.in create mode 100644 package/luajit/luajit-01-root-path.patch create mode 100644 package/luajit/luajit-02-shared-lib.patch create mode 100644 package/luajit/luajit-03-dont-strip.patch create mode 100644 package/luajit/luajit-04-no-bin-symlink.patch create mode 100644 package/luajit/luajit.mk diff --git a/package/Config.in b/package/Config.in index 99257b4..a117fc4 100644 --- a/package/Config.in +++ b/package/Config.in @@ -245,7 +245,8 @@ endmenu menu "Interpreter languages and scripting" source "package/haserl/Config.in" source "package/lua/Config.in" -if BR2_PACKAGE_LUA +source "package/luajit/Config.in" +if BR2_PACKAGE_LUA || BR2_PACKAGE_LUAJIT menu "LUA libraries/modules" source "package/cgilua/Config.in" source "package/copas/Config.in" diff --git a/package/luajit/Config.in b/package/luajit/Config.in new file mode 100644 index 0000000..3ddd3c0 --- /dev/null +++ b/package/luajit/Config.in @@ -0,0 +1,10 @@ +config BR2_PACKAGE_LUAJIT + bool "luajit" + depends on BR2_i386 || BR2_x86_64 || BR2_powerpc || BR2_arm || BR2_armeb + help + LuaJIT implements the full set of language features defined + by Lua 5.1. The virtual machine (VM) is API- and + ABI-compatible to the standard Lua interpreter and can be + deployed as a drop-in replacement. + + http://luajit.org/ diff --git a/package/luajit/luajit-01-root-path.patch b/package/luajit/luajit-01-root-path.patch new file mode 100644 index 0000000..3b0a585 --- /dev/null +++ b/package/luajit/luajit-01-root-path.patch @@ -0,0 +1,22 @@ +Adjust installation location to /usr + +Signed-off-by: Francois Perrad <francois.perrad@gadz.org> +Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> + +Index: b/src/luaconf.h +=================================================================== +--- a/src/luaconf.h ++++ b/src/luaconf.h +@@ -22,9 +22,9 @@ + #define LUA_CPATH_DEFAULT \ + ".\\?.dll;" LUA_CDIR"?.dll;" LUA_CDIR"loadall.dll" + #else +-#define LUA_ROOT "/usr/local/" +-#define LUA_LDIR LUA_ROOT "share/lua/5.1/" +-#define LUA_CDIR LUA_ROOT "lib/lua/5.1/" ++#define LUA_ROOT "/usr/" ++#define LUA_LDIR LUA_ROOT "share/lua/" ++#define LUA_CDIR LUA_ROOT "lib/lua/" + #ifdef LUA_XROOT + #define LUA_JDIR LUA_XROOT "share/luajit-2.0.0-beta10/" + #define LUA_XPATH \ diff --git a/package/luajit/luajit-02-shared-lib.patch b/package/luajit/luajit-02-shared-lib.patch new file mode 100644 index 0000000..d5122ba --- /dev/null +++ b/package/luajit/luajit-02-shared-lib.patch @@ -0,0 +1,17 @@ +Compile the luajit binary dynamically against the luajit library + +Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> + +Index: b/src/Makefile +=================================================================== +--- a/src/Makefile ++++ b/src/Makefile +@@ -629,7 +629,7 @@ + + $(LUAJIT_T): $(TARGET_O) $(LUAJIT_O) $(TARGET_DEP) + $(E) "LINK $@" +- $(Q)$(TARGET_LD) $(TARGET_ALDFLAGS) -o $@ $(LUAJIT_O) $(TARGET_O) $(TARGET_ALIBS) ++ $(Q)$(TARGET_LD) $(TARGET_ALDFLAGS) -o $@ $(LUAJIT_O) -lluajit -L. $(TARGET_ALIBS) + $(Q)$(TARGET_STRIP) $@ + $(E) "OK Successfully built LuaJIT" + diff --git a/package/luajit/luajit-03-dont-strip.patch b/package/luajit/luajit-03-dont-strip.patch new file mode 100644 index 0000000..9651cdf --- /dev/null +++ b/package/luajit/luajit-03-dont-strip.patch @@ -0,0 +1,23 @@ +Don't strip the library and binary + +This allows Buildroot to do it if needed, but only if needed. + +Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> + +Index: b/src/Makefile +=================================================================== +--- a/src/Makefile ++++ b/src/Makefile +@@ -625,12 +625,10 @@ + $(LUAJIT_SO): $(LJVMCORE_O) + $(E) "DYNLINK $@" + $(Q)$(TARGET_LD) $(TARGET_ASHLDFLAGS) -o $@ $(LJVMCORE_DYNO) $(TARGET_ALIBS) +- $(Q)$(TARGET_STRIP) $@ + + $(LUAJIT_T): $(TARGET_O) $(LUAJIT_O) $(TARGET_DEP) + $(E) "LINK $@" + $(Q)$(TARGET_LD) $(TARGET_ALDFLAGS) -o $@ $(LUAJIT_O) -lluajit -L. $(TARGET_ALIBS) +- $(Q)$(TARGET_STRIP) $@ + $(E) "OK Successfully built LuaJIT" + + ############################################################################## diff --git a/package/luajit/luajit-04-no-bin-symlink.patch b/package/luajit/luajit-04-no-bin-symlink.patch new file mode 100644 index 0000000..3eed7de --- /dev/null +++ b/package/luajit/luajit-04-no-bin-symlink.patch @@ -0,0 +1,40 @@ +Do not use a symlink for the binary, simply name if luajit + +Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> + +Index: b/Makefile +=================================================================== +--- a/Makefile ++++ b/Makefile +@@ -41,8 +41,7 @@ + INSTALL_MAN= $(INSTALL_SHARE)/man/man1 + INSTALL_PKGCONFIG= $(INSTALL_LIB)/pkgconfig + +-INSTALL_TNAME= luajit-$(VERSION) +-INSTALL_TSYMNAME= luajit ++INSTALL_TNAME= luajit + INSTALL_ANAME= libluajit-$(ABIVER).a + INSTALL_SONAME= libluajit-$(ABIVER).so.$(MAJVER).$(MINVER).$(RELVER) + INSTALL_SOSHORT= libluajit-$(ABIVER).so +@@ -56,7 +55,6 @@ + INSTALL_SHORT1= $(INSTALL_LIB)/$(INSTALL_SOSHORT) + INSTALL_SHORT2= $(INSTALL_LIB)/$(INSTALL_SOSHORT) + INSTALL_T= $(INSTALL_BIN)/$(INSTALL_TNAME) +-INSTALL_TSYM= $(INSTALL_BIN)/$(INSTALL_TSYMNAME) + INSTALL_PC= $(INSTALL_PKGCONFIG)/$(INSTALL_PCNAME) + + INSTALL_DIRS= $(INSTALL_BIN) $(INSTALL_LIB) $(INSTALL_INC) $(INSTALL_MAN) \ +@@ -114,13 +112,6 @@ + $(RM) $(FILE_PC).tmp + cd src && $(INSTALL_F) $(FILES_INC) $(INSTALL_INC) + cd lib && $(INSTALL_F) $(FILES_JITLIB) $(INSTALL_JITLIB) +- @echo "==== Successfully installed LuaJIT $(VERSION) to $(PREFIX) ====" +- @echo "" +- @echo "Note: the beta releases deliberately do NOT install a symlink for luajit" +- @echo "You can do this now by running this command (with sudo):" +- @echo "" +- @echo " $(SYMLINK) $(INSTALL_TNAME) $(INSTALL_TSYM)" +- @echo "" + + ############################################################################## + diff --git a/package/luajit/luajit.mk b/package/luajit/luajit.mk new file mode 100644 index 0000000..4fcfb3d --- /dev/null +++ b/package/luajit/luajit.mk @@ -0,0 +1,61 @@ +############################################################# +# +# luajit +# +############################################################# + +LUAJIT_VERSION = 2.0.0-beta10 +LUAJIT_SOURCE = LuaJIT-$(LUAJIT_VERSION).tar.gz +LUAJIT_SITE = http://luajit.org/download + +LUAJIT_INSTALL_STAGING = YES + +define LUAJIT_NOLARGEFILE_FIX_MAKEFILE + $(SED) 's/TARGET_XCFLAGS= -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE/TARGET_XCFLAGS=/' $(@D)/src/Makefile +endef + +ifneq ($(BR2_LARGEFILE),y) +LUAJIT_POST_PATCH_HOOKS += LUAJIT_NOLARGEFILE_FIX_MAKEFILE +endif + +# The luajit build procedure requires the host compiler to have the +# same bitness as the target compiler. So when the target is a 32 bits +# target, we pass -m32 to ensure that even on 64 bits hosts, a +# compiler of the same bitness is used. However, this doesn't work for +# x86 hosts targetting a x86_64 machine. +ifeq ($(BR2_ARCH_IS_64),y) +LUAJIT_HOST_CC="$(HOSTCC)" +else +LUAJIT_HOST_CC="$(HOSTCC) -m32" +endif + +# We unfortunately can't use TARGET_CONFIGURE_OPTS, because the luajit +# build system uses non conventional variable names. +define LUAJIT_BUILD_CMDS + $(MAKE) PREFIX="/usr" \ + STATIC_CC="$(TARGET_CC)" \ + DYNAMIC_CC="$(TARGET_CC) -fPIC" \ + TARGET_LD="$(TARGET_CC)" \ + TARGET_AR="$(TARGET_AR) rcus" \ + TARGET_STRIP="$(TARGET_STRIP)" \ + CFLAGS="$(TARGET_CFLAGS)" \ + LDFLAGS="$(TARGET_LDFLAGS)" \ + HOST_CC="$(LUAJIT_HOST_CC)" \ + HOST_CFLAGS="$(HOST_CFLAGS)" \ + HOST_LDFLAGS="$(HOST_LDFLAGS)" \ + -C $(@D) amalg +endef + +define LUAJIT_INSTALL_STAGING_CMDS + $(MAKE) PREFIX="/usr" DESTDIR="$(STAGING_DIR)" -C $(@D) install +endef + +define LUAJIT_INSTALL_TARGET_CMDS + $(MAKE) PREFIX="/usr" DESTDIR="$(TARGET_DIR)" -C $(@D) install +endef + +define LUAJIT_CLEAN_CMDS + -$(MAKE) -C $(@D) clean +endef + +$(eval $(call GENTARGETS)) -- 1.7.9.5 ^ permalink raw reply related [flat|nested] 8+ messages in thread
* [Buildroot] [PATCH] luajit: new package 2012-07-14 22:50 ` [Buildroot] [PATCH] luajit: new package Thomas Petazzoni @ 2012-07-15 17:19 ` François Perrad 2012-07-15 18:00 ` Thomas Petazzoni 0 siblings, 1 reply; 8+ messages in thread From: François Perrad @ 2012-07-15 17:19 UTC (permalink / raw) To: buildroot With a x86 host and an ARM target, I obtain the following error : >>> luajit 2.0.0-beta10 Building /usr/bin/make -j2 PREFIX="/usr" STATIC_CC="/home/user/build/qarm/host/usr/bin/arm-unknown-linux-uclibcgnueabi-gcc" DYNAMIC_CC="/home/user/build/qarm/host/usr/bin/arm-unknown-linux-uclibcgnueabi-gcc -fPIC" TARGET_LD="/home/user/build/qarm/host/usr/bin/arm-unknown-linux-uclibcgnueabi-gcc" TARGET_AR="/home/user/build/qarm/host/usr/bin/arm-unknown-linux-uclibcgnueabi-ar rcus" TARGET_STRIP="/home/user/build/qarm/host/usr/bin/arm-unknown-linux-uclibcgnueabi-strip" CFLAGS=" -pipe -Os " LDFLAGS="" HOST_CC=""/usr/bin/gcc -m32"" HOST_CFLAGS="-O2 -I/home/user/build/qarm/host/include -I/home/user/build/qarm/host/usr/include" HOST_LDFLAGS="-L/home/user/build/qarm/host/lib -L/home/user/build/qarm/host/usr/lib -Wl,-rpath,/home/user/build/qarm/host/usr/lib" -C /home/user/build/qarm/build/luajit-2.0.0-beta10 amalg /usr/bin/make: invalid option -- '3' /usr/bin/make: invalid option -- '2' so, I remove extra quote : ifeq ($(BR2_ARCH_IS_64),y) LUAJIT_HOST_CC=$(HOSTCC) else LUAJIT_HOST_CC=$(HOSTCC) -m32 endif and the build command could be rewrite with CROSS : define LUAJIT_BUILD_CMDS $(MAKE) PREFIX="/usr" \ HOST_CC="$(LUAJIT_HOST_CC)" \ CROSS="$(TARGET_CROSS)" \ -C $(@D) amalg endef Fran?ois Note : please, don't forget http://patchwork.ozlabs.org/patch/162294/ 2012/7/15 Thomas Petazzoni <thomas.petazzoni@free-electrons.com>: > From: Fran?ois Perrad <francois.perrad@gadz.org> > > [thomas.petazzoni at free-electrons.com: > - Added shared library patch to link luajit dynamically against the > luajit library > - Added no strip patch. > - Added no symlink patch. > - Removed symlink creation logic from luajit.mk. > - Fixed compilation on x86_64 hosts by adding -m32 to the compile > flags. > - Added 'depends on' for the architectures supported by luajit. > ] > > Signed-off-by: Francois Perrad <francois.perrad@gadz.org> > Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> > --- > package/Config.in | 3 +- > package/luajit/Config.in | 10 ++++ > package/luajit/luajit-01-root-path.patch | 22 +++++++++ > package/luajit/luajit-02-shared-lib.patch | 17 +++++++ > package/luajit/luajit-03-dont-strip.patch | 23 ++++++++++ > package/luajit/luajit-04-no-bin-symlink.patch | 40 ++++++++++++++++ > package/luajit/luajit.mk | 61 +++++++++++++++++++++++++ > 7 files changed, 175 insertions(+), 1 deletion(-) > create mode 100644 package/luajit/Config.in > create mode 100644 package/luajit/luajit-01-root-path.patch > create mode 100644 package/luajit/luajit-02-shared-lib.patch > create mode 100644 package/luajit/luajit-03-dont-strip.patch > create mode 100644 package/luajit/luajit-04-no-bin-symlink.patch > create mode 100644 package/luajit/luajit.mk > ^ permalink raw reply [flat|nested] 8+ messages in thread
* [Buildroot] [PATCH] luajit: new package 2012-07-15 17:19 ` François Perrad @ 2012-07-15 18:00 ` Thomas Petazzoni 2012-07-17 8:07 ` François Perrad 0 siblings, 1 reply; 8+ messages in thread From: Thomas Petazzoni @ 2012-07-15 18:00 UTC (permalink / raw) To: buildroot Le Sun, 15 Jul 2012 19:19:03 +0200, Fran?ois Perrad <francois.perrad@gadz.org> a ?crit : > -Wl,-rpath,/home/user/build/qarm/host/usr/lib" -C > /home/user/build/qarm/build/luajit-2.0.0-beta10 amalg > /usr/bin/make: invalid option -- '3' > /usr/bin/make: invalid option -- '2' > > so, I remove extra quote : > ifeq ($(BR2_ARCH_IS_64),y) > LUAJIT_HOST_CC=$(HOSTCC) > else > LUAJIT_HOST_CC=$(HOSTCC) -m32 > endif Hum, yes, this part was a last-minute addition, which was wrong apparently. But this doesn't answer my initial question: it is not possible to build luajit for a 64 bits architecture on a 32 bits host. If this isn't solved, we can't include luajit as is. > and the build command could be rewrite with CROSS : > define LUAJIT_BUILD_CMDS > $(MAKE) PREFIX="/usr" \ > HOST_CC="$(LUAJIT_HOST_CC)" \ > CROSS="$(TARGET_CROSS)" \ > -C $(@D) amalg > endef No, using TARGET_CROSS directly doesn't work when ccache is enabled. ccache is only used in TARGET_CC and TARGET_CXX, that's why I've done this this way. Can you look at the bitness problem? Thanks! Thomas -- Thomas Petazzoni, Free Electrons Kernel, drivers, real-time and embedded Linux development, consulting, training and support. http://free-electrons.com ^ permalink raw reply [flat|nested] 8+ messages in thread
* [Buildroot] [PATCH] luajit: new package 2012-07-15 18:00 ` Thomas Petazzoni @ 2012-07-17 8:07 ` François Perrad 2012-07-17 8:11 ` Thomas Petazzoni 0 siblings, 1 reply; 8+ messages in thread From: François Perrad @ 2012-07-17 8:07 UTC (permalink / raw) To: buildroot 2012/7/15 Thomas Petazzoni <thomas.petazzoni@free-electrons.com>: > Le Sun, 15 Jul 2012 19:19:03 +0200, > Fran?ois Perrad <francois.perrad@gadz.org> a ?crit : > >> -Wl,-rpath,/home/user/build/qarm/host/usr/lib" -C >> /home/user/build/qarm/build/luajit-2.0.0-beta10 amalg >> /usr/bin/make: invalid option -- '3' >> /usr/bin/make: invalid option -- '2' >> >> so, I remove extra quote : >> ifeq ($(BR2_ARCH_IS_64),y) >> LUAJIT_HOST_CC=$(HOSTCC) >> else >> LUAJIT_HOST_CC=$(HOSTCC) -m32 >> endif > > Hum, yes, this part was a last-minute addition, which was wrong > apparently. But this doesn't answer my initial question: it is not > possible to build luajit for a 64 bits architecture on a 32 bits host. > If this isn't solved, we can't include luajit as is. > >> and the build command could be rewrite with CROSS : >> define LUAJIT_BUILD_CMDS >> $(MAKE) PREFIX="/usr" \ >> HOST_CC="$(LUAJIT_HOST_CC)" \ >> CROSS="$(TARGET_CROSS)" \ >> -C $(@D) amalg >> endef > > No, using TARGET_CROSS directly doesn't work when ccache is enabled. > ccache is only used in TARGET_CC and TARGET_CXX, that's why I've done > this this way. > > Can you look at the bitness problem? see http://www.freelists.org/post/luajit/crosscompiling-with-different-bitness Fran?ois. > > Thanks! > > Thomas > -- > Thomas Petazzoni, Free Electrons > Kernel, drivers, real-time and embedded Linux > development, consulting, training and support. > http://free-electrons.com ^ permalink raw reply [flat|nested] 8+ messages in thread
* [Buildroot] [PATCH] luajit: new package 2012-07-17 8:07 ` François Perrad @ 2012-07-17 8:11 ` Thomas Petazzoni 2012-07-17 10:10 ` François Perrad 0 siblings, 1 reply; 8+ messages in thread From: Thomas Petazzoni @ 2012-07-17 8:11 UTC (permalink / raw) To: buildroot Le Tue, 17 Jul 2012 10:07:21 +0200, Fran?ois Perrad <francois.perrad@gadz.org> a ?crit : > > No, using TARGET_CROSS directly doesn't work when ccache is enabled. > > ccache is only used in TARGET_CC and TARGET_CXX, that's why I've done > > this this way. > > > > Can you look at the bitness problem? > > see http://www.freelists.org/post/luajit/crosscompiling-with-different-bitness Ok, the reply is: http://www.freelists.org/post/luajit/crosscompiling-with-different-bitness,1 Essentially the first sentence shows that Mike Pall has not seen that we were talking about cross-compilation. It's not because you're running under a x86 kernel that you cannot generate binaries for x86-64. The second sentence shows that the cross-compilation support in luajit is not really nice. So the only solution that I see is to integrate the proposal of Jean-Christophe Plagnol-Villard that allows to have a kconfig option defining the host architecture, and then do some depends on magic to only show the package when we have the right architecture combination. Can you look into this? Best regards, Thomas -- Thomas Petazzoni, Free Electrons Kernel, drivers, real-time and embedded Linux development, consulting, training and support. http://free-electrons.com ^ permalink raw reply [flat|nested] 8+ messages in thread
* [Buildroot] [PATCH] luajit: new package 2012-07-17 8:11 ` Thomas Petazzoni @ 2012-07-17 10:10 ` François Perrad 0 siblings, 0 replies; 8+ messages in thread From: François Perrad @ 2012-07-17 10:10 UTC (permalink / raw) To: buildroot 2012/7/17 Thomas Petazzoni <thomas.petazzoni@free-electrons.com>: > Le Tue, 17 Jul 2012 10:07:21 +0200, > Fran?ois Perrad <francois.perrad@gadz.org> a ?crit : > >> > No, using TARGET_CROSS directly doesn't work when ccache is enabled. >> > ccache is only used in TARGET_CC and TARGET_CXX, that's why I've done >> > this this way. >> > >> > Can you look at the bitness problem? >> >> see http://www.freelists.org/post/luajit/crosscompiling-with-different-bitness > > Ok, the reply is: > http://www.freelists.org/post/luajit/crosscompiling-with-different-bitness,1 > > Essentially the first sentence shows that Mike Pall has not seen that > we were talking about cross-compilation. It's not because you're > running under a x86 kernel that you cannot generate binaries for x86-64. > > The second sentence shows that the cross-compilation support in luajit > is not really nice. > > So the only solution that I see is to integrate the proposal of > Jean-Christophe Plagnol-Villard that allows to have a kconfig option > defining the host architecture, and then do some depends on magic to > only show the package when we have the right architecture combination. > Can you look into this? > I applied this patch http://patchwork.ozlabs.org/patch/153235/ now, we could write : config BR2_PACKAGE_LUAJIT bool "luajit" depends on BR2_i386 || (BR2_x86_64 && BR2_HOSTARCH='x86_64') || BR2_powerpc || BR2_arm || BR2_armeb Fran?ois > Best regards, > > Thomas > -- > Thomas Petazzoni, Free Electrons > Kernel, drivers, real-time and embedded Linux > development, consulting, training and support. > http://free-electrons.com ^ permalink raw reply [flat|nested] 8+ messages in thread
end of thread, other threads:[~2012-07-17 10:10 UTC | newest] Thread overview: 8+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2012-06-02 8:49 [Buildroot] [PATCH] luajit: new package (v2) François Perrad 2012-07-14 22:47 ` Thomas Petazzoni 2012-07-14 22:50 ` [Buildroot] [PATCH] luajit: new package Thomas Petazzoni 2012-07-15 17:19 ` François Perrad 2012-07-15 18:00 ` Thomas Petazzoni 2012-07-17 8:07 ` François Perrad 2012-07-17 8:11 ` Thomas Petazzoni 2012-07-17 10:10 ` François Perrad
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox