[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: arm-linux-gnueabi-gcc intended target system?



Wookey [wookey@wookware.org] kirjoitti:
+++ antti.granqvist@kolumbus.fi [2010-03-21 01:24 +0200]:
> Hello,
>
> I have succesfully installed the crosscompiling toolchain and have a small program that needs to be run on an ipaq H3600. I think that is a rather old distribution from handhelds.org:
>
> uname -a
> Linux h3600 2.4.19-rmk6-pxa1-hh37 #1 Thu Apr 7 14:15:23 CEST 2005 armv4l unknow
>
> When I crosscompile my program like this:
> make CC="arm-linux-gnueabi-gcc -march=armv4 -mcpu=strongarm1100" aptering
> it compiles fine, but once I move the binary file to the ipaq it is not > recognized:
>
> granqvis@h3600:~$ ls -l
> -rwx--x--x    1 granqvis granqvis    29243 Mar 21 00:34 aptering
> lrwxrwxrwx    1 root     root           22 Nov 15  2025 ramdisk -> /mnt/ram/home
> /granqvis
> granqvis@h3600:~$ ./aptering
> -sh: ./aptering: not found
>
> Am I using the wrong toolchain here or what might be the problem?

yes. That very old familiar handhelds distro is the old ARM ABI.
arm-linux-gnueabi toolchain is new arm EABI. That are not compatible.

Thank you for pointing this out. I jumped headlessly into this project that was last touched long ago and did not clarify the bigger picture for myself.

> A long time ago I was able to crosscompile and succesfully run the same program.
> Unfortunately that crosscompiler has vanished since. From .bash_history > I could find that I used to compile with:
>
> make CC=arm-linux-gcc aptering

This is 'arm-linux-gnu-gcc' in new nomenclature. We still have that
toolchain for lenny, although an older one (2.95 vintage) might well suit
your distro better, as a toolchain implies a glibc version and you may
still have compatibility issues using gcc-4.1 to make binaries fro
handhelds familiar. We have been doing that for a long time using etch
toolchains and it largely works although libgcc1 versiosing can be
tiresome (you need to force-install things, but they still work).

Altough we run 4  real linux systems here at home,  I choose coLinux, hosted on an MS system, for this project. I got a clean etch image for coLinux and did the following arm-linux related updates:

apt-get install gcc-4.1-arm-linux-gnu

apt-get install libc-dev-arm-cross

and finally was able to produce a binary that runs on the ipaq H3600. Though I think at first glance it was not really obvious which packages were needed to get the crossompiling procedure to finish successfully, especially for one that is not familiar with the package naming conventions and dependencies.
Actually, I also reflashed the ipaq with newest image available from handhelds.org for that device. Since it still uses the old ABI I think it is important that these older environments are still available, if one wants to target for this particular device. Or is there a more recent distro around for ipaq H3600 somewhere else than in the handhelds project?

--
Antti

--



Reply to: