Actions

EmSys

Difference between revisions of "Toolchain - Name convention"

From EdWiki

m (Examples)
m (Toolchain - Name convention)
Line 1: Line 1:
==Toolchain - Name convention==
+
__NOTOC__
 +
== Toolchain - Name convention ==
  
 
Toolchain has a name convention:
 
Toolchain has a name convention:
Line 13: Line 14:
 
*:eabi, gnueabi, gnueabihf
 
*:eabi, gnueabi, gnueabihf
  
===Examples===
+
=== Examples ===
  
*'''arm-none-eabi'''
+
==== arm-none-eabi ====
*:This toolchain targets the ARM architecture, has no vendor, does not target an operating system (i.e. targets a "bare metal" system), and complies with the ARM eabi. (Note) arm-elf and arm-none-eabi just use two versions of the ARM abi. The eabi toolchain uses a newer revision, but could also be called arm-elf-eabi, as it generates elf too.
+
This toolchain targets the ARM architecture, has no vendor, does not target an operating system (i.e. targets a "bare metal" system), and complies with the ARM eabi. (Note) arm-elf and arm-none-eabi just use two versions of the ARM abi. The eabi toolchain uses a newer revision, but could also be called arm-elf-eabi, as it generates elf too.
*'''i686-apple-darwin10-gcc-4.2.1'''
+
==== i686-apple-darwin10-gcc-4.2.1 ====
*:This toolchain targets the Intel i686 architecture, the vendor is Apple, and the target OS is Darwin version 10.
+
This toolchain targets the Intel i686 architecture, the vendor is Apple, and the target OS is Darwin version 10.
*'''arm-none-linux-gnueabi'''
+
==== arm-none-linux-gnueabi ====
*:The toolchain that can be installed in Debian-based systems using a package manager like apt (the package is called gcc-arm-linux-gnueabi). This toolchain targets the ARM architecture, has no vendor, creates binaries that run on the Linux operating system, and uses the GNU EABI. In other words, it is used to target ARM-based Linux systems.
+
The toolchain that can be installed in Debian-based systems using a package manager like apt (the package is called gcc-arm-linux-gnueabi). This toolchain targets the ARM architecture, has no vendor, creates binaries that run on the Linux operating system, and uses the GNU EABI. In other words, it is used to target ARM-based Linux systems.
*'''arm-linux-gcc'''
+
==== arm-linux-gcc ====
*:This is actually binary for gcc which produces objects for ARM architecture to be run on Linux with default configuration (abi) provided by toolchain.
+
This is actually binary for gcc which produces objects for ARM architecture to be run on Linux with default configuration (abi) provided by toolchain.
*'''i686-unknown-linux-gnu'''
+
==== i686-unknown-linux-gnu ====
*:32-bit GNU/linux
+
32-bit GNU/linux
*'''arm-eabi'''
+
==== arm-eabi ====
*:Android ARM compiler
+
Android ARM compiler
*'''x86_64-w64-mingw32'''
+
==== x86_64-w64-mingw32 ====
*:x86_64 architecture means AMD64, w64 is actually mingw-w64 used as a "vendor" here, mingw32 is the same as win32 API for gcc's perspective.
+
x86_64 architecture means AMD64, w64 is actually mingw-w64 used as a "vendor" here, mingw32 is the same as win32 API for gcc's perspective.
*'''i686-pc-msys'''
+
==== i686-pc-msys ====
*:32-bit, "pc" is a generic name, msys binary
+
32-bit, "pc" is a generic name, msys binary

Revision as of 08:32, 6 March 2020

Toolchain - Name convention

Toolchain has a name convention:

arch[-vendor][-os]-abi
  • arch - architecture
    arm, mips, x86, i686, etc.
  • vendor - tool chain supplier
  • os - operating system
    linux, none (bare metal)
  • abi - application binary interface
    eabi, gnueabi, gnueabihf

Examples

arm-none-eabi

This toolchain targets the ARM architecture, has no vendor, does not target an operating system (i.e. targets a "bare metal" system), and complies with the ARM eabi. (Note) arm-elf and arm-none-eabi just use two versions of the ARM abi. The eabi toolchain uses a newer revision, but could also be called arm-elf-eabi, as it generates elf too.

i686-apple-darwin10-gcc-4.2.1

This toolchain targets the Intel i686 architecture, the vendor is Apple, and the target OS is Darwin version 10.

arm-none-linux-gnueabi

The toolchain that can be installed in Debian-based systems using a package manager like apt (the package is called gcc-arm-linux-gnueabi). This toolchain targets the ARM architecture, has no vendor, creates binaries that run on the Linux operating system, and uses the GNU EABI. In other words, it is used to target ARM-based Linux systems.

arm-linux-gcc

This is actually binary for gcc which produces objects for ARM architecture to be run on Linux with default configuration (abi) provided by toolchain.

i686-unknown-linux-gnu

32-bit GNU/linux

arm-eabi

Android ARM compiler

x86_64-w64-mingw32

x86_64 architecture means AMD64, w64 is actually mingw-w64 used as a "vendor" here, mingw32 is the same as win32 API for gcc's perspective.

i686-pc-msys

32-bit, "pc" is a generic name, msys binary