This is the mail archive of the crossgcc@sourceware.org mailing list for the crossgcc project.

See the CrossGCC FAQ for lots more information.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

arm-unknown-linux-gnueabi ABI selection


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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]