aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGravatar Jörg Krause <joerg.krause@embedded.rocks>2018-12-14 07:36:07 +0100
committerGravatar Peter Korsgaard <peter@korsgaard.com>2018-12-16 22:49:38 +0100
commit6d490efdbe841fc9c0a3e28b241becf4a42881cf (patch)
tree758c420c1cf70cf4d298250edccd28a39cb0da8f
parent0ac948c8607b3a611077e989307b83b539afc16a (diff)
downloadbuildroot-6d490efdbe841fc9c0a3e28b241becf4a42881cf.tar.gz
buildroot-6d490efdbe841fc9c0a3e28b241becf4a42881cf.tar.bz2
package/luvi: add upstream patch to fix runtime issue with CMake 3.12+
luvi fails to run when it was build with CMake 3.12+: ``` [string "return require('init')(...)"]:1: module 'init' not found: no field package.preload['init'] no file './init.lua' no file '/usr/share/luajit-2.0.5/init.lua' no file '/usr/local/share/lua/5.1/init.lua' no file '/usr/local/share/lua/5.1/init/init.lua' no file '/usr/share/lua/5.1/init.lua' no file '/usr/share/lua/5.1/init/init.lua' no file './init.so' no file '/usr/local/lib/lua/5.1/init.so' no file '/usr/lib/lua/5.1/init.so' no file '/usr/local/lib/lua/5.1/loadall.so' ``` Looking at link.txt for the luvi executable shows that `-rdynamic` is not set anymore in CMake 3.12. This has the effect, that symbols are missing in the `.dynsym` section in the binary. The patch, sets `ENABLE_EXPORTS` to true in CMakeLists.txt to force setting `-rdynamic` explicitly. Upstream status: b8781653dcb8815a3019a77baf4f3b7f7a255ebe Signed-off-by: Jörg Krause <joerg.krause@embedded.rocks> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com> (cherry picked from commit 56d2ac54dd6ff111cc1c6b2221903ccaf84de188) Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
-rw-r--r--package/luvi/0002-luvi-executable-needs-to-export-symbols.patch53
1 files changed, 53 insertions, 0 deletions
diff --git a/package/luvi/0002-luvi-executable-needs-to-export-symbols.patch b/package/luvi/0002-luvi-executable-needs-to-export-symbols.patch
new file mode 100644
index 0000000000..74b6537f9b
--- /dev/null
+++ b/package/luvi/0002-luvi-executable-needs-to-export-symbols.patch
@@ -0,0 +1,53 @@
+From 1ea2c1e372ab59b9a633a51f0dcefc24328528f1 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?J=C3=B6rg=20Krause?= <joerg.krause@embedded.rocks>
+Date: Mon, 10 Sep 2018 08:18:38 +0200
+Subject: [PATCH] luvi executable needs to export symbols
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Using CMake 3.12 running luvi fails with:
+
+```
+[string "return require('init')(...)"]:1: module 'init' not found:
+ no field package.preload['init']
+ no file './init.lua'
+ no file '/usr/share/luajit-2.0.5/init.lua'
+ no file '/usr/local/share/lua/5.1/init.lua'
+ no file '/usr/local/share/lua/5.1/init/init.lua'
+ no file '/usr/share/lua/5.1/init.lua'
+ no file '/usr/share/lua/5.1/init/init.lua'
+ no file './init.so'
+ no file '/usr/local/lib/lua/5.1/init.so'
+ no file '/usr/lib/lua/5.1/init.so'
+ no file '/usr/local/lib/lua/5.1/loadall.so'
+```
+
+Looking at link.txt for the luvi executable shows that `-rdynamic` is
+not set anymore in CMake 3.12. This has the effect, that symbols are
+missing in the `.dynsym` section.
+
+Therefore, set `ENABLE_EXPORTS` to true which set `-rdynamic` explicitly.
+
+Upstream status: b8781653dcb8815a3019a77baf4f3b7f7a255ebe
+
+Signed-off-by: Jörg Krause <joerg.krause@embedded.rocks>
+---
+ CMakeLists.txt | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index e141f8e..8219d0b 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -158,6 +158,7 @@ if("${CMAKE_SYSTEM_NAME}" MATCHES "Linux")
+ endif()
+
+ target_link_libraries(luvi ${LUVI_LIBRARIES} ${EXTRA_LIBS} ${CMAKE_THREAD_LIBS_INIT})
++set_target_properties(luvi PROPERTIES ENABLE_EXPORTS ON)
+
+ ###############################################################################
+ ## Installation Targets
+--
+2.19.1
+