Page MenuHomePhabricator

efl 1.20.4 FTBFS on arm64: PANIC: unprotected error in call to Lua API (bad light userdata pointer)
Closed, InvalidPublic


efl 1.20.4 fails to build on arm64:

libtool: link: gcc -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -fvisibility=hidden -fpie -Wl,-z -Wl,relro -Wl,-z -Wl,now -Wl,-z -Wl,defs -Wl,--as-needed -fPIC -DPIC -pie -rdynamic -o bin/eeze/eeze_udev_test/.libs/eeze_udev_test bin/eeze/eeze_udev_test/bin_eeze_eeze_udev_test_eeze_udev_test-eeze_udev_test.o -fvisibility=hidden -fdata-sections -ffunction-sections -Wl,--gc-sections -fno-strict-aliasing -Wl,--as-needed -Wl,--no-copy-dt-needed-entries  -lm -ldl -lmount -ludev lib/emile/.libs/ lib/eet/.libs/ lib/ecore_con/.libs/ lib/ecore_file/.libs/ lib/efl/.libs/ lib/eo/.libs/ lib/ecore/.libs/ lib/eina/.libs/ -lpthread lib/eeze/.libs/ -lrt -pthread
/bin/bash ../libtool  --tag=CC   --mode=link gcc  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -fvisibility=hidden -fpie  -Wl,-z,relro -Wl,-z,now -Wl,-z,defs -Wl,--as-needed -lm -ldl -fPIC -DPIC -pie -rdynamic -o bin/eeze/eeze_sensor_test/eeze_sensor_test bin/eeze/eeze_sensor_test/bin_eeze_eeze_sensor_test_eeze_sensor_test-eeze_sensor_test.o -fvisibility=hidden -fdata-sections -ffunction-sections -Wl,--gc-sections -fno-strict-aliasing -Wl,--as-needed -Wl,--no-copy-dt-needed-entries    -lmount -ludev lib/emile/ lib/eet/ lib/ecore_con/ lib/ecore_file/ lib/efl/ lib/eo/ lib/ecore/ lib/eina/          -lpthread           lib/eeze/ -lrt 
ELUA_EOLIAN_LIBRARY_PATH=../src/lib/eolian/.libs ../src/bin/elua/elua -I/<<PKGBUILDDIR>>/src/bindings/luajit -C/<<PKGBUILDDIR>>/src/scripts/elua/core -M/<<PKGBUILDDIR>>/src/scripts/elua/modules -A/<<PKGBUILDDIR>>/src/scripts/elua/apps lualian -I. -o lib/ecore_audio/ecore_audio.eo.lua lib/ecore_audio/ecore_audio.eo
PANIC: unprotected error in call to Lua API (bad light userdata pointer)
Makefile:54391: recipe for target 'lib/ecore_audio/ecore_audio.eo.lua' failed
make[6]: *** [lib/ecore_audio/ecore_audio.eo.lua] Error 1
ametzler created this task.Oct 7 2017, 4:23 AM
zmike edited projects, added efl; removed enlightenment-git.Oct 9 2017, 4:14 AM
zmike reassigned this task from zmike to cedric.
zmike edited subscribers, added: zmike; removed: devilhorns, ManMower, stephenmhouston.

Googled a little bit and stumbled over

LuaJIT on 64 bit systems provides a limited range of 47 bits for the legacy lightuserdata data type. This is only relevant on x64 systems which use the negative part of the virtual address space in user mode, e.g. Solaris/x64, and on ARM64 systems configured with a 48 bit or 52 bit VA. Avoid using lightuserdata to hold pointers that may point outside of that range, e.g. variables on the stack. In general, avoid this data type for new code and replace it with (much more performant) FFI bindings. FFI cdata pointers can address the full 64 bit range.

jpeg added a subscriber: jpeg.Dec 17 2017, 5:38 PM
bu5hm4n reassigned this task from cedric to q66.Jun 11 2018, 1:13 AM
bu5hm4n triaged this task as High priority.
bu5hm4n added a subscriber: cedric.
zmike edited projects, added Restricted Project; removed efl.Jun 11 2018, 6:51 AM
q66 closed this task as Invalid.Jun 11 2018, 7:14 AM

Duplicate of T6406