lua: fix pkg-config file
PATCH 1/2 lua: fix pkg-config file
When Lua is linked with additional libraries, these libraries should go into the pkg-config file as well.
Otherwise, linking swupdate with the lua library fails:
``` /home/buildroot/output/host/arm-buildroot-linux-gnueabihf/sysroot/usr/lib/liblua.so: undefined reference to `dlopen' /home/buildroot/output/host/arm-buildroot-linux-gnueabihf/sysroot/usr/lib/liblua.so: undefined reference to `dlclose' /home/buildroot/output/host/arm-buildroot-linux-gnueabihf/sysroot/usr/lib/liblua.so: undefined reference to `dlerror' /home/buildroot/output/host/arm-buildroot-linux-gnueabihf/sysroot/usr/lib/liblua.so: undefined reference to `dlsym' ```
--- package/lua/5.2.4/0004-lua-pc.patch | 4 +++- package/lua/5.3.4/0004-lua-pc.patch | 4 +++- package/lua/lua.mk | 8 ++++---- 3 files changed, 10 insertions(+), 6 deletions(-)
package/lua/5.2.4/0004-lua-pc.patch +3 -1
@@ -1,6 +1,8 @@ add lua.pc Signed-off-by: Francois Perrad <[email protected]> +[J?rg Krause: add @MYLIBS@] +Signed-off-by: J?rg Krause <[email protected]> Index: b/etc/lua.pc ===================================================================
@@ -34,7 +36,7 @@ Index: b/etc/lua.pc +Description: An Extensible Extension Language +Version: ${R} +Requires: -+Libs: -L${libdir} -llua -lm ++Libs: -L${libdir} -llua -lm @MYLIBS@ +Cflags: -I${includedir} + +# (end of lua.pc)
package/lua/5.3.4/0004-lua-pc.patch +3 -1
@@ -1,6 +1,8 @@ add lua.pc Signed-off-by: Francois Perrad <[email protected]> +[J?rg Krause: add @MYLIBS@] +Signed-off-by: J?rg Krause <[email protected]> Index: b/etc/lua.pc ===================================================================
@@ -34,7 +36,7 @@ Index: b/etc/lua.pc +Description: An Extensible Extension Language +Version: ${R} +Requires: -+Libs: -L${libdir} -llua -lm ++Libs: -L${libdir} -llua -lm @MYLIBS@ +Cflags: -I${includedir} + +# (end of lua.pc)
package/lua/lua.mk +4 -4
@@ -86,8 +86,8 @@ endef define LUA_INSTALL_STAGING_CMDS $(TARGET_MAKE_ENV) $(MAKE) INSTALL_TOP="$(STAGING_DIR)/usr" -C $(@D) install - $(INSTALL) -m 0644 -D $(@D)/etc/lua.pc \ - $(STAGING_DIR)/usr/lib/pkgconfig/lua.pc + sed -e "s/@MYLIBS@/$(LUA_MYLIBS)/g" $(@D)/etc/lua.pc \ + > $(STAGING_DIR)/usr/lib/pkgconfig/lua.pc endef define LUA_INSTALL_TARGET_CMDS
@@ -96,8 +96,8 @@ endef define HOST_LUA_INSTALL_CMDS $(HOST_MAKE_ENV) $(MAKE) INSTALL_TOP="$(HOST_DIR)" -C $(@D) install - $(INSTALL) -m 0644 -D $(@D)/etc/lua.pc \ - $(HOST_DIR)/lib/pkgconfig/lua.pc + sed -e "s/@MYLIBS@/$(HOST_LUA_MYLIBS)/g" $(@D)/etc/lua.pc \ + > $(HOST_DIR)/lib/pkgconfig/lua.pc endef $(eval $(generic-package))
Signature · 1 line
2.13.3
PATCH 2/2 swupdate: support for Lua 5.1 is broken
Before commit 87b6ac1478821351c92f7ca1c3154550e4713b28 support for Lua was always disabled by the default config file:
``` CONFIG_LUA is not set ```
The commit removed this setting and Lua support is now enabled if a Lua interpreter is enabled. As the swupdate build system uses pkg-config to check for the lua library by default (LUAPKG="lua") this throws a lot of undefined referenced in case LuaJIT is uses as Lua interpreter, e.g.:
``` corelib/lib.a(lua_interface.o): In function `l_info': lua_interface.c:(.text.l_info+0x14): undefined reference to `luaL_checklstring' ```
However, since version 2017.07 support for Lua 5.1 is broken in swupdate. Therefore, remove support for Lua 5.1 and LuaJIT in the swupdate package for now until upstream might fix this issue.
Reported upstream:
https://groups.google.com/forum/#!topic/swupdate/WAm8npAOd6o
Fixes:
http://autobuild.buildroot.net/results/df2/df2a71efe5af52d7b8721a355c49934b1be197a3/
http://autobuild.buildroot.net/results/400/4006225c8a47eb0b56399c83bd6d00406a0f62c2/
http://autobuild.buildroot.net/results/098/098f9d6cd905359adac4fb15e1d54c5022757325/
http://autobuild.buildroot.net/results/e5f/e5f6f99d96d9c661454335e7f931a03c3ae6a9e2/
http://autobuild.buildroot.net/results/f3a/f3a0abe8d5e35c85da40d20dab260c28506a0d4c/
--- package/swupdate/Config.in | 7 ++----- package/swupdate/swupdate.mk | 4 ++-- 2 files changed, 4 insertions(+), 7 deletions(-)
package/swupdate/Config.in +2 -5
@@ -4,7 +4,7 @@ config BR2_PACKAGE_SWUPDATE depends on BR2_USE_MMU # fork() # swupdate requires a parser and uses libconfig as default select BR2_PACKAGE_LIBCONFIG if !BR2_PACKAGE_JSON_C && \ - !BR2_PACKAGE_HAS_LUAINTERPRETER + !BR2_PACKAGE_LUA_5_2 && !BR2_PACKAGE_LUA_5_3 help swupdate provides a reliable way to update the software on an embedded system.
@@ -19,11 +19,8 @@ config BR2_PACKAGE_SWUPDATE use your own modified configuration, you have to select the necessary packages manually: - * Select BR2_PACKAGE_LUA or BR2_PACKAGE_LUAJIT if you want + * Select BR2_PACKAGE_LUA_5_2 or BR2_PACKAGE_LUA_5_3 if you want to have Lua support. - CONFIG_HANDLER_IN_LUA is not supported in LuaJIT or Lua 5.1. - Note that for LuaJIT support, you need to set - CONFIG_LUAVERSION="jit-5.1". * Select BR2_LIBCURL if you want to use the download feature. * Select BR2_PACKAGE_OPENSSL is you want to add encryption support. * Select BR2_PACKAGE_MTD if you want to use swupdate with UBI
package/swupdate/swupdate.mk +2 -2
@@ -39,8 +39,8 @@ else SWUPDATE_MAKE_ENV += HAVE_LIBCURL=n endif -ifeq ($(BR2_PACKAGE_HAS_LUAINTERPRETER),y) -SWUPDATE_DEPENDENCIES += luainterpreter host-pkgconf +ifeq ($(BR2_PACKAGE_LUA_5_2)$(BR2_PACKAGE_LUA_5_3),y) +SWUPDATE_DEPENDENCIES += lua host-pkgconf SWUPDATE_MAKE_ENV += HAVE_LUA=y else SWUPDATE_MAKE_ENV += HAVE_LUA=n
Signature · 1 line
2.13.3
PATCH 2/2 swupdate: support for Lua 5.1 is broken
Hello,
Quoted 12 lines · J?rg Krause
Before commit
87b6ac1478821351c92f7ca1c3154550e4713b28support for Lua was always disabled by the default config file:``` CONFIG_LUA is not set ```The commit removed this setting and Lua support is now enabled if a Lua interpreter is enabled. As the swupdate build system uses pkg-config to check for the lua library by default (LUAPKG="lua") this throws a lot of undefined referenced in case LuaJIT is uses as Lua interpreter, e.g.:
Quoted 8 lines
``` corelib/lib.a(lua_interface.o): In function `l_info': lua_interface.c:(.text.l_info+0x14): undefined reference to `luaL_checklstring' ```However, since version 2017.07 support for Lua 5.1 is broken in swupdate. Therefore, remove support for Lua 5.1 and LuaJIT in the swupdate package for now until upstream might fix this issue.
Isn't it better to revert the bump to 2017.07 instead of removing functionality that people could be relying on ?
Thomas
Signature · 3 lines
Thomas Petazzoni, CTO, Free Electrons Embedded Linux and Kernel engineering http://free-electrons.com
PATCH 2/2 swupdate: support for Lua 5.1 is broken
Hi Thomas,
Quoted 25 lines · Thomas Petazzoni
Hello,
Quoted 22 lines · J?rg Krause
Before commit
87b6ac1478821351c92f7ca1c3154550e4713b28support for Lua
was always disabled by the default config file:``` CONFIG_LUA is not set ```The commit removed this setting and Lua support is now enabled if a Lua
interpreter is enabled. As the swupdate build system uses pkg- config to check
for the lua library by default (LUAPKG="lua") this throws a lot of undefined referenced in case LuaJIT is uses as Lua interpreter, e.g.:``` corelib/lib.a(lua_interface.o): In function `l_info': lua_interface.c:(.text.l_info+0x14): undefined reference to `luaL_checklstring' ```
Quoted 8 lines
Quoted 5 lines
However, since version 2017.07 support for Lua 5.1 is broken in swupdate. Therefore,
remove support for Lua 5.1 and LuaJIT in the swupdate package for now
until upstream might fix this issue.Isn't it better to revert the bump to 2017.07 instead of removing functionality that people could be relying on ?
Lua 5.1 and LuaJIT were never supported if CONFIG_HANDLER_IN_LUA was selected. Upstream changed the functionality that the Lua code used when enabling CONFIG_HANDLER_IN_LUA is now used in more common places and therefore enabled if CONFIG_LUA is enabled.
That's why, I should have reword the commit message to: "Lua 5.1 is not supported" instead of "broken".
I am asking the Stefano Babic, the swupdate maintainer, if he is interested in enabling Lua 5.1 support. For now, swupdate is explicitly tested using Lua 5.3.
Best regards,
J?rg Krause
PATCH 2/2 swupdate: support for Lua 5.1 is broken
Hi Thomas,
Hi Jordan,
Quoted 45 lines · J?rg Krause
Hi Thomas,
Quoted 28 lines · Thomas Petazzoni
Hello,
Quoted 25 lines · J?rg Krause
Before commit
87b6ac1478821351c92f7ca1c3154550e4713b28support for
Lua
was always disabled by the default config file:``` CONFIG_LUA is not set ```The commit removed this setting and Lua support is now enabled if a
Lua
interpreter is enabled. As the swupdate build system uses pkg- config to check
for the lua library by default (LUAPKG="lua") this throws a lot of
undefined referenced in case LuaJIT is uses as Lua interpreter, e.g.:``` corelib/lib.a(lua_interface.o): In function `l_info': lua_interface.c:(.text.l_info+0x14): undefined reference to `luaL_checklstring' ```Quoted 8 lines
Quoted 5 lines
However, since version 2017.07 support for Lua 5.1 is broken in swupdate. Therefore,
remove support for Lua 5.1 and LuaJIT in the swupdate package for now
until upstream might fix this issue.Isn't it better to revert the bump to 2017.07 instead of removing functionality that people could be relying on ?
Lua 5.1 and LuaJIT were never supported if
CONFIG_HANDLER_IN_LUAwas selected. Upstream changed the functionality that the Lua code used when enablingCONFIG_HANDLER_IN_LUAis now used in more common places and therefore enabled ifCONFIG_LUAis enabled.
Quoted 8 lines
That's why, I should have reword the commit message to: "Lua 5.1 is not
supported" instead of "broken".I am asking the Stefano Babic, the swupdate maintainer, if he is interested in enabling Lua 5.1 support. For now, swupdate is explicitly
tested using Lua 5.3.
Stefano confirmed that he has no plans in adding support for Lua 5.1/LuaJIT himself, but patches are welcome [1].
@Jordan: You've added a patch to allow configuring swupdate with LuaJIT last year. If you're still interested in support for LuaJIT, please contact the swupdate maintainer on the swupdate mailing list.
[1] https://groups.google.com/d/msg/swupdate/WAm8npAOd6o/hPWMMkV_AAAJ
J?rg
Arnout Vandecappelle
AppliedPATCH 2/2 swupdate: support for Lua 5.1 is broken
In reply to Jörg KrauseQuoted 24 lines · J?rg Krause
Before commit
87b6ac1478821351c92f7ca1c3154550e4713b28support for Lua was always disabled by the default config file:``` CONFIG_LUA is not set ```The commit removed this setting and Lua support is now enabled if a Lua interpreter is enabled. As the swupdate build system uses pkg-config to check for the lua library by default (LUAPKG="lua") this throws a lot of undefined referenced in case LuaJIT is uses as Lua interpreter, e.g.:
``` corelib/lib.a(lua_interface.o): In function `l_info': lua_interface.c:(.text.l_info+0x14): undefined reference to `luaL_checklstring' ```However, since version 2017.07 support for Lua 5.1 is broken in swupdate. Therefore, remove support for Lua 5.1 and LuaJIT in the swupdate package for now until upstream might fix this issue.
Reported upstream:
https://groups.google.com/forum/#!topic/swupdate/WAm8npAOd6o
Quoted 8 lines
Fixes:
http://autobuild.buildroot.net/results/df2/df2a71efe5af52d7b8721a355c49934b1be197a3/
http://autobuild.buildroot.net/results/400/4006225c8a47eb0b56399c83bd6d00406a0f62c2/
http://autobuild.buildroot.net/results/098/098f9d6cd905359adac4fb15e1d54c5022757325/
http://autobuild.buildroot.net/results/e5f/e5f6f99d96d9c661454335e7f931a03c3ae6a9e2/
http://autobuild.buildroot.net/results/f3a/f3a0abe8d5e35c85da40d20dab260c28506a0d4c/Signed-off-by J?rg Krause <[email protected]>
Applied to master after updating the commit message as you suggested, thanks.
Regards,
Arnout
Signature · 6 lines
Arnout Vandecappelle arnout at mind be Senior Embedded Software Architect +32-16-286500 Essensium/Mind http://www.mind.be G.Geenslaan 9, 3001 Leuven, Belgium BE 872 984 063 RPR Leuven LinkedIn profile: http://www.linkedin.com/in/arnoutvandecappelle GPG fingerprint: 7493 020B C7E3 8618 8DEC 222C 82EB F404 F9AC 0DDF
PATCH 1/2 lua: fix pkg-config file
In reply to Jörg KrauseHello,
Quoted 5 lines · J?rg Krause
When Lua is linked with additional libraries, these libraries should go into the pkg-config file as well.
Otherwise, linking swupdate with the lua library fails:
Quoted 8 lines
``` /home/buildroot/output/host/arm-buildroot-linux-gnueabihf/sysroot/usr/lib/liblua.so: undefined reference to `dlopen' /home/buildroot/output/host/arm-buildroot-linux-gnueabihf/sysroot/usr/lib/liblua.so: undefined reference to `dlclose' /home/buildroot/output/host/arm-buildroot-linux-gnueabihf/sysroot/usr/lib/liblua.so: undefined reference to `dlerror' /home/buildroot/output/host/arm-buildroot-linux-gnueabihf/sysroot/usr/lib/liblua.so: undefined reference to `dlsym' ```Signed-off-by J?rg Krause <[email protected]>
Is this fixing an autobuilder issue ? I guess it should fix the ones you mention in PATCH 2/2, but obviously only for the supported Lua versions.
Thomas
Signature · 3 lines
Thomas Petazzoni, CTO, Free Electrons Embedded Linux and Kernel engineering http://free-electrons.com
PATCH 1/2 lua: fix pkg-config file
Hi Thomas,
Quoted 23 lines · Thomas Petazzoni
Hello,
Quoted 20 lines · J?rg Krause
When Lua is linked with additional libraries, these libraries should go
into the pkg-config file as well.Otherwise, linking swupdate with the lua library fails:
``` /home/buildroot/output/host/arm-buildroot-linux- gnueabihf/sysroot/usr/lib/liblua.so: undefined reference to `dlopen' /home/buildroot/output/host/arm-buildroot-linux- gnueabihf/sysroot/usr/lib/liblua.so: undefined reference to `dlclose' /home/buildroot/output/host/arm-buildroot-linux- gnueabihf/sysroot/usr/lib/liblua.so: undefined reference to `dlerror' /home/buildroot/output/host/arm-buildroot-linux- gnueabihf/sysroot/usr/lib/liblua.so: undefined reference to `dlsym' ```
Quoted 5 lines
Quoted 1 line
Signed-off-by J?rg Krause <[email protected]>Is this fixing an autobuilder issue ? I guess it should fix the ones you mention in PATCH 2/2, but obviously only for the supported Lua versions.
It is an autobuilder issue indeed, but it was not detected the date I wrote the patch. The autobuilder issues concerning swupdate until that date where Lua 5.1/LuaJIT related. I noticed the issue using the Linaro
Toolchain for armhf.
There is now a report of an autobuilder from yesterday:
http://autobuild.buildroot.net/results/1c3/1c349cc5904868e4def292b9fbfa
164828e46156/
Not all toolchains are producing the issue (only glibc ones?):
armv5-ctng-linux-gnueabi [ 1/47]: FAILED
armv7-ctng-linux-gnueabihf [ 2/47]: FAILED
br-aarch64-glibc [ 3/47]: FAILED
br-arcle-hs38 [ 4/47]: OK
br-arm-basic [ 5/47]: OK
br-arm-cortex-a9-glibc [ 6/47]: FAILED
br-arm-cortex-a9-musl [ 7/47]: OK
br-arm-full [ 9/47]: OK
br-arm-full-static [11/47]: OK
br-i386-pentium4-full [13/47]: OK
br-i386-pentium-mmx-musl [14/47]: OK
br-m68k-68040-full [16/47]: OK
br-microblazeel-full [17/47]: OK
br-mips32r6-el-hf-glibc [18/47]: FAILED
br-mips64-n64-full [19/47]: OK
br-mips64r6-el-hf-glibc [20/47]: FAILEDJ?rg
PATCH 1/2 lua: fix pkg-config file
In reply to Jörg KrauseQuoted 7 lines
Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line
"J?rg" == J?rg Krause <[email protected]> writes:
When Lua is linked with additional libraries, these libraries should go into the pkg-config file as well.
Otherwise, linking swupdate with the lua library fails:
Quoted 8 lines
``` /home/buildroot/output/host/arm-buildroot-linux-gnueabihf/sysroot/usr/lib/liblua.so: undefined reference to `dlopen' /home/buildroot/output/host/arm-buildroot-linux-gnueabihf/sysroot/usr/lib/liblua.so: undefined reference to `dlclose' /home/buildroot/output/host/arm-buildroot-linux-gnueabihf/sysroot/usr/lib/liblua.so: undefined reference to `dlerror' /home/buildroot/output/host/arm-buildroot-linux-gnueabihf/sysroot/usr/lib/liblua.so: undefined reference to `dlsym' ```Signed-off-by J?rg Krause <[email protected]>
Committed to 2017.02.x, thanks.
Signature · 1 line
Bye, Peter Korsgaard