From: Yu Watanabe Date: Fri, 28 Feb 2025 13:17:01 +0000 (+0900) Subject: missing_syscall: getrandom is supported by glibc since 2.25 X-Git-Tag: v258-rc1~1195^2~34 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=69a5c4b14c2aea4897029a12a1a0310e59dbe670;p=thirdparty%2Fsystemd.git 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. --- diff --git a/meson.build b/meson.build index a92d9f2cb08..de89853134c 100644 --- a/meson.build +++ b/meson.build @@ -663,7 +663,6 @@ foreach ident : [ ['getdents64', '''#include '''], ['pidfd_spawn', '''#include '''], ['strerrorname_np', '''#include '''], - ['getrandom', '''#include '''], ['quotactl_fd', '''#include '''], ['setxattrat', '''#include '''], # no known header declares setxattrat ['removexattrat', '''#include '''], # no known header declares removexattrat diff --git a/src/basic/missing_random.h b/src/basic/missing_random.h index 5f40c4e58c6..690021969e4 100644 --- a/src/basic/missing_random.h +++ b/src/basic/missing_random.h @@ -1,26 +1,11 @@ /* SPDX-License-Identifier: LGPL-2.1-or-later */ #pragma once -#include "macro.h" - -#if HAVE_GETRANDOM -# include -#else -# include -#endif - -#ifndef GRND_NONBLOCK -# define GRND_NONBLOCK 0x0001 -#else -assert_cc(GRND_NONBLOCK == 0x0001); -#endif +#include -#ifndef GRND_RANDOM -# define GRND_RANDOM 0x0002 -#else -assert_cc(GRND_RANDOM == 0x0002); -#endif +#include "macro.h" +/* Defined since glibc-2.32. */ #ifndef GRND_INSECURE # define GRND_INSECURE 0x0004 #else diff --git a/src/basic/missing_syscall.h b/src/basic/missing_syscall.h index 531e2fafb4b..5369cc53585 100644 --- a/src/basic/missing_syscall.h +++ b/src/basic/missing_syscall.h @@ -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) { diff --git a/src/basic/missing_syscall_def.h b/src/basic/missing_syscall_def.h index 0b4a6190e14..a98a2a20305 100644 --- a/src/basic/missing_syscall_def.h +++ b/src/basic/missing_syscall_def.h @@ -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 diff --git a/src/basic/missing_syscalls.py b/src/basic/missing_syscalls.py index e7c16f64062..81ef4feef6d 100644 --- a/src/basic/missing_syscalls.py +++ b/src/basic/missing_syscalls.py @@ -10,7 +10,6 @@ SYSCALLS = [ 'close_range', 'copy_file_range', 'fchmodat2', - 'getrandom', 'mount_setattr', 'move_mount', 'name_to_handle_at',