glibc/sysdeps/mach/hurd/Versions
Samuel Thibault 662de0889a hurd: Make write and pwrite64 cancellation points
and add _nocancel variants.

* sysdeps/mach/hurd/write.c (__libc_write): Call __write_nocancel
surrounded by enabling async cancel, to replace implementation moved
to...
* sysdeps/mach/hurd/write_nocancel.c (__write_nocancel): ... here.
* sysdeps/mach/hurd/pwrite64.c (__libc_pwrite64): Call
__pwrite64_nocancel surrounded by enabling async cancel, to replace
implementation moved to...
* sysdeps/mach/hurd/pwrite64_nocancel.c (__pwrite64_nocancel): ... here.
* sysdeps/mach/hurd/Makefile (sysdep_routines): Add write_nocancel and
pwrite64_nocancel.
* sysdeps/mach/hurd/not-cancel.h (__write_nocancel,
__pwrite64_nocancel): Replace macros with prototypes with a hidden proto on
libc.

* sysdeps/mach/hurd/dl-sysdep.c (__write_nocancel): New alias, check
that it is not hidden.
* sysdeps/mach/hurd/Versions (libc.GLIBC_PRIVATE): Add __write_nocancel.
(ld.GLIBC_PRIVATE): Add __write_nocancel.
* sysdeps/mach/hurd/i386/localplt.data (__write_nocancel): Add
reference.
2020-06-14 15:53:21 +00:00

59 lines
1.4 KiB
Plaintext

libc {
GLIBC_2.0 {
# functions with a weak definition in the dynamic linker
__mmap;
}
GLIBC_2.2.6 {
# functions with a weak definition in the dynamic linker
__writev;
}
GLIBC_PRIVATE {
# Functions shared with the dynamic linker
__access; __access_noerrno; __libc_read; __libc_write; __libc_lseek64;
__read_nocancel; __pread64_nocancel;
__write_nocancel;
__libc_lock_self0; __getcwd;
_dl_init_first;
__close_nocancel_nostatus;
# functions used in other libraries
__sigprocmask;
}
}
ld {
GLIBC_2.0 {
# variables that must be shared with libc
__hurd_threadvar_stack_mask; __hurd_threadvar_stack_offset;
# functions that must be shared with libc
__close; __getpid;
__mmap; __open; __read; __sbrk; __strtoul_internal;
__write; __writev; __xstat64; __fxstat64;
_exit; _hurd_intr_rpc_mach_msg;
abort;
}
GLIBC_2.1 {
# functions that must be shared with libc
__pread64;
}
GLIBC_2.2 {
# functions that must be shared with libc
__open64;
}
GLIBC_2.2.6 {
# this also must be shared with libc.
__errno_location;
}
GLIBC_PRIVATE {
_dl_init_first;
# functions that must be shared with libc
__access; __access_noerrno; __libc_read; __libc_write; __libc_lseek64;
__read_nocancel; __pread64_nocancel;
__write_nocancel;
__libc_lock_self0; __getcwd;
}
}