glibc/sysdeps/mach/hurd/i386/localplt.data
Samuel Thibault 4cafcd839f hurd: make open and openat cancellation points
and add _nocancel variants.

* sysdeps/mach/hurd/Makefile [io] (sysdep_routines): Add open_nocancel
openat_nocancel.
* sysdeps/mach/hurd/Versions (libc.GLIBC_PRIVATE, ld.GLIBC_PRIVATE): Add
__open_nocancel.
* sysdeps/mach/hurd/dl-sysdep.c (__open_nocancel): Add alias, check it
is not hidden.
* sysdeps/mach/hurd/i386/localplt.data (__open_nocancel): Allow PLT.
* sysdeps/mach/hurd/not-cancel.h (__open_nocancel, __openat_nocancel:
Replace macros with declarations with hidden proto.
(__open64_nocancel, __openat64_nocancel): Call __open_nocancel and
__openat_nocancel instead of __open64 and __openat64.
* sysdeps/mach/hurd/open.c: Include <sysdep-cancel.h>
(__libc_open): Surround __file_name_lookup with enabling async cancel.
* sysdeps/mach/hurd/openat.c: Likewise.
* sysdeps/mach/hurd/open_nocancel.c,
sysdeps/mach/hurd/openat_nocancel.c: New files.
2020-06-28 15:11:23 +00:00

65 lines
2.1 KiB
Plaintext

# 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.
# 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
# The TLS-enabled version of these functions is interposed from libc.so.
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
# 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.
ld.so: __open ?
ld.so: __open64 ?
ld.so: __open_nocancel
ld.so: __close
ld.so: __read ?
ld.so: __read_nocancel
ld.so: __pread64
ld.so: __pread64_nocancel
ld.so: __write ?
ld.so: __write_nocancel
ld.so: __writev
ld.so: __libc_lseek64
ld.so: __mmap
ld.so: __fxstat64
ld.so: __xstat64
ld.so: __access
ld.so: __access_noerrno
ld.so: __getpid
ld.so: __getcwd
ld.so: __sbrk
ld.so: __strtoul_internal
#ld.so: _exit
ld.so: abort
ld.so: _hurd_intr_rpc_mach_msg
ld.so: __errno_location
# 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_fatal_printf
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
#
# 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 ?