2018-04-02 21:43:33 +00:00
|
|
|
# See scripts/check-localplt.awk for how this file is processed.
|
|
|
|
# PLT use is required for the malloc family and for matherr because
|
|
|
|
# users can define their own functions and have library internals call them.
|
2018-06-19 00:32:41 +00:00
|
|
|
# Linker in binutils 2.26 and newer consolidates R_X86_64_JUMP_SLOT
|
|
|
|
# relocation with R_386_GLOB_DAT relocation against the same symbol.
|
|
|
|
libc.so: calloc + REL R_386_GLOB_DAT
|
|
|
|
libc.so: free + REL R_386_GLOB_DAT
|
|
|
|
libc.so: malloc + REL R_386_GLOB_DAT
|
|
|
|
libc.so: memalign + REL R_386_GLOB_DAT
|
|
|
|
libc.so: realloc + REL R_386_GLOB_DAT
|
|
|
|
libm.so: matherr + REL R_386_GLOB_DAT
|
2018-04-02 21:43:33 +00:00
|
|
|
# The main malloc is interposed into the dynamic linker, for
|
|
|
|
# allocations after the initial link (when dlopen is used).
|
2018-06-19 00:32:41 +00:00
|
|
|
ld.so: malloc + REL R_386_GLOB_DAT
|
|
|
|
ld.so: calloc + REL R_386_GLOB_DAT
|
|
|
|
ld.so: realloc + REL R_386_GLOB_DAT
|
|
|
|
ld.so: free + REL R_386_GLOB_DAT
|
2018-04-02 21:43:33 +00:00
|
|
|
# The TLS-enabled version of these functions is interposed from libc.so.
|
2018-06-19 00:32:41 +00:00
|
|
|
ld.so: _dl_signal_error + REL R_386_GLOB_DAT
|
|
|
|
ld.so: _dl_catch_error + REL R_386_GLOB_DAT
|
|
|
|
ld.so: _dl_signal_exception + REL R_386_GLOB_DAT
|
|
|
|
ld.so: _dl_catch_exception + REL R_386_GLOB_DAT
|
2018-04-02 21:02:02 +00:00
|
|
|
# The dynamic linker has its own versions of basic functions for initial loading
|
|
|
|
# of shared libraries. These need to be overriden by libc once loaded.
|
2018-06-15 23:49:29 +00:00
|
|
|
ld.so: __open ?
|
2018-07-28 12:57:10 +00:00
|
|
|
ld.so: __open64
|
2018-04-02 21:02:02 +00:00
|
|
|
ld.so: __close
|
2018-07-28 12:57:10 +00:00
|
|
|
ld.so: __read
|
|
|
|
ld.so: __write
|
2018-07-27 09:18:29 +00:00
|
|
|
ld.so: __writev
|
2018-04-02 21:02:02 +00:00
|
|
|
ld.so: __libc_lseek64
|
2018-04-02 21:43:33 +00:00
|
|
|
ld.so: __mmap
|
2018-04-02 21:02:02 +00:00
|
|
|
ld.so: __fxstat64
|
|
|
|
ld.so: __xstat64
|
2018-04-02 21:43:33 +00:00
|
|
|
#ld.so: __access
|
2018-07-28 13:12:42 +00:00
|
|
|
ld.so: __access_noerrno
|
2018-04-02 21:02:02 +00:00
|
|
|
ld.so: __getpid
|
2018-04-02 21:43:33 +00:00
|
|
|
#ld.so: __getcwd
|
2018-07-28 12:57:10 +00:00
|
|
|
ld.so: __sbrk
|
2018-07-27 09:18:29 +00:00
|
|
|
ld.so: __strtoul_internal
|
2018-04-02 21:43:33 +00:00
|
|
|
#ld.so: _exit
|
2018-04-02 21:02:02 +00:00
|
|
|
ld.so: abort
|
|
|
|
ld.so: _hurd_intr_rpc_mach_msg
|
2018-04-02 21:32:48 +00:00
|
|
|
ld.so: __errno_location
|
2018-04-02 21:47:56 +00:00
|
|
|
# rtld_hidden is currently disabled to avoid having to special-case the
|
|
|
|
# functions above which do need a PLT. These are thus currently expected.
|
|
|
|
ld.so: _dl_allocate_tls
|
|
|
|
ld.so: _dl_allocate_tls_init
|
|
|
|
ld.so: _dl_exception_create
|
|
|
|
ld.so: _dl_exception_create_format
|
|
|
|
ld.so: _dl_exception_free
|
|
|
|
ld.so: _dl_find_dso_for_object
|
|
|
|
ld.so: _dl_init_first
|
|
|
|
ld.so: _dl_mcount
|
|
|
|
ld.so: ___tls_get_addr
|
|
|
|
ld.so: __tunable_get_val
|
2018-06-19 00:37:23 +00:00
|
|
|
#
|
2018-06-16 00:59:14 +00:00
|
|
|
# These should ideally be avoided, but is currently difficult
|
|
|
|
libc.so: siglongjmp ?
|
|
|
|
libc.so: longjmp ?
|
|
|
|
# This is from lseek.c
|
|
|
|
libc.so: __libc_lseek64 ?
|
|
|
|
# This is through cleanup_region_start from vfprintf.c
|
|
|
|
libc.so: _IO_funlockfile ?
|