Compilation problems for ARM

Discussion of chess software programming and technical issues.

Moderators: hgm, Rebel, chrisw

Patrice Duhamel
Posts: 193
Joined: Sat May 25, 2013 11:17 am
Location: France
Full name: Patrice Duhamel

Compilation problems for ARM

Post by Patrice Duhamel »

Someone reported that Cheese 1.9.1 ARM 32 bits (pie or not pie) doesn't run on Android, but the 64 bit version and previous versions work.

I don't understand the problem, for both version I used Android Cmake toolchain, with Android NDK r13b.
https://github.com/taka-no-me/android-cmake
I compile for armeabi-v7a, with native API level = 9.

I thought it was a problem with a Linux mint update (I compile it on Linux Mint 18.2), But after trying on a new virtual machine with Linux 18.0, it didn't work.

How to find the differences between cheese-19-arm-32 and cheese-191-arm-32 ?

Another question : Is it possible to build a Raspberry Pi version without a Raspberry Pi ?
I tried to follow some tutorials to use a Raspberry Pi emulator, or do cross compilation, but it was not able to make it work.
Ras
Posts: 2487
Joined: Tue Aug 30, 2016 8:19 pm
Full name: Rasmus Althoff

Re: Compilation problems for ARM

Post by Ras »

Patrice Duhamel wrote:I compile for armeabi-v7a, with native API level = 9.
That means it is unlikely to run under Android 5.0 because PIE is mandatory, but only supported with API level 16 or higher. Btw., your NDK is a bit outdated, r15b is available. Maybe the compile options from my other thread could be useful (scroll a bit down). Maybe -m32 is missing somewhere for the 32 bit build in compiling or linking.

http://talkchess.com/forum/viewtopic.php?t=64553
Another question : Is it possible to build a Raspberry Pi version without a Raspberry Pi ?
Yes, I've been doing that successfully, albeit under Windows. See here:

http://gnutoolchains.com/raspberry/

It should be possible to set up something similar under Linux, and I'm confident that there's something already available.
Patrice Duhamel
Posts: 193
Joined: Sat May 25, 2013 11:17 am
Location: France
Full name: Patrice Duhamel

Re: Compilation problems for ARM

Post by Patrice Duhamel »

Ras wrote: That means it is unlikely to run under Android 5.0 because PIE is mandatory, but only supported with API level 16 or higher. Btw., your NDK is a bit outdated, r15b is available.
I found the problem, I forgot the option to compile with -fPIE -pie, now it works.

I see that Android NDK have a cmake toolchain based on Android cmake, but it doesn't work, in gcc mode cmake say that the commpiler is not able to compile a simple program, and in clang mode the compiler ouput an error on #include <string>.
Someone here already used cmake and the Android NDK toolchain ?
Ras
Posts: 2487
Joined: Tue Aug 30, 2016 8:19 pm
Full name: Rasmus Althoff

Re: Compilation problems for ARM

Post by Ras »

Patrice Duhamel wrote:in gcc mode cmake say that the commpiler is not able to compile a simple program
Android GCC has been abandoned in favour of Clang. I wasn't able to compile anything with Android GCC, and it is totally outdated (4.9).
in clang mode the compiler ouput an error on #include <string>
Looks like you have to set up the include directory in the makefile. I'm just building with batch files resp. shell scripts.