LD-LINUX(8) (NAME) ld-linux - (SYNOPSIS) ld-linux.so [] [...] ( ELF .interp ) : /lib/ld-linux.so.* [] [ [...]] (DESCRIPTION) ld-linux ( ld.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. ( /lib64 /usr/lib64 .) -z nodefaultlib . (Dynamic string tokens) : 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 . << >> (turn-key) . $LIB ( ${LIB}) lib lib64 ( x86-64 lib64 x86-32 lib ). $PLATFORM ( ${PLATFORM}) ( "x86_64"). . AT_PLATFORM (auxiliary vector) ( getauxval(3) ). () . (OPTIONS) --argv0 ( glibc 2.33) argv[0] . --audit (auditor) . (:) . --glibc-hwcaps-mask . --glibc-hwcaps-prepend glibc-hwcaps . --inhibit-cache /etc/ld.so.cache . --library-path LD_LIBRARY_PATH ( ). ORIGIN LIB PLATFORM LD_LIBRARY_PATH . --inhibit-rpath RPATH RUNPATH . ( ). . --list . --list-diagnostics ( glibc 2.33) (auxiliary vector getauxval(3) ) . ( CPU GNU x86). --list-tunables ( glibc 2.33) (tunables) . --preload ( glibc 2.30) (preload) . . LD_PRELOAD . LD_PRELOAD --preload . --verify . (ENVIRONMENT) . (Secure-execution mode) . . : 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 LOCPATH MALLOC_TRACE NIS_PATH NLSPATH RESOLV_HOST_CONF RES_OPTIONS TMPDIR TZDIR. AT_SECURE (auxiliary vector getauxval(3) ) . : o . set-user-ID set-group-ID . o (capabilities) . o (LSM) . (Environment variables) : LD_ASSUME_KERNEL ( glibc 2.2.3 glibc 2.36) ABI . ( ELF readelf -n NT_GNU_ABI_TAG ). ABI ABI . LD_ASSUME_KERNEL ABI . myprog 2.2.5 : $ LD_ASSUME_KERNEL=2.2.5 ./myprog ( ) ABI LD_ASSUME_KERNEL ( ) . LD_ASSUME_KERNEL LinuxThreads LinuxThreads NPTL ( ) pthreads(7) . LD_BIND_NOW ( glibc 2.1.1) . (debugger) . LD_LIBRARY_PATH ELF . (:) (;) . . . LD_LIBRARY_PATH $ORIGIN $LIB $PLATFORM ( ) . lib lib64 : $ LD_LIBRARY_PATH='$ORIGIN/$LIB' prog ( $ORIGIN $LIB !) LD_PRELOAD ELF . . . <<>> . (link map) . . set-user-ID ( ). LD_PRELOAD $ORIGIN $LIB $PLATFORM ( ) . ( 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 . (auditing checkpoints) -- -- . rtld-audit(7) . Linker and Libraries Guide Runtime Linker Auditing Interface . LD_AUDIT $ORIGIN $LIB $PLATFORM ( ) . 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 . files . libs . reloc (relocations) . scopes (scope) . statistics . symbols . unused (DSO) . versions . glibc 2.3.4 LD_DEBUG /etc/suid-debug ( ). LD_DEBUG_OUTPUT ( glibc 2.1) LD_DEBUG . LD_DEBUG_OUTPUT <<.>> () (PID) . LD_DEBUG_OUTPUT . LD_DYNAMIC_WEAK ( glibc 2.1.91) . glibc ( glibc 2.2) : (weak) . (strong) . ( ). 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 tunables . LD_ORIGIN_PATH ( glibc 2.1) . glibc 2.4 LD_ORIGIN_PATH . LD_POINTER_GUARD ( glibc 2.5 glibc 2.22) 0 (pointer guarding) . . ( setjmp(3) glibc) (mangle) . glibc 2.23 LD_POINTER_GUARD . LD_PROFILE ( glibc 2.1) () soname . : $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) (prelinking) . ( ldd(1) ). . LD_USE_LOAD_BIAS ( glibc 2.3.3 glibc 2.35) ( ) (PIEs) . LD_USE_LOAD_BIAS 1 PIE . 0 . 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) Silvermont (branch) . ( ) MAP_32BIT mmap(2) . : MAP_32BIT ( ) . MAP_32BIT (ASLR) LD_PREFER_MAP_32BIT_EXEC . (FILES) /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* (NOTES) ( glibc 2.5 glibc 2.37) . /usr/lib/sse2. . CPU (cascade) . . : 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 ( ) 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 i686 sse2 i686/sse2:i686:sse2:. . newcap newcap/i686/sse2:newcap/i686:newcap/sse2:newcap:i686/sse2:i686:sse2:. . glibc ( glibc 2.33) 2.33 glibc CPU . . . x86 x86_64-v3 ( Intel Haswell AMD Excavator) glibc-hwcaps/x86-64-v3:glibc-hwcaps/x86-64-v2:. . : PowerPC ( little-endian) power10, power9 s390 ( ) z16, z15, z14, z13 x86 ( ) x86-64-v4, x86-64-v3, x86-64-v2 2.37 glibc . (SEE ALSO) ld(1) ldd(1) pldd(1) sprof(1) dlopen(3) getauxval(3) elf(5) capabilities(7) rtld-audit(7) ldconfig(8) sln(8) man-pages LD-LINUX(8)