mirror of
https://github.com/morgan9e/systemd
synced 2026-04-15 00:47:10 +09:00
missing_syscall: getrandom is supported by glibc since 2.25
Now our baseline of glibc is 2.31, hence it is OK to drop our definition.
This commit is contained in:
@@ -663,7 +663,6 @@ foreach ident : [
|
||||
['getdents64', '''#include <dirent.h>'''],
|
||||
['pidfd_spawn', '''#include <spawn.h>'''],
|
||||
['strerrorname_np', '''#include <string.h>'''],
|
||||
['getrandom', '''#include <sys/random.h>'''],
|
||||
['quotactl_fd', '''#include <sys/quota.h>'''],
|
||||
['setxattrat', '''#include <sys/xattr.h>'''], # no known header declares setxattrat
|
||||
['removexattrat', '''#include <sys/xattr.h>'''], # no known header declares removexattrat
|
||||
|
||||
@@ -1,26 +1,11 @@
|
||||
/* SPDX-License-Identifier: LGPL-2.1-or-later */
|
||||
#pragma once
|
||||
|
||||
#include <sys/random.h>
|
||||
|
||||
#include "macro.h"
|
||||
|
||||
#if HAVE_GETRANDOM
|
||||
# include <sys/random.h>
|
||||
#else
|
||||
# include <linux/random.h>
|
||||
#endif
|
||||
|
||||
#ifndef GRND_NONBLOCK
|
||||
# define GRND_NONBLOCK 0x0001
|
||||
#else
|
||||
assert_cc(GRND_NONBLOCK == 0x0001);
|
||||
#endif
|
||||
|
||||
#ifndef GRND_RANDOM
|
||||
# define GRND_RANDOM 0x0002
|
||||
#else
|
||||
assert_cc(GRND_RANDOM == 0x0002);
|
||||
#endif
|
||||
|
||||
/* Defined since glibc-2.32. */
|
||||
#ifndef GRND_INSECURE
|
||||
# define GRND_INSECURE 0x0004
|
||||
#else
|
||||
|
||||
@@ -68,17 +68,6 @@ static inline int missing_ioprio_set(int which, int who, int ioprio) {
|
||||
|
||||
/* ======================================================================= */
|
||||
|
||||
#if !HAVE_GETRANDOM
|
||||
/* glibc says getrandom() returns ssize_t */
|
||||
static inline ssize_t missing_getrandom(void *buffer, size_t count, unsigned flags) {
|
||||
return syscall(__NR_getrandom, buffer, count, flags);
|
||||
}
|
||||
|
||||
# define getrandom missing_getrandom
|
||||
#endif
|
||||
|
||||
/* ======================================================================= */
|
||||
|
||||
/* The syscall has been defined since forever, but the glibc wrapper was missing. */
|
||||
#if !HAVE_GETTID
|
||||
static inline pid_t missing_gettid(void) {
|
||||
|
||||
@@ -314,74 +314,6 @@ assert_cc(__NR_fchmodat2 == systemd_NR_fchmodat2);
|
||||
# endif
|
||||
#endif
|
||||
|
||||
#ifndef __IGNORE_getrandom
|
||||
# if defined(__aarch64__)
|
||||
# define systemd_NR_getrandom 278
|
||||
# elif defined(__alpha__)
|
||||
# define systemd_NR_getrandom 511
|
||||
# elif defined(__arc__) || defined(__tilegx__)
|
||||
# define systemd_NR_getrandom 278
|
||||
# elif defined(__arm__)
|
||||
# define systemd_NR_getrandom 384
|
||||
# elif defined(__i386__)
|
||||
# define systemd_NR_getrandom 355
|
||||
# elif defined(__ia64__)
|
||||
# define systemd_NR_getrandom 1339
|
||||
# elif defined(__loongarch_lp64)
|
||||
# define systemd_NR_getrandom 278
|
||||
# elif defined(__m68k__)
|
||||
# define systemd_NR_getrandom 352
|
||||
# elif defined(_MIPS_SIM)
|
||||
# if _MIPS_SIM == _MIPS_SIM_ABI32
|
||||
# define systemd_NR_getrandom 4353
|
||||
# elif _MIPS_SIM == _MIPS_SIM_NABI32
|
||||
# define systemd_NR_getrandom 6317
|
||||
# elif _MIPS_SIM == _MIPS_SIM_ABI64
|
||||
# define systemd_NR_getrandom 5313
|
||||
# else
|
||||
# error "Unknown MIPS ABI"
|
||||
# endif
|
||||
# elif defined(__hppa__)
|
||||
# define systemd_NR_getrandom 339
|
||||
# elif defined(__powerpc__)
|
||||
# define systemd_NR_getrandom 359
|
||||
# elif defined(__riscv)
|
||||
# if __riscv_xlen == 32
|
||||
# define systemd_NR_getrandom 278
|
||||
# elif __riscv_xlen == 64
|
||||
# define systemd_NR_getrandom 278
|
||||
# else
|
||||
# error "Unknown RISC-V ABI"
|
||||
# endif
|
||||
# elif defined(__s390__)
|
||||
# define systemd_NR_getrandom 349
|
||||
# elif defined(__sparc__)
|
||||
# define systemd_NR_getrandom 347
|
||||
# elif defined(__x86_64__)
|
||||
# if defined(__ILP32__)
|
||||
# define systemd_NR_getrandom (318 | /* __X32_SYSCALL_BIT */ 0x40000000)
|
||||
# else
|
||||
# define systemd_NR_getrandom 318
|
||||
# endif
|
||||
# elif !defined(missing_arch_template)
|
||||
# warning "getrandom() syscall number is unknown for your architecture"
|
||||
# endif
|
||||
|
||||
/* may be an (invalid) negative number due to libseccomp, see PR 13319 */
|
||||
# if defined __NR_getrandom && __NR_getrandom >= 0
|
||||
# if defined systemd_NR_getrandom
|
||||
assert_cc(__NR_getrandom == systemd_NR_getrandom);
|
||||
# endif
|
||||
# else
|
||||
# if defined __NR_getrandom
|
||||
# undef __NR_getrandom
|
||||
# endif
|
||||
# if defined systemd_NR_getrandom && systemd_NR_getrandom >= 0
|
||||
# define __NR_getrandom systemd_NR_getrandom
|
||||
# endif
|
||||
# endif
|
||||
#endif
|
||||
|
||||
#ifndef __IGNORE_mount_setattr
|
||||
# if defined(__aarch64__)
|
||||
# define systemd_NR_mount_setattr 442
|
||||
|
||||
@@ -10,7 +10,6 @@ SYSCALLS = [
|
||||
'close_range',
|
||||
'copy_file_range',
|
||||
'fchmodat2',
|
||||
'getrandom',
|
||||
'mount_setattr',
|
||||
'move_mount',
|
||||
'name_to_handle_at',
|
||||
|
||||
Reference in New Issue
Block a user