arm-unknown-linux-gnueabi ABI selection
Michael Abbott
michael@araneidae.co.uk
Thu Aug 28 14:20:00 GMT 2008
The CT_ARCH_ABI selection in samples/arm-unknown-linux-gnueabi produces a
very cryptic bug: my experience was that nfs mount failed, indeed rpcinfo
fails, indeed the RPC calls clntudp_create() (and clnttcp_create()) fail.
It turns out that ABI=aapcs (the original setting) implies that enums are
variable sized, but unfortunately this confuses the glibc sunrpc
implementation. Seems we need aapcs-linux instead. THis is noted in
http://wiki.debian.org/ArmEabiPort#line-104
So this patch should do the trick:
--- old/samples/arm-unknown-linux-gnueabi/crosstool.config
+++ new/samples/arm-unknown-linux-gnueabi/crosstool.config
@@ -81,7 +83,7 @@
# CT_ARCH_DEFAULT_BE is not set
CT_ARCH_DEFAULT_LE=y
CT_ARCH_ARCH="armv5te"
-CT_ARCH_ABI="aapcs"
+CT_ARCH_ABI="aapcs-linux"
CT_ARCH_CPU="xscale"
CT_ARCH_TUNE="xscale"
CT_ARCH_FPU=""
Very interesting bug, quite tricky to track down. At first I was sure the
problem was with busybox, then I wondered whether I needed portmapper
running, but finally it became clear that rpcinfo itself was broken.
I've also noticed that the strace build with the debugger is a bit broken:
it doesn't understand some of the socket api calls. I've got a patch to
an independent copy of strace that seems to work better, so I'll see if it
can be worked into a patch for gdb (unless somebody already knows about
this).
--
For unsubscribe information see http://sourceware.org/lists.html#faq
More information about the crossgcc
mailing list