Wookey [[email protected]] kirjoitti:
+++ [email protected] [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:
>
> granq...@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
> granq...@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

--



--
To UNSUBSCRIBE, email to [email protected]
with a subject of "unsubscribe". Trouble? Contact [email protected]
Archive: 
http://lists.debian.org/[email protected]

Reply via email to