ljsyscall: new package
PATCH v4 1/1 ljsyscall: new package
An FFI implementation of the Linux and NetBSD kernel ABIs for LuaJIT.
---
Note: this package requires LuaJIT specifically, so there is a depends-on in the ljsyscall/Config.in, even though though it is included from a menu with a "if BR2_PACKAGE_LUA || BR2_PACKAGE_LUAJIT" test around it.
v3 -> v4:
- Rebase to master
- Bump version to 0.9
- Use github helper for download
- Account for shared directory
v2 -> v3:
- Config.in: add depends-on particular target architectures, like LuaJIT. Note that this is not a compile time requirement but rather based on what the package itself supports.
- Config.in: add comment stating when ljsyscall is hidden due to no LuaJIT
- ljsyscall.mk: simplify ifeq / else ifeq block
- ljsyscall.mk: use intermediate variable to simplify install lines
v1 -> v2:
- Removed unnecessary build time dependency on LuaJIT.
- Specify -m 0644 during installation, since .lua files need not be executable.
--- package/Config.in | 1 + package/ljsyscall/Config.in | 14 ++++++++++++++ package/ljsyscall/ljsyscall.mk | 37 +++++++++++++++++++++++++++++++++++++ 3 files changed, 52 insertions(+) create mode 100644 package/ljsyscall/Config.in create mode 100644 package/ljsyscall/ljsyscall.mk
package/Config.in +1 -0
@@ -369,6 +369,7 @@ source "package/cgilua/Config.in" source "package/copas/Config.in" source "package/coxpcall/Config.in" source "package/lbase64/Config.in" +source "package/ljsyscall/Config.in" source "package/lua-cjson/Config.in" source "package/lua-ev/Config.in" source "package/lua-msgpack-native/Config.in"
package/ljsyscall/Config.in new file +14 -0
@@ -0,0 +1,14 @@ +config BR2_PACKAGE_LJSYSCALL + bool "ljsyscall" + # ljsyscall is specifically for LuaJIT, not Lua. + depends on BR2_PACKAGE_LUAJIT + # ljsyscall is only available for some target architectures + depends on BR2_i386 || BR2_x86_64 || BR2_powerpc || BR2_arm || BR2_armeb + help + An FFI implementation of the Linux and NetBSD kernel ABIs for LuaJIT. + + http://github.com/justincormack/ljsyscall + +comment "ljsyscall needs LuaJIT" + depends on !BR2_PACKAGE_LUAJIT && (BR2_i386 || BR2_x86_64 || BR2_powerpc || BR2_arm || BR2_armeb) +
package/ljsyscall/ljsyscall.mk new file +37 -0
@@ -0,0 +1,37 @@ +################################################################################ +# +# ljsyscall +# +################################################################################ + +LJSYSCALL_VERSION = v0.9 +LJSYSCALL_SITE = $(call github,justincormack,ljsyscall,$(LJSYSCALL_VERSION)) +LJSYSCALL_LICENSE = MIT +LJSYSCALL_LICENSE_FILES = COPYRIGHT + +ifeq ($(BR2_i386),y) +LJSYSCALL_ARCH = x86 +else ifeq ($(BR2_x86_64),y) +LJSYSCALL_ARCH = x64 +else ifeq ($(BR2_powerpc),y) +LJSYSCALL_ARCH = ppc +else ifeq ($(LJSYSCALL_ARCH),) +LJSYSCALL_ARCH = $(BR2_ARCH) +endif + +LJSYSCALL_TARGET_DIR = $(TARGET_DIR)/usr/share/luajit-$(LUAJIT_VERSION) + +define LJSYSCALL_INSTALL_TARGET_CMDS + $(INSTALL) -d $(LJSYSCALL_TARGET_DIR)/syscall + $(INSTALL) -m 0644 -t $(LJSYSCALL_TARGET_DIR)/ $(@D)/syscall.lua + $(INSTALL) -m 0644 -t $(LJSYSCALL_TARGET_DIR)/syscall $(@D)/syscall/*.lua + + $(INSTALL) -d $(LJSYSCALL_TARGET_DIR)/syscall/linux/$(LJSYSCALL_ARCH) + $(INSTALL) -m 0644 -t $(LJSYSCALL_TARGET_DIR)/syscall/linux/ $(@D)/syscall/linux/*.lua + $(INSTALL) -m 0644 -t $(LJSYSCALL_TARGET_DIR)/syscall/linux/$(LJSYSCALL_ARCH) $(@D)/syscall/linux/$(LJSYSCALL_ARCH)/*.lua + + $(INSTALL) -d $(LJSYSCALL_TARGET_DIR)/syscall/shared + $(INSTALL) -m 0644 -t $(LJSYSCALL_TARGET_DIR)/syscall/shared/ $(@D)/syscall/shared/*.lua +endef + +$(eval $(generic-package))
Signature · 1 line
1.7.9.5
PATCH v4 1/1 ljsyscall: new package
Quoted 11 lines
Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line
"Danomi" == Danomi Manchego <[email protected]> writes:
An FFI implementation of the Linux and NetBSD kernel ABIs for LuaJIT.
Signed-off-by Danomi Manchego <[email protected]>---
Note: this package requires LuaJIT specifically, so there is a depends-on in the ljsyscall/Config.in, even though though it is included from a menu with a "if
BR2_PACKAGE_LUA||BR2_PACKAGE_LUAJIT" test around it.
Quoted 5 lines
v3 -> v4:
- Rebase to master
- Bump version to 0.9
- Use github helper for download
- Account for shared directory
Committed, thanks.
Signature · 1 line
Bye, Peter Korsgaard
PATCH v4 1/1 ljsyscall: new package
In reply to Danomi Manchego2014-01-17 Danomi Manchego <[email protected]>:
Quoted 85 lines
An FFI implementation of the Linux and NetBSD kernel ABIs for LuaJIT.
Signed-off-by Danomi Manchego <[email protected]>---
Note: this package requires LuaJIT specifically, so there is a depends-on in the ljsyscall/Config.in, even though though it is included from a menu with a "if
BR2_PACKAGE_LUA||BR2_PACKAGE_LUAJIT" test around it.v3 -> v4:
- Rebase to master
- Bump version to 0.9
- Use github helper for download
- Account for shared directoryv2 -> v3:
- Config.in: add depends-on particular target architectures, like LuaJIT. Note that this is not a compile time requirement but rather based on what the package itself supports.
- Config.in: add comment stating when ljsyscall is hidden due to no LuaJIT
- ljsyscall.mk: simplify ifeq / else ifeq block
- ljsyscall.mk: use intermediate variable to simplify install linesv1 -> v2:
- Removed unnecessary build time dependency on LuaJIT.
- Specify -m 0644 during installation, since .lua files need not be executable.--- package/Config.in | 1 + package/ljsyscall/Config.in | 14 ++++++++++++++ package/ljsyscall/ljsyscall.mk | 37 +++++++++++++++++++++++++++++++++++++ 3 files changed, 52 insertions(+) create mode 100644 package/ljsyscall/Config.in create mode 100644 package/ljsyscall/ljsyscall.mkpackage/Config.in +1
-0@@ -369,6 +369,7 @@ source "package/cgilua/Config.in" source "package/copas/Config.in" source "package/coxpcall/Config.in" source "package/lbase64/Config.in" +source "package/ljsyscall/Config.in" source "package/lua-cjson/Config.in" source "package/lua-ev/Config.in" source "package/lua-msgpack-native/Config.in"package/ljsyscall/Config.in new file +14
-0@@ -0,0 +1,14 @@ +config BR2_PACKAGE_LJSYSCALL + bool "ljsyscall" + # ljsyscall is specifically for LuaJIT, not Lua. + depends on BR2_PACKAGE_LUAJIT + # ljsyscall is only available for some target architectures + depends on BR2_i386 || BR2_x86_64 || BR2_powerpc || BR2_arm || BR2_armeb + help + An FFI implementation of the Linux and NetBSD kernel ABIs for LuaJIT. + + http://github.com/justincormack/ljsyscall + +comment "ljsyscall needs LuaJIT" + depends on !BR2_PACKAGE_LUAJIT && (BR2_i386 || BR2_x86_64 || BR2_powerpc || BR2_arm || BR2_armeb) +package/ljsyscall/ljsyscall.mk new file +12
-0@@ -0,0 +1,37 @@ +################################################################################ +# +# ljsyscall +# +################################################################################ + +LJSYSCALL_VERSION = v0.9 +LJSYSCALL_SITE = $(call github,justincormack,ljsyscall,$(LJSYSCALL_VERSION)) +LJSYSCALL_LICENSE = MIT +LJSYSCALL_LICENSE_FILES = COPYRIGHT + +ifeq ($(BR2_i386),y)
package/ljsyscall/ljsyscall.mk line 22
Quoted 10 lines
package/ljsyscall/ljsyscall.mk new file +10
-0+LJSYSCALL_ARCH = x86 +else ifeq ($(BR2_x86_64),y) +LJSYSCALL_ARCH = x64 +else ifeq ($(BR2_powerpc),y) +LJSYSCALL_ARCH = ppc +else ifeq ($(LJSYSCALL_ARCH),) +LJSYSCALL_ARCH = $(BR2_ARCH) +endif + +LJSYSCALL_TARGET_DIR = $(TARGET_DIR)/usr/share/luajit-$(LUAJIT_VERSION)
Danomi,
I think that the right destination is :
LJSYSCALL_TARGET_DIR = $(TARGET_DIR)/usr/share/lua/$(LUAINTERPRETER_ABIVER)
1) ljsyscall is designed for LuaJIT and PUC Lua + luaffi
2) the directory usr/share/luajit-2.0.2 seems to be reserved for LuaJIT itself (see INSTALL_LMOD in luajit.pc)
Fran?ois
Quoted 22 lines
package/ljsyscall/ljsyscall.mk new file +15
-1+ +define LJSYSCALL_INSTALL_TARGET_CMDS + $(INSTALL) -d $(LJSYSCALL_TARGET_DIR)/syscall + $(INSTALL) -m 0644 -t $(LJSYSCALL_TARGET_DIR)/ $(@D)/syscall.lua + $(INSTALL) -m 0644 -t $(LJSYSCALL_TARGET_DIR)/syscall $(@D)/syscall/*.lua + + $(INSTALL) -d $(LJSYSCALL_TARGET_DIR)/syscall/linux/$(LJSYSCALL_ARCH) + $(INSTALL) -m 0644 -t $(LJSYSCALL_TARGET_DIR)/syscall/linux/ $(@D)/syscall/linux/*.lua + $(INSTALL) -m 0644 -t $(LJSYSCALL_TARGET_DIR)/syscall/linux/$(LJSYSCALL_ARCH) $(@D)/syscall/linux/$(LJSYSCALL_ARCH)/*.lua + + $(INSTALL) -d $(LJSYSCALL_TARGET_DIR)/syscall/shared + $(INSTALL) -m 0644 -t $(LJSYSCALL_TARGET_DIR)/syscall/shared/ $(@D)/syscall/shared/*.lua +endef + +$(eval $(generic-package)) --1.7.9.5
_______________________________________________
buildroot mailing list
buildroot at busybox.net
http://lists.busybox.net/mailman/listinfo/buildroot
PATCH v4 1/1 ljsyscall: new package
Fran?ois,
Quoted 8 lines · Fran?ois Perrad
Quoted 1 line
+LJSYSCALL_TARGET_DIR = $(TARGET_DIR)/usr/share/luajit-$(LUAJIT_VERSION)
Danomi,
I think that the right destination is :
LJSYSCALL_TARGET_DIR = $(TARGET_DIR)/usr/share/lua/$(LUAINTERPRETER_ABIVER)1) ljsyscall is designed for LuaJIT and PUC Lua + luaffi
Looking through the README.md sections that mention Lua, it seems like the ability to work with non-LuaJIT is not a priority. E.g., "It now runs again with luaffi under standard Lua 5.2 (and probably 5.1, untested)." ("Runs again" makes it sound like it worked for while, lost compatibility, and maybe works again - does not inspire confidence.) Besides, buildroot does not [currently] have luaffi. So I don't think the Lua case is currently an option for a buildroot-generated system.
but regardless ...
Quoted 2 lines
2) the directory
usr/share/luajit-2.0.2seems to be reserved for LuaJIT itself (seeINSTALL_LMODin luajit.pc)
I wasn't aware of that - but the INSTALL_LMOD value does seem to imply that. Changing the path to /usr/share/lua wouldn't hurt, as the files can go any place that luajit will search for them at run time. So, okay, I'll test locally and then submit a patch to change this.
Thanks,
Danomi -
PATCH v4 1/1 ljsyscall: new package
Quoted 15 lines · On Thu, 30 Jan 2014 08:34:05 -0500 Danomi Manchego…
Fran?ois,
Quoted 10 lines · Fran?ois Perrad
Quoted 2 lines
+LJSYSCALL_TARGET_DIR =
$(TARGET_DIR)/usr/share/luajit-$(LUAJIT_VERSION)Danomi,
I think that the right destination is :
LJSYSCALL_TARGET_DIR=
$(TARGET_DIR)/usr/share/lua/$(LUAINTERPRETER_ABIVER)1) ljsyscall is designed for LuaJIT and PUC Lua + luaffi
Quoted 9 lines
Looking through the README.md sections that mention Lua, it seems like the ability to work with non-LuaJIT is not a priority. E.g., "It now runs again with luaffi under standard Lua 5.2 (and probably 5.1, untested)." ("Runs again" makes it sound like it worked for while, lost compatibility, and maybe works again - does not inspire confidence.) Besides, buildroot does not [currently] have luaffi. So I don't think the Lua case is currently an option for a buildroot-generated system.
Ah, but it easily could.
I have used Lua Alien with 5.1 -
http://alien.luaforge.net/
Which requires libffi -
https://sourceware.org/libffi/
My particular use-case was to interface with binary blobs.
I have not built them with Buildroot, but outside of Buildroot. So I do not have a BR patch handy to add them.
They required a bit of tweaking library pathnames to support a multi-lib (desktop) layout but it should be possible to deal with them inside of BR.
Mike