Difference between arm-linux-gnueabi-gcc and arm-none-eabi-gcc in ubuntu

Asked by Andre Wagner on 2018-05-08

Hi,
I'm new with arm compiler tool chains. I discovered that ubuntu got two different arm toolchains: gcc-arm-embedded (from Debian and your ppa) and gcc-arm-linux-gnueabi (directly maintained by canonical). I also discovered that gcc-arm-embedded latest version refers to gcc version 7, but gcc-arm-linux-gnueabi refers to gcc version 8.

Now I got following questions:
1. What is the difference between the tool chains?
2. Why is it better to use gcc-arm-embedded tool chain even it has an older gcc base?

Thank you in advance,
André

Question information

Language:
English Edit question
Status:
Solved
For:
GNU Arm Embedded Toolchain Edit question
Assignee:
No assignee Edit question
Solved by:
Tejas Belagod
Solved:
2018-05-09
Last query:
2018-05-09
Last reply:
2018-05-08
Tejas Belagod (belagod-tejas) said : #1

Hi Andre,

gcc-arm-embedded is targeted to generate code for R and M profile bare-metal ARM targets. gcc-arm-linux-gnueabi targets A-profile linux hosted ARM targets.

The Embedded toolchain release follows the upstream stable releases with a time gap, hence it 'seems' old, but its really not.

I hope that answers your question.

Thanks,
Tejas.

Andre Wagner (andre.wagner) said : #2

Thanks for your answer.

Since I have to build a setup for A and M profile ARM, I additionally need to know if following assumptions are correct:
1. gcc-arm-embedded is R and M profile optimized upstream gcc, but A profile still works. The optimizations are merged upstream.
2. arm-linux-gnueabi is A profile optimized upstream gcc, but R and M profile still works. The optimizations are merged upstream.

Again, thank you for your answers in advance.

Best Tejas Belagod (belagod-tejas) said : #3

> 1. gcc-arm-embedded is R and M profile optimized upstream gcc, but A profile still works. The optimizations are merged upstream.

A profile still works, but it may not be optimized or fully tested. The multilibs are certainly not optimized for A-profile.

>2. arm-linux-gnueabi is A profile optimized upstream gcc, but R and M profile still works. The optimizations are merged upstream.

Sorry, you will need to contact the distributors of this toolchain, presumably Linaro?

Thanks,
Tejas.

Andre Wagner (andre.wagner) said : #4

Thanks Tejas Belagod, that solved my question.