Cross-compiling GMP for Android

Mike Mohr akihana at
Tue Jan 11 09:54:50 CET 2011

Good evening,

I've re-read section 2 of the GMP 5 manual in its entirely.  As far as
I can tell, I've done everything by the book.  If I've missed some set
of documentation other than what is in the GMP manual
( please point me to it and I will happily
read it.

At this point I believe there is a bug (maybe more than one) somewhere
in acinclude.m4.  The configure output tells me that it is compiling
for one architecture, then testing the resultant object file with the
cross compiler.  The lines referenced below are from acinclude.m4 in
the GMP 5.0.1 release tarball:

on line 1717, it looks like $CC is equal to 'gcc', and does not
cross-compile conftest.c for ARM.  I can patch this one to explicitly
use the correct gcc binary and it seems to work.
on line 2190 and elsewhere, GMP_TRY_ASSEMBLE seems to generate code
using the 'build' toolchain and test the resulting object file with
the 'target' toolchain

Unfortunately, this autoconf script is far more complex than anything
I've ever seen and despite 4 hours of work with the autotools
documentation I cannot fix it.  I will paste the script that I'm using
below.  Any help is sincerely appreciated.




export NDK="${HOME}/work/android-ndk-r5"
export TC="${NDK}/toolchains/arm-linux-androideabi-4.4.3/prebuilt/linux-x86/bin"
export PATH="${TC}:${PATH}"

# export CC="arm-linux-androideabi-gcc"

if [ ! -z "${1}" -a "$1" = "clean" ]
  rm -rf gmp-5.0.1
  tar xf gmp-5.0.1.tar.bz2

cd gmp-5.0.1

if [ ! -z "${1}" -a "$1" = "clean" ]
  autoreconf -sfi
  rm config.sub
  # add 'androideabi' to basic system types
  cp /usr/share/automake-1.11/config.sub .
  patch -p1 < ../autoconf-1.11.diff

./configure --build=x86_64-pc-linux-gnu --host=arm-linux-androideabi

On Mon, Jan 10, 2011 at 12:37 PM, Torbjorn Granlund <tg at> wrote:
> Did you read the section about cross compiling in the GMP manual?
> --
> Torbjörn

More information about the gmp-bugs mailing list