ld.so(8) System Manager's Manual ld.so(8) ld.so, ld-linux.so - / ( ELF .interp ) : /lib/ld-linux.so.* [] [ []] ld.so ld-linux.so* ( ) . ( ) -static ld(1) . ld.so a.out . ld-linux.so* (/lib/ld-linux.so.1 libc5 /lib/ld-linux.so.2 glibc2) ELF . (ldd(1) ldconfig(8) /etc/ld.so.conf). ( ). ( ) . : (1) DT_RPATH DT_RUNPATH . (2) LD_LIBRARY_PATH ( ) . (3) DT_RUNPATH . DT_NEEDED ( ) DT_RUNPATH . DT_RPATH . (4) /etc/ld.so.cache . -z nodefaultlib . ( ) . (5) /lib /usr/lib. ( 64- 64- /lib64 /usr/lib64.) -z nodefaultlib . : o LD_LIBRARY_PATH LD_PRELOAD LD_AUDIT o DT_NEEDED DT_RPATH DT_RUNPATH DT_AUDIT DT_DEPAUDIT ELF o ld.so --audit --library-path --preload ( ) o dlopen(3) dlmopen(3). : $ORIGIN ( ${ORIGIN}) . somedir/app gcc -Wl,-rpath,'$ORIGIN/../lib' somedir/lib somedir . "" . $LIB ( ${LIB}) lib lib64 ( x86-64 lib64 x86-32 lib). $PLATFORM ( ${PLATFORM}) ( "x86_64"). . AT_PLATFORM ( getauxval(3)). . --argv0 string ( glibc 2.33) argv[0] string . --audit list list . list . --glibc-hwcaps-mask list list. --glibc-hwcaps-prepend list glibc-hwcaps list. --inhibit-cache /etc/ld.so.cache. --library-path path path LD_LIBRARY_PATH ( ). ORIGIN LIB PLATFORM LD_LIBRARY_PATH. --inhibit-rpath list RPATH RUNPATH list. ( ). list . --list . --list-diagnostics ( glibc 2.33) ( getauxval(3)) . ( GNU x86). --list-tunables ( glibc 2.33) . --preload list ( glibc 2.30) list. list . LD_PRELOAD . LD_PRELOAD --preload . --verify . . . . : GCONV_PATH GETCONF_DIR HOSTALIASES LOCALDOMAIN LD_AUDIT LD_DEBUG LD_DEBUG_OUTPUT LD_DYNAMIC_WEAK LD_HWCAP_MASK LD_LIBRARY_PATH LD_ORIGIN_PATH LD_PRELOAD LD_PROFILE LD_SHOW_AUXV LOCALDOMAIN LOCPATH MALLOC_TRACE NIS_PATH NLSPATH RESOLV_HOST_CONF RES_OPTIONS TMPDIR TZDIR. AT_SECURE ( getauxval(3)) . : o . set-user-ID set-group-ID. o . o . : LD_ASSUME_KERNEL ( glibc 2.2.3 glibc 2.36) Each shared object can inform the dynamic linker of the minimum kernel ABI version that it requires. (This requirement is encoded in an ELF note section that is viewable via readelf -n as a section labeled NT_GNU_ABI_TAG.) At run time, the dynamic linker determines the ABI version of the running kernel and will reject loading shared objects that specify minimum ABI versions that exceed that ABI version. LD_ASSUME_KERNEL ABI . Linux 2.2.5 myprog: $ LD_ASSUME_KERNEL=2.2.5 ./myprog ( ) ABI LD_ASSUME_KERNEL ( ). LD_ASSUME_KERNEL LinuxThreads POSIX threads LinuxThreads NPTL ( ) pthreads(7). LD_BIND_NOW ( glibc 2.1.1) . . LD_LIBRARY_PATH ELF . . . . LD_LIBRARY_PATH $ORIGIN $LIB $PLATFORM ( ) Dynamic string tokens. lib lib64 : $ LD_LIBRARY_PATH='$ORIGIN/$LIB' prog ( $ORIGIN $LIB !) LD_PRELOAD ELF . . . DESCRIPTION. . . set-user-ID ( ). LD_PRELOAD $ORIGIN $LIB $PLATFORM ( ) Dynamic string tokens. ( LD_LIBRARY_PATH.) : (1) LD_PRELOAD. (2) --preload . (3) /etc/ld.so.preload ( ). LD_TRACE_LOADED_OBJECTS ( ) ldd(1) . . LD_AUDIT ( glibc 2.4) ELF ( ). . . LD_AUDIT . -- -- . rtld-audit(7). Solaris Linker and Libraries Guide Runtime Linker Auditing Interface. LD_AUDIT $ORIGIN $LIB $PLATFORM ( ) Dynamic string tokens. ( LD_LIBRARY_PATH.) glibc 2.13 set-user-ID . LD_BIND_NOT ( glibc 2.1.95) GOT ( ) PLT ( ) . LD_DEBUG ( bindings symbols) . LD_DEBUG ( glibc 2.1) . ( ) : help help . all ( statistics unused ). bindings . . . _ . . . . unused DSO . . glibc 2.3.4 LD_DEBUG /etc/suid-debug ( ). LD_DEBUG_OUTPUT ( glibc 2.1) LD_DEBUG . LD_DEBUG_OUTPUT "." () . LD_DEBUG_OUTPUT . LD_DYNAMIC_WEAK (since glibc 2.1.91) . glibc ( glibc 2.2) : . . ( .) glibc . ( .) glibc 2.2 ( ). LD_DYNAMIC_WEAK ( ) ( ) glibc . ( .) glibc 2.3.4 LD_DYNAMIC_WEAK . LD_HWCAP_MASK ( glibc 2.1 glibc 2.38) . glibc 2.26 glibc . LD_ORIGIN_PATH ( glibc 2.1) . glibc 2.4 LD_ORIGIN_PATH . LD_POINTER_GUARD ( glibc 2.4 glibc 2.22) 0 . . ( setjmp(3) glibc ) . glibc 2.23 LD_POINTER_GUARD . LD_PROFILE ( glibc 2.1) () . : $LD_PROFILE_OUTPUT/$LD_PROFILE.profile. glibc 2.2.5 LD_PROFILE . LD_PROFILE_OUTPUT ( glibc 2.1) LD_PROFILE. /var/tmp. LD_PROFILE_OUTPUT /var/profile . LD_SHOW_AUXV ( glibc 2.1) ( ) ( getauxval(3)). glibc 2.3.4 LD_SHOW_AUXV . LD_TRACE_PRELINKING ( glibc 2.4 glibc 2.35) . ( ldd(1) .) . LD_USE_LOAD_BIAS ( glibc 2.3.3 glibc 2.35) ( ) ( ) . LD_USE_LOAD_BIAS 1 PIE . LD_USE_LOAD_BIAS 0 PIE . glibc 2.3.3 . LD_VERBOSE ( glibc 2.1) LD_TRACE_LOADED_OBJECTS. LD_WARN ( glibc 2.1.3) . LD_PREFER_MAP_32BIT_EXEC (x86-64 glibc 2.23) Intel Silvermont 64 4 . ( ) MAP_32BIT mmap(2) . : MAP_32BIT 2 ( 4 ) . MAP_32BIT (ASLR) LD_PREFER_MAP_32BIT_EXEC . /lib/ld.so / a.out /lib/ld-linux.so.{1,2} / ELF /etc/ld.so.cache . ldconfig(8). /etc/ld.so.preload ELF . LD_PRELOAD . LD_PRELOAD /etc/ld.so.preload LD_PRELOAD . /etc/ld.so.preload . ( .) lib*.so* ( glibc 2.5 glibc 2.37) . /usr/lib/sse2/. . . . : Alpha ev4 ev5 ev56 ev6 ev67 MIPS loongson2e loongson2f octeon octeon2 PowerPC 4xxmac altivec arch_2_05 arch_2_06 booke cellbe dfp efpdouble efpsingle fpu ic_snoop mmu notb pa6t power4 power5 power5+ power6x ppc32 ppc601 ppc64 smt spe ucache vsx SPARC flush muldiv stbar swap ultra3 v9 v9v v9v2 s390 dfp eimm esan3 etf3enh g5 highgprs hpage ldisp msa stfle z900 z990 z9-109 z10 zarch x86 (32-bit ) acpi apic clflush cmov cx8 dts fxsr ht i386 i486 i586 i686 mca mmx mtrr pat pbe pge pn pse36 sep ss sse sse2 tm . x86 32-bit i686 sse2 i686/sse2:i686:sse2:.. newcap newcap/i686/sse2:newcap/i686:newcap/sse2:newcap:i686/sse2:i686:sse2:. glibc ( glibc 2.33) glibc 2.33 . . . x86 64- x86_64-v3 ( Intel Haswell AMD Excavator) glibc-hwcaps/x86-64-v3:glibc-hwcaps/x86-64-v2:. . PowerPC (64- ) power10, power9 s390 (64- ) z16, z15, z14, z13 x86 (64- ) x86-64-v4, x86-64-v3, x86-64-v2 glibc 2.37 . ld(1), ldd(1), pldd(1), sprof(1), dlopen(3), getauxval(3), elf(5), capabilities(7), rtld-audit(7), ldconfig(8), sln(8) 3 . . : . 6.18 8 2026 ld.so(8)