What you are noticing is called a tuple. Compilers in the Unix world are labeled with a string that defines:
- Architecture
- Vendor
- Kernel
- System
The one found at github is configured in such a way that it should be the most optimum for an ARM BCM2708 family running Linux using GNU EABI. The second compiler you list is from Ubuntu and is built for ARM systems running Linux using GNU EABI. Since the Ubuntu people are looking to cover a larger, more generic market they provide a more generic compiler.
So whats the difference?
When it comes to compilers, GCC as an example, there many times a hundred or more tuning parameters that change the way a binary file is created from source. Some parameters are required. For example selecting Architecture (ARM, x86, SPARC), Endianness (Bit, Little), Bit size (8, 16, 32) or if the CPU contains a Floating Point Unit (Hardware, Software). Some parameters are optional and provide a specific "optimization" that makes your code run more efficient on a system with a very specific design.
If you want to make a compiler that will cover a larger group of hardware you build with only required parameters and maybe a few optimization that you know everyone can use. If you want to make the most fine tuned compiler that only works with your specific CPU then you set all the optimization you can to match your exact hardware.
Sometimes a CPU optimized compiler will work with a different family but typically you would use a more generic compiler in that case.
More info on EABI can be found here
http://en.wikipedia.org/wiki/EABI#EABI
sorry, unimplemented: Thumb-1 hard-float VFP ABI
The compiler you've selected is configured to use Thumb supported commands to perform arithmetic using a Hardware Floating Point Unit.
A good explaination of what Thumb support is can be found here
http://www.eetimes.com/discussion/other ... -ARM-thumb
tl;dr To reduce space needed for some ARM instructions, a subset of commands were reduced from 32bit instructions to 16bit. Takes up less space but requires support.
Also, this is all on Linux machines - is cross-compiling possible from a Mac?
Cross compiling is possible across architectures and Operating Systems. It does require a little more setup but it is definitely a viable option when trying to build applications for a much slower system. Use up those CPU cycles on your fast Mac rather than wait a long time to build it native on the Pi. I've never built a cross compiler on a Mac but I'm sure someone in this forum will have more info on that.