Size: 16701
Comment: Use ASCII minus sign to separate triplet parts. Not visible, but may help scripts.
|
Size: 18652
Comment: add anchors
|
Deletions are marked like this. | Additions are marked like this. |
Line 23: | Line 23: |
Line 24: | Line 25: |
|| aarch64-linux-gnu || linux || ARM64 || little || 64 || aarch64 Linux Platform || AAPCS64 (ARM IHI 005A)<<FootNote(http://infocenter.arm.com/help/topic/com.arm.doc.ihi0055a/IHI0055A_aapcs64.pdf)>><<BR>>ELF for the ARM 64-bit Architecture<<FootNote(http://infocenter.arm.com/help/topic/com.arm.doc.ihi0056a/IHI0056A_aaelf64.pdf)>> || || aarch64_be-linux-gnu || linux || ARM64 || big || 64 || aarch64 Linux Platform || AAPCS64 (ARM IHI 005A)<<FootNote(http://infocenter.arm.com/help/topic/com.arm.doc.ihi0055a/IHI0055A_aapcs64.pdf)>><<BR>>ELF for the ARM 64-bit Architecture<<FootNote(http://infocenter.arm.com/help/topic/com.arm.doc.ihi0056a/IHI0056A_aaelf64.pdf)>> || || aarch64-linux-gnu_ilp32 || linux || ARM64 || little || 32 || aarch64 Linux Platform || || || aarch64_be-linux-gnu_ilp32 || linux || ARM64 || big || 32 || aarch64 Linux Platform || || || alpha-linux-gnu || linux || Alpha || little || 64 || glibc, Tru64 calling standard || Tru64 Calling Standard<<FootNote(http://www.openwatcom.org/ftp/devel/docs/alpha%20calling%20standard.pdf)>> || || arm-linux-gnu || linux || ARM || little || 32 || Old ARM ABI || APCS (ARM DUI 0041 chapter 9)<<FootNote(http://infocenter.arm.com/help/topic/com.arm.doc.dui0041c/BGBGFIDA.html)>>|| || arm-linux-gnueabi || linux || ARM || little || 32 || ARM EABI, soft-float || AAPCS (ARM IHI 0042D)<<FootNote(http://infocenter.arm.com/help/topic/com.arm.doc.ihi0042a/IHI0042A_aapcs.pdf)>><<BR>>ARM GNU/Linux ABI Supplement<<FootNote(https://sourcery.mentor.com/GNUToolchain/kbentry39)>> || || arm-linux-gnueabihf || linux || ARM || little || 32 || ARM EABI, hard-float || AAPCS (ARM IHI 0042D)<<FootNote(http://infocenter.arm.com/help/topic/com.arm.doc.ihi0042a/IHI0042A_aapcs.pdf)>> and<<BR>>'''XXXXX (TBD)''' || || armeb-linux-gnueabi || linux || ARM || big || 32 || ARM EABI, soft-float || AAPCS (ARM IHI 0042D)<<FootNote(http://infocenter.arm.com/help/topic/com.arm.doc.ihi0042a/IHI0042A_aapcs.pdf)>><<BR>>ARM GNU/Linux ABI Supplement<<FootNote(https://sourcery.mentor.com/GNUToolchain/kbentry39)>> || || armeb-linux-gnueabihf || linux || ARM || big || 32 || ARM EABI, hard-float || AAPCS (ARM IHI 0042D)<<FootNote(http://infocenter.arm.com/help/topic/com.arm.doc.ihi0042a/IHI0042A_aapcs.pdf)>> and<<BR>>'''XXXXX (TBD)''' || || hppa-linux-gnu || linux || PA-RISC || big || 32 || PA-RISC Linux 32-bit ELF || parisc-linux toolchain documents<<FootNote(http://wiki.parisc-linux.org/ToolChain)>> || || i386-gnu || Hurd || IA-32 || little || 32 || Hurd/IA-32 || ia32 functions calls<<FootNote(http://refspecs.linuxbase.org/elf/abi386-4.pdf)>><<BR>>LSB Bug 3268<<FootNote(https://lsbbugs.linuxfoundation.org/show_bug.cgi?id=3268)>><<BR>>OS interface '''XXXXX''' undocumented || || i386-linux-gnu || linux || IA-32 || little || 32 || LSB IA32 || SCO Developer Specifications<<FootNote(http://www.sco.com/developers/devspecs/)>><<BR>>Intel386 psABI<<FootNote(http://refspecs.linuxbase.org/elf/abi386-4.pdf)>><<BR>>LSB Core-IA32<<FootNote(http://refspecs.linuxbase.org/LSB_4.1.0/LSB-Core-IA32/LSB-Core-IA32/elf-ia32.html)>><<BR>>LSB Bug 3268<<FootNote(https://lsbbugs.linuxfoundation.org/show_bug.cgi?id=3268)>> || || ia64-linux-gnu || linux || IA-64 || little || 64 || LSB IA64 || Intel Itanium SysV psABI<<FootNote(http://refspecs.linuxbase.org/elf/IA64-SysV-psABI.pdf)>><<BR>>LSB Core-IA64<<FootNote(http://refspecs.linuxbase.org/LSB_4.1.0/LSB-Core-IA64/LSB-Core-IA64/elf-ia64.html)>> || || i386-kfreebsd-gnu || FreeBSD || IA-32 || little || 32 || [[Debian_GNU/kFreeBSD|glibc kFreeBSD IA-32]] || '''XXXXX''' undocumented || || m68k-linux-gnu || linux || MC68000 || big || 32 || m68k SysV ABI || ISBN: 978-0138776633 || || mips-linux-gnu || linux || MIPS32r2+FPXX || big || 32 || MIPS o32 ABI || MIPS psABI<<FootNote(ftp://www.linux-mips.org/pub/linux/mips/doc/ABI/)>><<FootNote(https://imgtec.com/mips/architectures/mips32/)>> || || mipsel-linux-gnu || linux || MIPS2(MIPS32r2 soon)+FPXX|| little || 32 || MIPS o32 ABI || MIPS psABI<<FootNote(ftp://www.linux-mips.org/pub/linux/mips/doc/ABI/)>><<FootNote(https://imgtec.com/mips/architectures/mips32/)>> || || mips64-linux-gnuabin32 || linux || MIPS64r2 || big || 32 || MIPS n32 ABI || MIPSpro N32 ABI Handbook<<FootNote(ftp://www.linux-mips.org/pub/linux/mips/doc/ABI/)>><<FootNote(https://imgtec.com/mips/architectures/mips64/)>> || || mips64el-linux-gnuabin32 || linux || MIPS64r2 || little || 32 || MIPS n32 ABI || MIPSpro N32 ABI Handbook<<FootNote(ftp://www.linux-mips.org/pub/linux/mips/doc/ABI/)>><<FootNote(https://imgtec.com/mips/architectures/mips64/)>> || || mips64-linux-gnuabi64 || linux || MIPS64r2 || big || 64 || MIPS 64-bit ABI || MIPSpro N64 ABI Handbook<<FootNote(ftp://www.linux-mips.org/pub/linux/mips/doc/ABI/)>><<FootNote(https://imgtec.com/mips/architectures/mips64/)>> || || mips64el-linux-gnuabi64|| linux || MIPS64r2 || little || 64 || MIPS 64-bit ABI || MIPSpro N64 ABI Handbook<<FootNote(ftp://www.linux-mips.org/pub/linux/mips/doc/ABI/)>><<FootNote(https://imgtec.com/mips/architectures/mips64/)>> || || mipsisa32r6-linux-gnu || linux || MIPS32r6 || big || 32 || MIPS o32 ABI || MIPS psABI<<FootNote(ftp://www.linux-mips.org/pub/linux/mips/doc/ABI/)>><<FootNote(https://imgtec.com/mips/architectures/mips32/)>> || || mipsisa32r6el-linux-gnu|| linux || MIPS32r6 || little || 32 || MIPS o32 ABI || MIPS psABI<<FootNote(ftp://www.linux-mips.org/pub/linux/mips/doc/ABI/)>><<FootNote(https://imgtec.com/mips/architectures/mips32/)>> || || mipsisa64r6-linux-gnuabin32 || linux || MIPS64r6 || big || 32 || MIPS n32 ABI || MIPSpro N32 ABI Handbook<<FootNote(ftp://www.linux-mips.org/pub/linux/mips/doc/ABI/)>><<FootNote(https://imgtec.com/mips/architectures/mips64/)>> || || mipsisa64r6el-linux-gnuabin32 || linux || MIPS64r6 || little || 32 || MIPS n32 ABI || MIPSpro N32 ABI Handbook<<FootNote(ftp://www.linux-mips.org/pub/linux/mips/doc/ABI/)>><<FootNote(https://imgtec.com/mips/architectures/mips64/)>> || || mipsisa64r6-linux-gnuabi64 || linux || MIPS64r6 || big || 64 || MIPS 64-bit ABI || MIPSpro N64 ABI Handbook<<FootNote(ftp://www.linux-mips.org/pub/linux/mips/doc/ABI/)>><<FootNote(https://imgtec.com/mips/architectures/mips64/)>> || || mipsisa64r6el-linux-gnuabi64|| linux || MIPS64r6 || little || 64 || MIPS 64-bit ABI || MIPSpro N64 ABI Handbook<<FootNote(ftp://www.linux-mips.org/pub/linux/mips/doc/ABI/)>><<FootNote(https://imgtec.com/mips/architectures/mips64/)>> || || powerpc-linux-gnu || linux || PowerPC || big || 32 || LSB PPC32 || PowerPC psABI<<FootNote(http://refspecs.linux-foundation.org/elf/elfspec_ppc.pdf)>><<BR>>LSB Core-PPC32<<FootNote(http://refspecs.linuxbase.org/LSB_4.1.0/LSB-Core-PPC32/LSB-Core-PPC32/elf-ppc32.html)>> || || powerpc-linux-gnuspe || linux || PowerPC || big || 32 || [[PowerPCSPEPort|PowerPC e500 (SPE)]] || Power 32-bit ABI Supplement 1.0 Linux<<FootNote(https://www.power.org/resources/downloads/Power-Arch-32-bit-ABI-supp-1.0.tgz)>> || || powerpc64-linux-gnu || linux || PowerPC || big || 64 || LSB PPC64 || 64-bit PowerPC ELF psABI<<FootNote(http://refspecs.linuxfoundation.org/ELF/ppc64/PPC-elf64abi-1.9.html)>><<BR>>LSB Core-PPC64<<FootNote(http://refspecs.linuxbase.org/LSB_4.1.0/LSB-Core-PPC64/LSB-Core-PPC64/elf-ppc64.html)>> || || powerpc64le-linux-gnu || linux || PowerPC || little || 64 || ?? || ?? || || riscv64-linux-gnu || linux || RISC-V || little || 64 || RV64G Linux Platform || RISC-V ELF psABI <<FootNote(https://github.com/riscv/riscv-elf-psabi-doc/blob/master/riscv-elf.md)>> || || s390-linux-gnu || linux || System/390 || big || 32 || LSB S390 || S/390 ELF psABI<<FootNote(http://refspecs.linuxbase.org/ELF/zSeries/lzsabi0_s390.html)>><<BR>>LSB Core-S390<<FootNote(http://refspecs.linuxbase.org/LSB_4.1.0/LSB-Core-S390/LSB-Core-S390/elf-s390.html)>> || || s390x-linux-gnu || linux || z/Architecture || big || 64 || LSB S390X || zSeries ELF psABI<<FootNote(http://refspecs.linuxbase.org/ELF/zSeries/lzsabi0_zSeries.html)>><<BR>>LSB Core-S390X<<FootNote(http://refspecs.linuxbase.org/LSB_4.1.0/LSB-Core-S390X/LSB-Core-S390X/elf-s390x.html)>> || || sh4-linux-gnu || linux || SH-4 || little || 32 || glibc Linux SH-4<<BR>>with fpu, double pervading || SH-4 Generic and Specific ABI<<FootNote(http://sg.renesas.com/support/downloads/download_results/C2003801-C2003900/sh4_000_top_abi_00013.jsp (registration required))>> || || sparc-linux-gnu || linux || SPARC || big || 32 || glibc Linux sparc32 || SPARC psABI<<FootNote(http://www.sparc.com/standards/psABI3rd.pdf)>> || || sparc64-linux-gnu || linux || SPARC64 || big || 64 || glibc Linux sparc64 || SPARCv9 psABI<<FootNote(draft http://www.sparc.com/standards/64.psabi.1.35.ps.Z available online, can't find anything more concrete)>> || || x86_64-kfreebsd-gnu || FreeBSD || x86_64 || little || 64 || [[Debian_GNU/kFreeBSD|glibc kFreeBSD x86-64]] || '''XXXXX''' undocumented || || x86_64-linux-gnu || linux || x86_64 || little || 64 || LSB AMD64 || AMD64 psABI<<FootNote(http://x86-64.org/documentation/abi.pdf)>><<BR>>LSB Core-AMD64<<FootNote(http://refspecs.linuxbase.org/LSB_4.1.0/LSB-Core-AMD64/LSB-Core-AMD64/elf-amd64.html)>> || || x86_64-linux-gnux32 || linux || x86_64 || little || 32 || glibc Linux x32 || x32-abi documents<<FootNote(https://sites.google.com/site/x32abi/)>> || |
|| <<Anchor(aarch64-linux-gnu)>>aarch64-linux-gnu || linux || ARM64 || little || 64 || aarch64 Linux Platform || AAPCS64 (ARM IHI 005A)<<FootNote(http://infocenter.arm.com/help/topic/com.arm.doc.ihi0055a/IHI0055A_aapcs64.pdf)>><<BR>>ELF for the ARM 64-bit Architecture<<FootNote(http://infocenter.arm.com/help/topic/com.arm.doc.ihi0056a/IHI0056A_aaelf64.pdf)>> || || <<Anchor(aarch64_be-linux-gnu)>>aarch64_be-linux-gnu || linux || ARM64 || big || 64 || aarch64 Linux Platform || AAPCS64 (ARM IHI 005A)<<FootNote(http://infocenter.arm.com/help/topic/com.arm.doc.ihi0055a/IHI0055A_aapcs64.pdf)>><<BR>>ELF for the ARM 64-bit Architecture<<FootNote(http://infocenter.arm.com/help/topic/com.arm.doc.ihi0056a/IHI0056A_aaelf64.pdf)>> || || <<Anchor(aarch64-linux-gnu_ilp32)>>aarch64-linux-gnu_ilp32 || linux || ARM64 || little || 32 || aarch64 Linux Platform || || || <<Anchor(aarch64_be-linux-gnu_ilp32)>>aarch64_be-linux-gnu_ilp32 || linux || ARM64 || big || 32 || aarch64 Linux Platform || || || <<Anchor(alpha-linux-gnu)>>alpha-linux-gnu || linux || Alpha || little || 64 || glibc, Tru64 calling standard || Tru64 Calling Standard<<FootNote(http://www.openwatcom.org/ftp/devel/docs/alpha%20calling%20standard.pdf)>> || || <<Anchor(arm-linux-gnu)>>arm-linux-gnu || linux || ARM || little || 32 || Old ARM ABI || APCS (ARM DUI 0041 chapter 9)<<FootNote(http://infocenter.arm.com/help/topic/com.arm.doc.dui0041c/BGBGFIDA.html)>>|| || <<Anchor(arm-linux-gnueabi)>>arm-linux-gnueabi || linux || ARM || little || 32 || ARM EABI, soft-float || AAPCS (ARM IHI 0042D)<<FootNote(http://infocenter.arm.com/help/topic/com.arm.doc.ihi0042a/IHI0042A_aapcs.pdf)>><<BR>>ARM GNU/Linux ABI Supplement<<FootNote(https://sourcery.mentor.com/GNUToolchain/kbentry39)>> || || <<Anchor(arm-linux-gnueabihf)>>arm-linux-gnueabihf || linux || ARM || little || 32 || ARM EABI, hard-float || AAPCS (ARM IHI 0042D)<<FootNote(http://infocenter.arm.com/help/topic/com.arm.doc.ihi0042a/IHI0042A_aapcs.pdf)>> and<<BR>>'''XXXXX (TBD)''' || || <<Anchor(armeb-linux-gnueabi)>>armeb-linux-gnueabi || linux || ARM || big || 32 || ARM EABI, soft-float || AAPCS (ARM IHI 0042D)<<FootNote(http://infocenter.arm.com/help/topic/com.arm.doc.ihi0042a/IHI0042A_aapcs.pdf)>><<BR>>ARM GNU/Linux ABI Supplement<<FootNote(https://sourcery.mentor.com/GNUToolchain/kbentry39)>> || || <<Anchor(armeb-linux-gnueabihf)>>armeb-linux-gnueabihf || linux || ARM || big || 32 || ARM EABI, hard-float || AAPCS (ARM IHI 0042D)<<FootNote(http://infocenter.arm.com/help/topic/com.arm.doc.ihi0042a/IHI0042A_aapcs.pdf)>> and<<BR>>'''XXXXX (TBD)''' || || <<Anchor(hppa-linux-gnu)>>hppa-linux-gnu || linux || PA-RISC || big || 32 || PA-RISC Linux 32-bit ELF || parisc-linux toolchain documents<<FootNote(http://wiki.parisc-linux.org/ToolChain)>> || || <<Anchor(i386-gnu)>>i386-gnu || Hurd || IA-32 || little || 32 || Hurd/IA-32 || ia32 functions calls<<FootNote(http://refspecs.linuxbase.org/elf/abi386-4.pdf)>><<BR>>LSB Bug 3268<<FootNote(https://lsbbugs.linuxfoundation.org/show_bug.cgi?id=3268)>><<BR>>OS interface '''XXXXX''' undocumented || || <<Anchor(i386-linux-gnu)>>i386-linux-gnu || linux || IA-32 || little || 32 || LSB IA32 || SCO Developer Specifications<<FootNote(http://www.sco.com/developers/devspecs/)>><<BR>>Intel386 psABI<<FootNote(http://refspecs.linuxbase.org/elf/abi386-4.pdf)>><<BR>>LSB Core-IA32<<FootNote(http://refspecs.linuxbase.org/LSB_4.1.0/LSB-Core-IA32/LSB-Core-IA32/elf-ia32.html)>><<BR>>LSB Bug 3268<<FootNote(https://lsbbugs.linuxfoundation.org/show_bug.cgi?id=3268)>> || || <<Anchor(ia64-linux-gnu)>>ia64-linux-gnu || linux || IA-64 || little || 64 || LSB IA64 || Intel Itanium SysV psABI<<FootNote(http://refspecs.linuxbase.org/elf/IA64-SysV-psABI.pdf)>><<BR>>LSB Core-IA64<<FootNote(http://refspecs.linuxbase.org/LSB_4.1.0/LSB-Core-IA64/LSB-Core-IA64/elf-ia64.html)>> || || <<Anchor(i386-kfreebsd-gnu)>>i386-kfreebsd-gnu || FreeBSD || IA-32 || little || 32 || [[Debian_GNU/kFreeBSD|glibc kFreeBSD IA-32]] || '''XXXXX''' undocumented || || <<Anchor(m68k-linux-gnu)>>m68k-linux-gnu || linux || MC68000 || big || 32 || m68k SysV ABI || ISBN: 978-0138776633 || || <<Anchor(mips-linux-gnu)>>mips-linux-gnu || linux || MIPS32r2+FPXX || big || 32 || MIPS o32 ABI || MIPS psABI<<FootNote(ftp://www.linux-mips.org/pub/linux/mips/doc/ABI/)>><<FootNote(https://imgtec.com/mips/architectures/mips32/)>> || || <<Anchor(mipsel-linux-gnu)>>mipsel-linux-gnu || linux || MIPS2(MIPS32r2 soon)+FPXX|| little || 32 || MIPS o32 ABI || MIPS psABI<<FootNote(ftp://www.linux-mips.org/pub/linux/mips/doc/ABI/)>><<FootNote(https://imgtec.com/mips/architectures/mips32/)>> || || <<Anchor(mips64-linux-gnuabin32)>>mips64-linux-gnuabin32 || linux || MIPS64r2 || big || 32 || MIPS n32 ABI || MIPSpro N32 ABI Handbook<<FootNote(ftp://www.linux-mips.org/pub/linux/mips/doc/ABI/)>><<FootNote(https://imgtec.com/mips/architectures/mips64/)>> || || <<Anchor(mips64el-linux-gnuabin32)>>mips64el-linux-gnuabin32 || linux || MIPS64r2 || little || 32 || MIPS n32 ABI || MIPSpro N32 ABI Handbook<<FootNote(ftp://www.linux-mips.org/pub/linux/mips/doc/ABI/)>><<FootNote(https://imgtec.com/mips/architectures/mips64/)>> || || <<Anchor(mips64-linux-gnuabi64)>>mips64-linux-gnuabi64 || linux || MIPS64r2 || big || 64 || MIPS 64-bit ABI || MIPSpro N64 ABI Handbook<<FootNote(ftp://www.linux-mips.org/pub/linux/mips/doc/ABI/)>><<FootNote(https://imgtec.com/mips/architectures/mips64/)>> || || <<Anchor(mips64el-linux-gnuabi64)>>mips64el-linux-gnuabi64|| linux || MIPS64r2 || little || 64 || MIPS 64-bit ABI || MIPSpro N64 ABI Handbook<<FootNote(ftp://www.linux-mips.org/pub/linux/mips/doc/ABI/)>><<FootNote(https://imgtec.com/mips/architectures/mips64/)>> || || <<Anchor(mipsisa32r6-linux-gnu)>>mipsisa32r6-linux-gnu || linux || MIPS32r6 || big || 32 || MIPS o32 ABI || MIPS psABI<<FootNote(ftp://www.linux-mips.org/pub/linux/mips/doc/ABI/)>><<FootNote(https://imgtec.com/mips/architectures/mips32/)>> || || <<Anchor(mipsisa32r6el-linux-gnu)>>mipsisa32r6el-linux-gnu|| linux || MIPS32r6 || little || 32 || MIPS o32 ABI || MIPS psABI<<FootNote(ftp://www.linux-mips.org/pub/linux/mips/doc/ABI/)>><<FootNote(https://imgtec.com/mips/architectures/mips32/)>> || || <<Anchor(mipsisa64r6-linux-gnuabin32)>>mipsisa64r6-linux-gnuabin32 || linux || MIPS64r6 || big || 32 || MIPS n32 ABI || MIPSpro N32 ABI Handbook<<FootNote(ftp://www.linux-mips.org/pub/linux/mips/doc/ABI/)>><<FootNote(https://imgtec.com/mips/architectures/mips64/)>> || || <<Anchor(mipsisa64r6el-linux-gnuabin32)>>mipsisa64r6el-linux-gnuabin32 || linux || MIPS64r6 || little || 32 || MIPS n32 ABI || MIPSpro N32 ABI Handbook<<FootNote(ftp://www.linux-mips.org/pub/linux/mips/doc/ABI/)>><<FootNote(https://imgtec.com/mips/architectures/mips64/)>> || || <<Anchor(mipsisa64r6-linux-gnuabi64)>>mipsisa64r6-linux-gnuabi64 || linux || MIPS64r6 || big || 64 || MIPS 64-bit ABI || MIPSpro N64 ABI Handbook<<FootNote(ftp://www.linux-mips.org/pub/linux/mips/doc/ABI/)>><<FootNote(https://imgtec.com/mips/architectures/mips64/)>> || || <<Anchor(mipsisa64r6el-linux-gnuabi64)>>mipsisa64r6el-linux-gnuabi64|| linux || MIPS64r6 || little || 64 || MIPS 64-bit ABI || MIPSpro N64 ABI Handbook<<FootNote(ftp://www.linux-mips.org/pub/linux/mips/doc/ABI/)>><<FootNote(https://imgtec.com/mips/architectures/mips64/)>> || || <<Anchor(powerpc-linux-gnu)>>powerpc-linux-gnu || linux || PowerPC || big || 32 || LSB PPC32 || PowerPC psABI<<FootNote(http://refspecs.linux-foundation.org/elf/elfspec_ppc.pdf)>><<BR>>LSB Core-PPC32<<FootNote(http://refspecs.linuxbase.org/LSB_4.1.0/LSB-Core-PPC32/LSB-Core-PPC32/elf-ppc32.html)>> || || <<Anchor(powerpc-linux-gnuspe)>>powerpc-linux-gnuspe || linux || PowerPC || big || 32 || [[PowerPCSPEPort|PowerPC e500 (SPE)]] || Power 32-bit ABI Supplement 1.0 Linux<<FootNote(https://www.power.org/resources/downloads/Power-Arch-32-bit-ABI-supp-1.0.tgz)>> || || <<Anchor(powerpc64-linux-gnu)>>powerpc64-linux-gnu || linux || PowerPC || big || 64 || LSB PPC64 || 64-bit PowerPC ELF psABI<<FootNote(http://refspecs.linuxfoundation.org/ELF/ppc64/PPC-elf64abi-1.9.html)>><<BR>>LSB Core-PPC64<<FootNote(http://refspecs.linuxbase.org/LSB_4.1.0/LSB-Core-PPC64/LSB-Core-PPC64/elf-ppc64.html)>> || || <<Anchor(powerpc64le-linux-gnu)>>powerpc64le-linux-gnu || linux || PowerPC || little || 64 || ?? || ?? || || <<Anchor(riscv64-linux-gnu)>>riscv64-linux-gnu || linux || RISC-V || little || 64 || RV64G Linux Platform || RISC-V ELF psABI <<FootNote(https://github.com/riscv/riscv-elf-psabi-doc/blob/master/riscv-elf.md)>> || || <<Anchor(s390-linux-gnu)>>s390-linux-gnu || linux || System/390 || big || 32 || LSB S390 || S/390 ELF psABI<<FootNote(http://refspecs.linuxbase.org/ELF/zSeries/lzsabi0_s390.html)>><<BR>>LSB Core-S390<<FootNote(http://refspecs.linuxbase.org/LSB_4.1.0/LSB-Core-S390/LSB-Core-S390/elf-s390.html)>> || || <<Anchor(s390x-linux-gnu)>>s390x-linux-gnu || linux || z/Architecture || big || 64 || LSB S390X || zSeries ELF psABI<<FootNote(http://refspecs.linuxbase.org/ELF/zSeries/lzsabi0_zSeries.html)>><<BR>>LSB Core-S390X<<FootNote(http://refspecs.linuxbase.org/LSB_4.1.0/LSB-Core-S390X/LSB-Core-S390X/elf-s390x.html)>> || || <<Anchor(sh4-linux-gnu)>>sh4-linux-gnu || linux || SH-4 || little || 32 || glibc Linux SH-4<<BR>>with fpu, double pervading || SH-4 Generic and Specific ABI<<FootNote(http://sg.renesas.com/support/downloads/download_results/C2003801-C2003900/sh4_000_top_abi_00013.jsp (registration required))>> || || <<Anchor(sparc-linux-gnu)>>sparc-linux-gnu || linux || SPARC || big || 32 || glibc Linux sparc32 || SPARC psABI<<FootNote(http://www.sparc.com/standards/psABI3rd.pdf)>> || || <<Anchor(sparc64-linux-gnu)>>sparc64-linux-gnu || linux || SPARC64 || big || 64 || glibc Linux sparc64 || SPARCv9 psABI<<FootNote(draft http://www.sparc.com/standards/64.psabi.1.35.ps.Z available online, can't find anything more concrete)>> || || <<Anchor(x86_64-kfreebsd-gnu)>>x86_64-kfreebsd-gnu || FreeBSD || x86_64 || little || 64 || [[Debian_GNU/kFreeBSD|glibc kFreeBSD x86-64]] || '''XXXXX''' undocumented || || <<Anchor(x86_64-linux-gnu)>>x86_64-linux-gnu || linux || x86_64 || little || 64 || LSB AMD64 || AMD64 psABI<<FootNote(http://x86-64.org/documentation/abi.pdf)>><<BR>>LSB Core-AMD64<<FootNote(http://refspecs.linuxbase.org/LSB_4.1.0/LSB-Core-AMD64/LSB-Core-AMD64/elf-amd64.html)>> || || <<Anchor(x86_64-linux-gnux32)>>x86_64-linux-gnux32 || linux || x86_64 || little || 32 || glibc Linux x32 || x32-abi documents<<FootNote(https://sites.google.com/site/x32abi/)>> || |
Line 69: | Line 70: |
|| alpha || EOL || alpha-linux-gnu || || amd64 || released || x86_64-linux-gnu || || arm || EOL || arm-linux-gnu || || arm64 || released || aarch64-linux-gnu || || arm64ilp32 || none || aarch64-linux-gnu_ilp32 || || armel || released || arm-linux-gnueabi || || armhf || released || arm-linux-gnueabihf || || hppa || EOL || hppa-linux-gnu || || hurd-i386 || development || i386-gnu || || i386 || released || i386-linux-gnu || || ia64 || EOL || ia64-linux-gnu || || kfreebsd-amd64 || released || x86_64-kfreebsd-gnu || || kfreebsd-i386 || released || i386-kfreebsd-gnu || || m68k || EOL || m68k-linux-gnu || || mips || released || mips-linux-gnu || || mipsel || released || mipsel-linux-gnu || || mips64 || none || mips64-linux-gnuabi64 || || mips64el || development || mips64el-linux-gnuabi64 || || mipsn32 || none || mips64-linux-gnuabin32 || || mipsn32el || none|| mips64el-linux-gnuabin32 || || mipsr6 || none || mipsisa32r6-linux-gnu || || mipsr6el || planning || mipsisa32r6el-linux-gnu || || mips64r6 || none || mipsisa64r6-linux-gnuabi64 || || mips64r6el || planning || mipsisa64r6el-linux-gnuabi64 || || mipsn32r6 || none || mipsisa64r6-linux-gnuabin32 || || mipsn32r6el || none|| mipsisa64r6el-linux-gnuabin32 || || powerpc || released || powerpc-linux-gnu || || powerpcspe || development || powerpc-linux-gnuspe || || ppc64 || development || powerpc64-linux-gnu || || ppc64el || released || powerpc64le-linux-gnu || || riscv64 || development ||riscv64-linux-gnu || || s390 || EOL || s390-linux-gnu || || s390x || released || s390x-linux-gnu || || sh4 || development || sh4-linux-gnu || || sparc || released || sparc-linux-gnu || || sparc64 || development || sparc64-linux-gnu || || x32 || none || x86_64-linux-gnux32 || |
|| <<Anchor(alpha)>>alpha || EOL || alpha-linux-gnu || || <<Anchor(amd64)>>amd64 || released || x86_64-linux-gnu || || <<Anchor(arm)>>arm || EOL || arm-linux-gnu || || <<Anchor(arm64)>>arm64 || released || aarch64-linux-gnu || || <<Anchor(arm64ilp32)>>arm64ilp32 || none || aarch64-linux-gnu_ilp32 || || <<Anchor(armel)>>armel || released || arm-linux-gnueabi || || <<Anchor(armhf)>>armhf || released || arm-linux-gnueabihf || || <<Anchor(hppa)>>hppa || EOL || hppa-linux-gnu || || <<Anchor(hurd-i386)>>hurd-i386 || development || i386-gnu || || <<Anchor(i386)>>i386 || released || i386-linux-gnu || || <<Anchor(ia64)>>ia64 || EOL || ia64-linux-gnu || || <<Anchor(kfreebsd-amd64)>>kfreebsd-amd64 || released || x86_64-kfreebsd-gnu || || <<Anchor(kfreebsd-i386)>>kfreebsd-i386 || released || i386-kfreebsd-gnu || || <<Anchor(m68k)>>m68k || EOL || m68k-linux-gnu || || <<Anchor(mips)>>mips || released || mips-linux-gnu || || <<Anchor(mipsel)>>mipsel || released || mipsel-linux-gnu || || <<Anchor(mips64)>>mips64 || none || mips64-linux-gnuabi64 || || <<Anchor(mips64el)>>mips64el || development || mips64el-linux-gnuabi64 || || <<Anchor(mipsn32)>>mipsn32 || none || mips64-linux-gnuabin32 || || <<Anchor(mipsn32el)>>mipsn32el || none|| mips64el-linux-gnuabin32 || || <<Anchor(mipsr6)>>mipsr6 || none || mipsisa32r6-linux-gnu || || <<Anchor(mipsr6el)>>mipsr6el || planning || mipsisa32r6el-linux-gnu || || <<Anchor(mips64r6)>>mips64r6 || none || mipsisa64r6-linux-gnuabi64 || || <<Anchor(mips64r6el)>>mips64r6el || planning || mipsisa64r6el-linux-gnuabi64 || || <<Anchor(mipsn32r6)>>mipsn32r6 || none || mipsisa64r6-linux-gnuabin32 || || <<Anchor(mipsn32r6el)>>mipsn32r6el || none|| mipsisa64r6el-linux-gnuabin32 || || <<Anchor(powerpc)>>powerpc || released || powerpc-linux-gnu || || <<Anchor(powerpcspe)>>powerpcspe || development || powerpc-linux-gnuspe || || <<Anchor(ppc64)>>ppc64 || development || powerpc64-linux-gnu || || <<Anchor(ppc64el)>>ppc64el || released || powerpc64le-linux-gnu || || <<Anchor(riscv64)>>riscv64 || development ||riscv64-linux-gnu || || <<Anchor(s390)>>s390 || EOL || s390-linux-gnu || || <<Anchor(s390x)>>s390x || released || s390x-linux-gnu || || <<Anchor(sh4)>>sh4 || development || sh4-linux-gnu || || <<Anchor(sparc)>>sparc || released || sparc-linux-gnu || || <<Anchor(sparc64)>>sparc64 || development || sparc64-linux-gnu || || <<Anchor(x32)>>x32 || none || x86_64-linux-gnux32 || |
Multiarch Architecture Specifiers (Tuples)
This document describes the new schema for representing architecture ABIs as directory names, using normalized GNU triplets. The process to document the tuples in the Debian Policy and distribution independent standards is tracked in http://bugs.debian.org/664257.
The abandoned proposal can be found at Multiarch/TuplesAbandoned.
This page is part of the larger effort to implement Multiarch library handling on Linux. For more information about Multiarch, see Multiarch, https://wiki.ubuntu.com/MultiarchSpec.
Contents
The problem
Multiarch specifies a method of making libraries for multiple, mutually-incompatible architectures installable on a single filesystem in a manner that ensures the same binaries can be used without modification on any system. To accomplish this, we require unique identifiers for each architecture that identifies an incompatible set of libraries that we want to be co-installed. We want these identifiers to be specified in as vendor-neutral a manner as possible, to ensure we retain maximal binary compatibility across Linux distributions.
Why not use GNU triplets?
Earlier proposals for multiarch did use GNU triplets as the components of the library path. Proof-of-concept implementations ran into two distinct cases where GNU triplets could not be used effectively in a cross-distribution manner:
- On IA-32, the GNU triplet varies according to the precise instruction set being targeted: e.g., i486-linux-gnu, i586-linux-gnu i686-linux-gnu. Such triplets will be inconsistent over time within a single distribution as compiler defaults are changed, let alone between distributions.
Historical note: On ARM, the canonical GNU triplet for EABI systems, whether using hard-float or soft-float, was arm-linux-gnueabi, despite the fact that hard-float and soft-float libraries use different calling conventions and can't be intermixed. The advice given by upstream GCC developers was to use the vendor field in the GNU triplet to express this difference1; however, the vendor field is private by design, making this unreliable for cross-distribution use. Work finally succeeded to push the arm-linux-gnueabihf triplet upstream, but there may still be some broken packages around for a while.
Used solution
Use normalized GNU triplets for most tuples, and extend the GNU triplet when it is ambiguous.
multiarch name
syscall ABI
instruction set
endianness
word size
description
spec documents
aarch64-linux-gnu
linux
ARM64
little
64
aarch64 Linux Platform
AAPCS64 (ARM IHI 005A)1
ELF for the ARM 64-bit Architecture2aarch64_be-linux-gnu
linux
ARM64
big
64
aarch64 Linux Platform
AAPCS64 (ARM IHI 005A)1
ELF for the ARM 64-bit Architecture2aarch64-linux-gnu_ilp32
linux
ARM64
little
32
aarch64 Linux Platform
aarch64_be-linux-gnu_ilp32
linux
ARM64
big
32
aarch64 Linux Platform
alpha-linux-gnu
linux
Alpha
little
64
glibc, Tru64 calling standard
Tru64 Calling Standard3
arm-linux-gnu
linux
ARM
little
32
Old ARM ABI
APCS (ARM DUI 0041 chapter 9)4
arm-linux-gnueabi
linux
ARM
little
32
ARM EABI, soft-float
arm-linux-gnueabihf
linux
ARM
little
32
ARM EABI, hard-float
AAPCS (ARM IHI 0042D)5 and
XXXXX (TBD)armeb-linux-gnueabi
linux
ARM
big
32
ARM EABI, soft-float
armeb-linux-gnueabihf
linux
ARM
big
32
ARM EABI, hard-float
AAPCS (ARM IHI 0042D)5 and
XXXXX (TBD)hppa-linux-gnu
linux
PA-RISC
big
32
PA-RISC Linux 32-bit ELF
parisc-linux toolchain documents7
i386-gnu
Hurd
IA-32
little
32
Hurd/IA-32
ia32 functions calls8
LSB Bug 32689
OS interface XXXXX undocumentedi386-linux-gnu
linux
IA-32
little
32
LSB IA32
SCO Developer Specifications10
Intel386 psABI8
LSB Core-IA3211
LSB Bug 32689ia64-linux-gnu
linux
IA-64
little
64
LSB IA64
i386-kfreebsd-gnu
FreeBSD
IA-32
little
32
XXXXX undocumented
m68k-linux-gnu
linux
MC68000
big
32
m68k SysV ABI
ISBN: 978-0138776633
mips-linux-gnu
linux
MIPS32r2+FPXX
big
32
MIPS o32 ABI
mipsel-linux-gnu
linux
MIPS2(MIPS32r2 soon)+FPXX
little
32
MIPS o32 ABI
mips64-linux-gnuabin32
linux
MIPS64r2
big
32
MIPS n32 ABI
mips64el-linux-gnuabin32
linux
MIPS64r2
little
32
MIPS n32 ABI
mips64-linux-gnuabi64
linux
MIPS64r2
big
64
MIPS 64-bit ABI
mips64el-linux-gnuabi64
linux
MIPS64r2
little
64
MIPS 64-bit ABI
mipsisa32r6-linux-gnu
linux
MIPS32r6
big
32
MIPS o32 ABI
mipsisa32r6el-linux-gnu
linux
MIPS32r6
little
32
MIPS o32 ABI
mipsisa64r6-linux-gnuabin32
linux
MIPS64r6
big
32
MIPS n32 ABI
mipsisa64r6el-linux-gnuabin32
linux
MIPS64r6
little
32
MIPS n32 ABI
mipsisa64r6-linux-gnuabi64
linux
MIPS64r6
big
64
MIPS 64-bit ABI
mipsisa64r6el-linux-gnuabi64
linux
MIPS64r6
little
64
MIPS 64-bit ABI
powerpc-linux-gnu
linux
PowerPC
big
32
LSB PPC32
powerpc-linux-gnuspe
linux
PowerPC
big
32
Power 32-bit ABI Supplement 1.0 Linux19
powerpc64-linux-gnu
linux
PowerPC
big
64
LSB PPC64
powerpc64le-linux-gnu
linux
PowerPC
little
64
??
??
riscv64-linux-gnu
linux
RISC-V
little
64
RV64G Linux Platform
RISC-V ELF psABI 22
s390-linux-gnu
linux
System/390
big
32
LSB S390
s390x-linux-gnu
linux
z/Architecture
big
64
LSB S390X
sh4-linux-gnu
linux
SH-4
little
32
glibc Linux SH-4
with fpu, double pervadingSH-4 Generic and Specific ABI27
sparc-linux-gnu
linux
SPARC
big
32
glibc Linux sparc32
SPARC psABI28
sparc64-linux-gnu
linux
SPARC64
big
64
glibc Linux sparc64
SPARCv9 psABI29
x86_64-kfreebsd-gnu
FreeBSD
x86_64
little
64
XXXXX undocumented
x86_64-linux-gnu
linux
x86_64
little
64
LSB AMD64
x86_64-linux-gnux32
linux
x86_64
little
32
glibc Linux x32
x32-abi documents32
Architectures in Debian:
Debian architecture name
status in Debian
multiarch name
alpha
EOL
alpha-linux-gnu
amd64
released
x86_64-linux-gnu
arm
EOL
arm-linux-gnu
arm64
released
aarch64-linux-gnu
arm64ilp32
none
aarch64-linux-gnu_ilp32
armel
released
arm-linux-gnueabi
armhf
released
arm-linux-gnueabihf
hppa
EOL
hppa-linux-gnu
hurd-i386
development
i386-gnu
i386
released
i386-linux-gnu
ia64
EOL
ia64-linux-gnu
kfreebsd-amd64
released
x86_64-kfreebsd-gnu
kfreebsd-i386
released
i386-kfreebsd-gnu
m68k
EOL
m68k-linux-gnu
mips
released
mips-linux-gnu
mipsel
released
mipsel-linux-gnu
mips64
none
mips64-linux-gnuabi64
mips64el
development
mips64el-linux-gnuabi64
mipsn32
none
mips64-linux-gnuabin32
mipsn32el
none
mips64el-linux-gnuabin32
mipsr6
none
mipsisa32r6-linux-gnu
mipsr6el
planning
mipsisa32r6el-linux-gnu
mips64r6
none
mipsisa64r6-linux-gnuabi64
mips64r6el
planning
mipsisa64r6el-linux-gnuabi64
mipsn32r6
none
mipsisa64r6-linux-gnuabin32
mipsn32r6el
none
mipsisa64r6el-linux-gnuabin32
powerpc
released
powerpc-linux-gnu
powerpcspe
development
powerpc-linux-gnuspe
ppc64
development
powerpc64-linux-gnu
ppc64el
released
powerpc64le-linux-gnu
riscv64
development
riscv64-linux-gnu
s390
EOL
s390-linux-gnu
s390x
released
s390x-linux-gnu
sh4
development
sh4-linux-gnu
sparc
released
sparc-linux-gnu
sparc64
development
sparc64-linux-gnu
x32
none
x86_64-linux-gnux32
The status describes if the name is used in a (to be) released version of Debian and/or Ubuntu (release), if it is a new or abandoned port on Debian unofficial ports (port), or if it's used as a name for a Debian gcc multilib configuration (biarch).
On Debian systems, the Debian architecture name associated to a triplet can be retrieved with "dpkg-architecture -t<triplet> -qDEB_HOST_ARCH".
Supporting interfaces
- dpkg-architecture -qDEB_HOST_MULTIARCH (on dpkg based systems).
- gcc -print-multiarch (available upstream in GCC 4.9 and newer versions).
To avoid divergent embedded implementations of architecture->tuple mappings in every piece of software that wants to make use of these paths, a standard commandline tool that encapsulates this mapping should be provided, similar to the config.guess and config.sub tools that are a standard part of GNU autotools. We recommend a name of lsb_architecture for this tool.
http://infocenter.arm.com/help/topic/com.arm.doc.ihi0055a/IHI0055A_aapcs64.pdf (1 2)
http://infocenter.arm.com/help/topic/com.arm.doc.ihi0056a/IHI0056A_aaelf64.pdf (3 4)
http://www.openwatcom.org/ftp/devel/docs/alpha%20calling%20standard.pdf (5)
http://infocenter.arm.com/help/topic/com.arm.doc.dui0041c/BGBGFIDA.html (6)
http://infocenter.arm.com/help/topic/com.arm.doc.ihi0042a/IHI0042A_aapcs.pdf (7 8 9 10)
https://lsbbugs.linuxfoundation.org/show_bug.cgi?id=3268 (16 17)
http://refspecs.linuxbase.org/LSB_4.1.0/LSB-Core-IA32/LSB-Core-IA32/elf-ia32.html (19)
http://refspecs.linuxbase.org/LSB_4.1.0/LSB-Core-IA64/LSB-Core-IA64/elf-ia64.html (21)
ftp://www.linux-mips.org/pub/linux/mips/doc/ABI/ (22 23 24 25 26 27 28 29 30 31 32 33)
https://imgtec.com/mips/architectures/mips64/ (38 39 40 41 42 43 44 45)
http://refspecs.linux-foundation.org/elf/elfspec_ppc.pdf (46)
http://refspecs.linuxbase.org/LSB_4.1.0/LSB-Core-PPC32/LSB-Core-PPC32/elf-ppc32.html (47)
https://www.power.org/resources/downloads/Power-Arch-32-bit-ABI-supp-1.0.tgz (48)
http://refspecs.linuxfoundation.org/ELF/ppc64/PPC-elf64abi-1.9.html (49)
http://refspecs.linuxbase.org/LSB_4.1.0/LSB-Core-PPC64/LSB-Core-PPC64/elf-ppc64.html (50)
https://github.com/riscv/riscv-elf-psabi-doc/blob/master/riscv-elf.md (51)
http://refspecs.linuxbase.org/ELF/zSeries/lzsabi0_s390.html (52)
http://refspecs.linuxbase.org/LSB_4.1.0/LSB-Core-S390/LSB-Core-S390/elf-s390.html (53)
http://refspecs.linuxbase.org/ELF/zSeries/lzsabi0_zSeries.html (54)
http://refspecs.linuxbase.org/LSB_4.1.0/LSB-Core-S390X/LSB-Core-S390X/elf-s390x.html (55)
http://sg.renesas.com/support/downloads/download_results/C2003801-C2003900/sh4_000_top_abi_00013.jsp (registration required) (56)
draft http://www.sparc.com/standards/64.psabi.1.35.ps.Z available online, can't find anything more concrete (58)
http://refspecs.linuxbase.org/LSB_4.1.0/LSB-Core-AMD64/LSB-Core-AMD64/elf-amd64.html (60)