why different compilers available for a beaglebone black

hai all,
i found there are so many compilers available for beaglebone black based on which os installed
after googled i found
[1] generic ----- arm-linux-gnueabi- ,
[2] angstrom ----- arm-angstrom-linux-gnueabi-
[3] linaro ----- arm-linux-gnueabihf-

and some others like

[4] arm-none-linux-gnu-
[5] arm-linux-gnu-

these are the compilers available to build a kernel for beaglebone black .

my ques

why should these many varieties available ??
any how the processors are same for all the beaglebone black… so a generic compiler is more than enough to build a os for beaglebone black.
i’m have bit confusion with these compiler’s.are these are different from one another…if so which one is the best suit for creating os for beaglebone black.

thanks&
regards
siva

Varieties and choices are always nice. It invites competition, innovation, improvement, etc. Most likely all of those will build the kernel. Picking the best one is up to you. If you’re interested in finding out which one is currently the best you could build a kernel with each and then run a set of benchmarks on them.

These are not competing products, these are all ports of GCC. GCC is a huge software package that takes considerable effort to build for a new platform, and a lot of choices to be made in how to configure it. For example, the “gnueabi” versions produce code compatible with a certain spec to allow for linking with libraries compiled the same way. The “hf” ones produce code that uses the hardware floating point instructions on some ARM processors but not others.

Personally, I think the Linaro folks have done a great job, and that version is quite stable, complete, and well-supported. It is also popular, making it more likely that your code will play well with others.

hai all
thanks … for your kind reply…

arm-linux-gnueabi- - software floating point

arm-angstrom-linux-gnueabi- hardly optimized version specifically for Cortex-A8 processors

arm-linux-gnueabihf- - hardware floating point