1 |
On Wednesday 01 August 2007, Arturo Garcia wrote: |
2 |
> I am looking for resources that explain |
3 |
|
4 |
*shrug* if you find any, please post to the list for others |
5 |
|
6 |
> the differences between glibc, glibceabi, eabi, |
7 |
> softfloat, as you can see... I'm a bit lost. |
8 |
|
9 |
there are two big libc players: |
10 |
- glibc: full featured (all of POSIX and then some) |
11 |
- uclibc: meant to be small, but lacks some features (critically so for some) |
12 |
|
13 |
in the arm world, there are two ABIs: |
14 |
- oabi: "Old ABI": the classic ARM ABI |
15 |
- eabi: "Embedded ABI": the new ARM ABI |
16 |
EABI is "better" in terms of size and being able to address design decisions |
17 |
that ended up being problematic in OABI ... something that you really only |
18 |
find out about after using the same ABI for years and years. unfortunately, |
19 |
the support status of EABI can be a bit tipsy: you have to have very recent |
20 |
versions of everything (binutils, gcc, libc, kernel) or you can forget it. |
21 |
|
22 |
in the Linux world, there are a couple of ways to tackle the FPU issue: |
23 |
- put a hardware FPU on the chip/board and generate floating point |
24 |
instructions in userspace, thus increasing BOM while decreasing software |
25 |
development. |
26 |
- include software FPU emulation in the kernel and generate floating point |
27 |
instructions in userspace, thus (significantly) decreasing runtime |
28 |
performance will emulating these floating point operations in kernel space, |
29 |
but again you save time/money on software development. |
30 |
- build userspace with a softfloat toolchain, thus replacing floating point |
31 |
math with fixed point math and taking a runtime performance (but not nearly |
32 |
as bad as the kernel emulation) and continue to save time/money on software |
33 |
development. |
34 |
- dont use floating point. sometimes easy, sometimes hard, sometimes already |
35 |
done for you. depending on the project, this can be a huge sink in software |
36 |
development costs. typically audio/video projects get screwed here: everyone |
37 |
*wants* fixed point algorithms to do audio/video processing, but the large |
38 |
majority of people are fuckers and dont want to (1) help or (2) contribute |
39 |
their work back. |
40 |
|
41 |
so for ARM, the default environment is hardfloat userland with FPU emulation |
42 |
enabled in the kernel. if you want to go the softfloat route (which actually |
43 |
shouldnt be too shabby nowadays), just build a *-softfloat-* toolchain. |
44 |
|
45 |
HTH |
46 |
-mike |