Differences between revisions 8 and 9
Revision 8 as of 2014-02-05 08:04:15
Size: 5703
Comment:
Revision 9 as of 2014-02-10 23:12:54
Size: 5619
Editor: JosephMyers
Comment: Remove am33.
Deletions are marked like this. Additions are marked like this.
Line 10: Line 10:
The entries for am33 (about to be removed) and sparc are awaiting architecture maintainer confirmation that soft-float is not in use for those architectures. Architecture maintainers should check their entries, correct them as needed them remove references to their architectures in this paragraph. The entries for sparc are awaiting architecture maintainer confirmation that soft-float is not in use for that architecture. Architecture maintainers should check their entries, correct them as needed them remove references to their architectures in this paragraph.
Line 31: Line 31:

=== am33 ===

 * hard-float, LE: /lib/ld.so.1

ABI List

glibc supports the following (architecture, ABI) combinations, with dynamic linker names as indicated. There may well be other cases of configure triplets and --with-fp / --without-fp options accepted by configure, but they are unlikely actually to work.

The expectation is that binaries and shared libraries from different ABIs on this list cannot be loaded in the same process, and if possible the dynamic linker should check compatibility and prevent attempts to load them, but that binaries and shared libraries from the same ABI will interoperate as long as the processor supports the instructions required by all relevant code. (It is possible that cases of mixed ABIs may appear to work sometimes, for example if functions with floating-point arguments and return values are not used and that is the only difference in the ABIs, but this is not considered a supported use of glibc.)

Unlike the Linaro list, this list includes only configurations supported in current glibc git, not those formerly supported or never supported in the official sources.

The entries for sparc are awaiting architecture maintainer confirmation that soft-float is not in use for that architecture. Architecture maintainers should check their entries, correct them as needed them remove references to their architectures in this paragraph.

Hurd

x86

  • 32-bit, hard-float, LE: /lib/ld.so (that is, GCC uses that name with -dynamic-linker so in PT_INTERP; it gets the SONAME ld.so.1 by default)

Linux kernel

aarch64

  • LP64, hard-float, BE: /lib/ld-linux-aarch64_be.so.1
  • LP64, hard-float, LE: /lib/ld-linux-aarch64.so.1

(The ILP32 port is not yet in glibc.)

alpha

  • LP64, hard-float, LE: /lib/ld-linux.so.2

arm

  • hard-float ABI, BE32: /lib/ld-linux-armhf.so.3
  • hard-float ABI, BE8: /lib/ld-linux-armhf.so.3
  • hard-float ABI, LE: /lib/ld-linux-armhf.so.3
  • soft-float ABI, BE32: /lib/ld-linux.so.3
  • soft-float ABI, BE8: /lib/ld-linux.so.3
  • soft-float ABI, LE: /lib/ld-linux.so.3

(The ARM soft-float ABI can be used with both hard and soft-float code. ARM supports two variants of big-endian operation, (on newer processors) BE8 and (on older processors) BE32, which are the same at .o level but incompatible for linked executables and shared libraries.)

hppa

  • 32-bit, hard-float, BE: /lib/ld.so.1

ia64

  • LP64, hard-float, LE: /lib/ld-linux-ia64.so.2

m68k

  • classic m68k, hard-float (hardware or kernel emulated), BE: /lib/ld.so.1
  • ColdFire, hard or soft float, BE: /lib/ld.so.1

(The ColdFire ABI is the same for both hard and soft-float.)

microblaze

  • hard or soft float, BE: /lib/ld.so.1
  • hard or soft float, LE: /lib/ld.so.1

mips

  • classic NaN, o32, hard-float, BE: /lib/ld.so.1
  • classic NaN, o32, hard-float, LE: /lib/ld.so.1
  • classic NaN, o32, soft-float, BE: /lib/ld.so.1
  • classic NaN, o32, soft-float, LE: /lib/ld.so.1
  • NaN2008, o32, hard-float, BE: /lib/ld-linux-mipsn8.so.1

  • NaN2008, o32, hard-float, LE: /lib/ld-linux-mipsn8.so.1

  • NaN2008, o32, soft-float, BE: /lib/ld-linux-mipsn8.so.1

  • NaN2008, o32, soft-float, LE: /lib/ld-linux-mipsn8.so.1

  • classic NaN, n32, hard-float, BE: /lib32/ld.so.1
  • classic NaN, n32, hard-float, LE: /lib32/ld.so.1
  • classic NaN, n32, soft-float, BE: /lib32/ld.so.1
  • classic NaN, n32, soft-float, LE: /lib32/ld.so.1
  • NaN2008, n32, hard-float, BE: /lib32/ld-linux-mipsn8.so.1

  • NaN2008, n32, hard-float, LE: /lib32/ld-linux-mipsn8.so.1

  • NaN2008, n32, soft-float, BE: /lib32/ld-linux-mipsn8.so.1

  • NaN2008, n32, soft-float, LE: /lib32/ld-linux-mipsn8.so.1

  • classic NaN, n64, hard-float, BE: /lib64/ld.so.1
  • classic NaN, n64, hard-float, LE: /lib64/ld.so.1
  • classic NaN, n64, soft-float, BE: /lib64/ld.so.1
  • classic NaN, n64, soft-float, LE: /lib64/ld.so.1
  • NaN2008, n64, hard-float, BE: /lib64/ld-linux-mipsn8.so.1

  • NaN2008, n64, hard-float, LE: /lib64/ld-linux-mipsn8.so.1

  • NaN2008, n64, soft-float, BE: /lib64/ld-linux-mipsn8.so.1

  • NaN2008, n64, soft-float, LE: /lib64/ld-linux-mipsn8.so.1

powerpc

  • 32-bit, hard-float, BE: /lib/ld.so.1
  • 32-bit, soft-float, BE: /lib/ld.so.1
  • 64-bit, hard-float, BE: /lib64/ld64.so.1
  • 64-bit, hard-float, LE: /lib64/ld64.so.2

(The GCC distinction for 64-bit is actually ELFv1/ELFv2, but the BE ELFv2 and LE ELFv1 combinations aren't supported.)

s390

  • 32-bit, hard-float, BE: /lib/ld.so.1
  • 64-bit, hard-float, BE: /lib/ld64.so.1

sh

  • SH3, soft-float, BE: /lib/ld-linux.so.2
  • SH3, soft-float, LE: /lib/ld-linux.so.2
  • SH4, hard-float, BE: /lib/ld-linux.so.2
  • SH4, hard-float, LE: /lib/ld-linux.so.2
  • SH4, soft-float, BE: /lib/ld-linux.so.2
  • SH4, soft-float, LE: /lib/ld-linux.so.2

sparc

  • 32-bit, hard-float, BE: /lib/ld-linux.so.2
  • 64-bit, hard-float, BE: /lib64/ld-linux.so.2

tilegx

  • 32-bit, hard-float, BE: /lib32/ld.so.1
  • 32-bit, hard-float, LE: /lib32/ld.so.1
  • 64-bit, hard-float, BE: /lib/ld.so.1
  • 64-bit, hard-float, LE: /lib/ld.so.1

tilepro

  • soft-float, LE: /lib/ld.so.1

x86 / x86_64

  • 32-bit, hard-float, LE: /lib/ld-linux.so.2
  • 64-bit, hard-float, LE: /lib64/ld-linux-x86-64.so.2
  • x32, hard-float, LE: /libx32/ld-linux-x32.so.2

None: ABIList (last edited 2014-02-10 23:12:54 by JosephMyers)