glibc/sysdeps/mach/hurd/Versions
Sergey Bugaev f2c996597d hurd: Implement close_range and closefrom
The close_range () function implements the same API as the Linux and
FreeBSD syscalls. It operates atomically and reliably. The specified
upper bound is clamped to the actual size of the file descriptor table;
it is expected that the most common use case is with last = UINT_MAX.

Like in the Linux syscall, it is also possible to pass the
CLOSE_RANGE_CLOEXEC flag to mark the file descriptors in the range
cloexec instead of acually closing them.

Also, add a Hurd version of the closefrom () function. Since unlike on
Linux, close_range () cannot fail due to being unuspported by the
running kernel, a fallback implementation is never necessary.

Signed-off-by: Sergey Bugaev <bugaevc@gmail.com>
Message-Id: <20211106153524.82700-1-bugaevc@gmail.com>
2021-11-07 16:16:11 +01:00

71 lines
1.5 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_2.32 {
mremap;
}
GLIBC_2.35 {
close_range;
}
GLIBC_PRIVATE {
# Functions shared with the dynamic linker
__access; __access_noerrno; __libc_read; __libc_write; __libc_lseek64;
__close_nocancel;
__open_nocancel;
__read_nocancel; __pread64_nocancel;
__write_nocancel;
__libc_lock_self0; __getcwd;
__stat64;
_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;
_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;
__close_nocancel;
__open_nocancel;
__read_nocancel; __pread64_nocancel;
__write_nocancel;
__libc_lock_self0; __getcwd;
__stat64; __fstat64;
}
}