-
-
Notifications
You must be signed in to change notification settings - Fork 5.5k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Unable to compile for Odroid C2 #4714
Comments
The errors are from luajit. Which I assume does not support 64bit ARM - there seems to be ongoing work to support it LuaJIT/LuaJIT#25 but I'm not sure if its ready for the upcoming luajit release (it would seem so from luvit/luv#112). |
Thanks for the infos! So once it'll be supported, I will be able to compile it normally ? |
You can also try building luajit yourself or maybe someone already packaged it for you (not sure what distro you are running). If you try this, see the wiki entry on Controlling the build for third-party dependencies , you can override the luajit library that is being used with -DUSE_BUNDLED_LUAJIT=OFF.
You can subscribe to events in the luajit github project. |
I'm running Debian 8 I think I'll subscribe to the project and wait for arm64 to be supported. |
There's an experimental ARM64 LuaJIT package available: https://packages.debian.org/experimental/libluajit-5.1-2 There's also an experimental Neovim package, btw (including ARM64 support): https://packages.debian.org/experimental/neovim |
I tried the experimental package for neovim first. I could not install it because of some dependencies issues. Thanks for you support |
You need to use DEPS_CMAKE_FLAGS or something like that for the Luajit part, see the Makefile. Also you might need to clean the CMake cache (make distclean) |
I moved DUSE_BUNDLED_LUAJIT to DEPS_CMAKE_FLAGS and now it seems to be looking for Luajit in /usr/include/.
Thanks for your help! |
@Helvethor no this one is slightly different and is probably a consequence of our luarocks recipe not expecting luajit 2.1 - the with-lua-include flag is not ours it can only be passed to luarocks. If you look inside third-party/cmake/BuildLuarocks.cmake there are at least a couple places where luajit-2.0 needs to be replaced with luajit-2.1 here is an example |
I went one step further, this error no longer shows up since I installed liblua5.1-0-dev. It still doesn't compile, see the error, something linked to "luv" and lua.h again.
I tried changing every occurence of "luajit-2.0" with "luajit-2.1" in the files found in thirdparty/cmake. It gave the above result. I will try with a fresh clone and liblua-5.1-0-dev installed soon. Edit : |
I would suggest to:
The main points:
|
Interesting, I'll try to do what you said soon. |
Forgot a thing: you need to install msgpack (https://github.com/msgpack/msgpack-c/) as well (version 1.0 minimum AFAIR, I have 1.1.0). This, libuv, lua and luarocks should be installable by the system package manager. |
@Helvethor try this. In DEPS_CMAKE_FLAGS add -DUSE_BUNDLED_BUSTED=OFF to disable luv/busted in third-party (you don't really need them unless you want unit tests). @ZyX-I your suggestion "should" work but I think LuaJit is marked as required in the main project CMakeLists.txt. this could be fixed to only enable unit tests if luajit is available |
I got a new odroid C2 and just built luvit! A small patch was required to luv to allow luajit to configure properly. luvit/luv@e4f2a80 There is still some issue in luvi's openssl asm code, but if you build with with the tim@odroid64:~/lit$ luvi -v
luvi v2.7.5
rex: 8.37 2015-04-28
libuv: 1.9.1
ssl: OpenSSL 1.0.2g 1 Mar 2016, lua-openssl 0.5.1
tim@odroid64:~/lit$ lit -v
lit version: 3.4.3
luvi version: v2.7.5
tim@odroid64:~/lit$ luvit -v
luvit version: 2.11.5
luvi version: v2.7.5
rex version: 8.37 2015-04-28
libuv version: 1.9.1
ssl version: OpenSSL 1.0.2g 1 Mar 2016, lua-openssl 0.5.1
tim@odroid64:~/lit$ uname -a
Linux odroid64 3.14.65-73 #1 SMP PREEMPT Tue Aug 2 08:21:02 BRT 2016 aarch64 aarch64 aarch64 GNU/Linux
tim@odroid64:~/lit$ file `which luvi`
/usr/local/bin/luvi: ELF 64-bit LSB executable, ARM aarch64, version 1 (SYSV), dynamically linked, interpreter /lib/ld-linux-aarch64.so.1, for GNU/Linux 3.7.0, BuildID[sha1]=b503f3aacc86539b1f21f68fa1d4f3d6cf57a643, not stripped
tim@odroid64:~/lit$ ls -lh `which luvi`
-rwxr-xr-x 1 tim tim 3.4M Aug 4 23:07 /usr/local/bin/luvi |
luv builds on odroid c2 per the last comment here (note to avoid confusion: we use "luv", not "luvi", nor "luvit"). So I think we can close this. |
Hi,
I started deploying neovim on my machines, all went well except for one. It's a Odroid-C2. Here is what appens when I execute make :
$ make
....
==== Building LuaJIT 2.0.4 ====
make[5]: Entering directory '/root/src/neovim/.deps/build/src/luajit/src'
lj_arch.h:55:2: error: #error "No support for this architecture (yet)"
#error "No support for this architecture (yet)"
^
lj_arch.h:287:2: error: #error "No target architecture defined"
#error "No target architecture defined"
^
lj_arch.h:55:2: error: #error "No support for this architecture (yet)"
#error "No support for this architecture (yet)"
^
lj_arch.h:287:2: error: #error "No target architecture defined"
#error "No target architecture defined"
^
lj_arch.h:55:2: error: #error "No support for this architecture (yet)"
#error "No support for this architecture (yet)"
^
lj_arch.h:287:2: error: #error "No target architecture defined"
#error "No target architecture defined"
^
lj_arch.h:55:2: error: #error "No support for this architecture (yet)"
#error "No support for this architecture (yet)"
^
lj_arch.h:287:2: error: #error "No target architecture defined"
#error "No target architecture defined"
^
lj_arch.h:55:2: error: #error "No support for this architecture (yet)"
#error "No support for this architecture (yet)"
^
lj_arch.h:287:2: error: #error "No target architecture defined"
#error "No target architecture defined"
^
lj_arch.h:55:2: error: #error "No support for this architecture (yet)"
#error "No support for this architecture (yet)"
^
lj_arch.h:287:2: error: #error "No target architecture defined"
#error "No target architecture defined"
^
Makefile:233: *** Unsupported target architecture. Stop.
...
Is there any way I could tell make about the target/architecture. And how do I find these infos?
Regards,
Vincent Pasquier
The text was updated successfully, but these errors were encountered: