Ran,
Yep, definitely a bit frustrating. Seems to be common in the linux world, there are just too many ways to do things and too much hardware to support!
I did a little poking around, and although I'm not sure what your end goal is, but I think cross tools in oe would work (as would straight Linaro presumably).
Here's what I found (which confirms what you'd thought), but take it with a gain of salt as I don't have a ton of experience here:
- at boot Linaro is noted as the version of gcc (I found this interesting..I didn't know Linaro is just a gcc variant)
gcc version 4.7.3 20130205 (prerelease) (Linaro GCC 4.7-2013.02-01)
- gcc on the BBB reports that it is gnueabi via "-dumpmachine"
- gcc on the BBB also reports it is using hf (hard float) via "-dumpspecs" under *multilib_defaults:
marm mlittle-endian mfloat-abi=hard mno-thumb-interwork
So I'd be inclined to just try it...hard vs soft float probably should both work and my research indicated BBB's cortexA has hard-float. Also statically linking libraries would obviously further decouple from onboard libs (obviously at the cost of a larger binary).
FYI, you could try compiling on both your cross host and the BBB to see if the calling convention is the same. I'm sure there's a better way, but a quick google showed the following would output C-assembly intermix:
gcc -c -g -Wa,-a,-ad main.c > main.s
I'll be interested to see what you find as I'm eventually going to be trying to cross compiles, but a couple of other things are on the list first.
-Dale
ps. it seems buildroot also uses (or can use) Linaro