Hardfloat compiler:
sudo apt-get install gcc-arm-linux-gnueabihf
sudo apt-get install g++-arm-linux-gnueabihf
sudo apt-get install g++-4.6-arm-linux-gnueabihf - Version Specific
Softfloat compiler:
sudo apt-get install gcc-arm-linux-gnueabi
sudo apt-get install g++-arm-linux-gnueabi
sudo apt-get install g++-4.6-arm-linux-gnueabi
Toolchains have a loose name convention like arch[-vendor][-os]-abi.
arch is for architecture: arm, mips, x86, i686...
vendor is tool chain supplier: apple,
os is for operating system: linux, none (bare metal)
abi is for application binary interface convention: eabi, gnueabi, gnueabihf
arm-none-linux-gnueabi and arm-linux-gnueabi is same thing. arm-linux-gcc is actually binary for gcc which produces objects for ARM architecture to be run on Linux with default configuration (abi) provided by toolchain.
arm-linux-gnueabi-readelf -d libOpenCL.so
Dynamic section at offset 0x18358 contains 26 entries:
Tag Type Name/Value
0x00000001 (NEEDED) Shared library: [librt.so.1]
0x00000001 (NEEDED) Shared library: [libc.so.6]
0x0000000e (SONAME) Library soname: [libOpenCL.so]
0x0000000c (INIT) 0x1f08
0x0000000d (FINI) 0x10adc
0x00000019 (INIT_ARRAY) 0x20348
0x0000001b (INIT_ARRAYSZ) 4 (bytes)
0x0000001a (FINI_ARRAY) 0x2034c
0x0000001c (FINI_ARRAYSZ) 4 (bytes)
0x00000004 (HASH) 0xb4
0x00000005 (STRTAB) 0xe44
0x00000006 (SYMTAB) 0x514
0x0000000a (STRSZ) 2820 (bytes)
0x0000000b (SYMENT) 16 (bytes)
0x00000003 (PLTGOT) 0x20448
0x00000002 (PLTRELSZ) 616 (bytes)
0x00000014 (PLTREL) REL
0x00000017 (JMPREL) 0x1ca0
0x00000011 (REL) 0x1a90
0x00000012 (RELSZ) 528 (bytes)
0x00000013 (RELENT) 8 (bytes)
0x6ffffffe (VERNEED) 0x1a70
0x6fffffff (VERNEEDNUM) 1
0x6ffffff0 (VERSYM) 0x1948
0x6ffffffa (RELCOUNT) 63
0x00000000 (NULL) 0x0
http://web.eecs.umich.edu/~prabal/teaching/eecs373/notes/notes-toolchain.pdf