Cross compiling for ARM9 doesn't work
Added by samweber over 15 years ago
1. I have carefully set the CC, STRIP, and RANLIB environment variables to the ARM binaries.
2. make clean
3. ./configure --target=arm-linux --disable-static --enable-shared --without-zlib --without-bzip2
4. make
Resulting binary runs on the X86 host, is worthless on the ARM9 target. PLEASE HELP ME.
Replies (3)
RE: Cross compiling for ARM9 doesn't work - Added by penma over 15 years ago
./configure --help says
--host=HOST cross-compile to build programs to run on HOST [BUILD]
--target=TARGET configure for building compilers for TARGET [HOST]
use --host. lighttpd isn't a compiler.
RE: Cross compiling for ARM9 doesn't work - Added by samweber over 15 years ago
lighttpd isn't a compiler.
Thanks for that.
I had tried --host=HOST in one of my previous attempts and came up with the same results so I decided to apply the canonical use of the term target to see if that made a difference.
After a lot more smashing my head against this, I finally got an ARM9 binary out of the build process. Here's where I went wrong:
Bad way:
- CC=armv5l-linux-gcc
- STRIP=armv5l-linux-strip
- RANLIB=armv5l-linux-ranlib
- ./configure --host=arm-linux --disable-static --enable-shared --without-zlib --without-bzip2
You get an x86 executable from this procedure every time.
Good way:
- CC=armv5l-linux-gcc RANLIB=armv5l-linux-ranlib STRIP=armv5l-linux-strip ./configure --host=arm-linux --disable-static --enable-shared --without-zlib --without-bzip2
You get an ARM binary. We'll see tomorrow whether or not progress can now be made (on the target, er host, I guess).
The TutorialInstallation link is no longer broken but the page contains a single unhelpful line.
RE: RE: Cross compiling for ARM9 doesn't work - Added by lightning over 14 years ago
The reason "bad way" does not work is that you need to export those env vars otherwise they are not seen by the implicit shell that runs configure command line. eg.
You should also use a tuple like arm-unknown-linux not just arm-linux.