What is the difference between arm-linux-gcc and arm-none-linux-gnueabi
Asked Answered
H

1

75

What is the difference between arm-linux-gcc and arm-none-linux-gnueabi and arm-linux-gnueabi toolchains?

Do they compile differently?

Homophone answered 10/12, 2012 at 8:55 Comment(1)
L
107

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

For your question, 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.

Some nice reading: Toolchains.

Luganda answered 10/12, 2012 at 9:33 Comment(7)
This might be true, but really, there's not enough information to be sure. You need to know about the provenance of the toolchain. Non-"gnueabi" toolchains are probably quite rare, however.Catechol
Are you talking about arm-linux-gcc? or can you clarify?Luganda
It's worth pointing out that tool-chains are configured with default header and library search paths. When cross-compiling, these should be pointing at the target image not the development machine's own headers and libraries. Thus you can easily end up with a compiler which reports its specification as arm-none-linux-gnueabi that actually compile with slightly different results. You can check this with gcc -print-sysrootUnheardof
@auselen: Yes, arm-linux seems ambiguous to me. I've not checked, and it might be that in current gcc that's a synonym, but I'll bet it's meant something different in the past. Besides, the triplet only specifies the default config, and the toolchain could have been built with other settings enabled; in that case, I would choose the generic triplet rather than have it lie.Catechol
@Catechol if I understand you correctly, you say arm-linux-gcc executes default settings as toolchain have been built. yes you are definitively right.Luganda
@Marko thanks for the tip. Toolchains are quite complicated as you point. I just tried to scratch the surface.Luganda
Seems the link to Toolchain is web.eecs.umich.edu/~prabal/teaching/eecs373-f12/notes/…Tillman

© 2022 - 2024 — McMap. All rights reserved.