# Generated by ./tests/gen_pure_executables.sh from ./tests/pure_executables.list; do not edit.
PURE_EXECUTABLES = \
  _newselect \
  accept \
  accept4 \
  access \
  acct \
  add_key \
  adjtimex \
  aio \
  aio_pgetevents \
  alarm \
  bpf \
  bpf-obj_get_info_by_fd \
  bpf-obj_get_info_by_fd-prog \
  bpf-obj_get_info_by_fd-prog-v \
  bpf-obj_get_info_by_fd-v \
  bpf-v \
  brk \
  btrfs \
  caps \
  chmod \
  chown \
  chown32 \
  chroot \
  clock_adjtime \
  clock_nanosleep \
  clock_xettime \
  copy_file_range \
  creat \
  delete_module \
  dev-yy \
  dup \
  dup2 \
  dup3 \
  epoll_create \
  epoll_create1 \
  epoll_ctl \
  epoll_pwait \
  epoll_wait \
  erestartsys \
  eventfd \
  execve \
  execveat \
  faccessat \
  fadvise64 \
  fadvise64_64 \
  fallocate \
  fanotify_init \
  fanotify_mark \
  fanotify_mark-Xabbrev \
  fanotify_mark-Xraw \
  fanotify_mark-Xverbose \
  fchdir \
  fchmod \
  fchmodat \
  fchown \
  fchown32 \
  fchownat \
  fcntl \
  fcntl64 \
  fdatasync \
  fflush \
  file_handle \
  file_ioctl \
  finit_module \
  flock \
  fstat \
  fstat64 \
  fstatat64 \
  fstatfs \
  fstatfs64 \
  fsync \
  ftruncate \
  ftruncate64 \
  futex \
  futimesat \
  get_mempolicy \
  getcpu \
  getcwd \
  getdents \
  getdents64 \
  getegid \
  getegid32 \
  geteuid \
  geteuid32 \
  getgid \
  getgid32 \
  getgroups \
  getgroups32 \
  getpeername \
  getpgrp \
  getpid \
  getppid \
  getrandom \
  getresgid \
  getresgid32 \
  getresuid \
  getresuid32 \
  getrlimit \
  getrusage \
  getsid \
  getsockname \
  getuid \
  getuid32 \
  getxxid \
  group_req \
  inet-cmsg \
  init_module \
  inotify \
  inotify_init1 \
  ioctl \
  ioctl_block \
  ioctl_dm \
  ioctl_evdev \
  ioctl_inotify \
  ioctl_kvm_run \
  ioctl_kvm_run-v \
  ioctl_kvm_run_auxstr_vcpu \
  ioctl_loop \
  ioctl_mtd \
  ioctl_nbd \
  ioctl_perf \
  ioctl_ptp \
  ioctl_rtc \
  ioctl_scsi \
  ioctl_sg_io_v3 \
  ioctl_sg_io_v4 \
  ioctl_sock_gifconf \
  ioctl_uffdio \
  ioctl_v4l2 \
  ioperm \
  iopl \
  ioprio \
  ip_mreq \
  ipc \
  ipc_msg \
  ipc_msg-Xabbrev \
  ipc_msg-Xraw \
  ipc_msg-Xverbose \
  ipc_msgbuf \
  ipc_msgbuf-Xabbrev \
  ipc_msgbuf-Xraw \
  ipc_msgbuf-Xverbose \
  ipc_sem \
  ipc_sem-Xabbrev \
  ipc_sem-Xraw \
  ipc_sem-Xverbose \
  ipc_shm \
  ipc_shm-Xabbrev \
  ipc_shm-Xraw \
  ipc_shm-Xverbose \
  kcmp \
  kcmp-y \
  kern_features \
  kexec_file_load \
  kexec_load \
  keyctl \
  keyctl-Xabbrev \
  keyctl-Xraw \
  keyctl-Xverbose \
  kill \
  lchown \
  lchown32 \
  link \
  linkat \
  llseek \
  lookup_dcookie \
  lseek \
  lstat \
  lstat64 \
  madvise \
  mbind \
  membarrier \
  memfd_create \
  migrate_pages \
  mincore \
  mkdir \
  mkdirat \
  mknod \
  mknodat \
  mlock \
  mlock2 \
  mlockall \
  mmap \
  mmap-Xabbrev \
  mmap-Xraw \
  mmap-Xverbose \
  mmap64 \
  mmap64-Xabbrev \
  mmap64-Xraw \
  mmap64-Xverbose \
  mmsg \
  mmsg_name \
  modify_ldt \
  mount \
  mount-Xabbrev \
  mount-Xraw \
  mount-Xverbose \
  move_pages \
  mq \
  mq_sendrecv \
  mq_sendrecv-read \
  mq_sendrecv-write \
  msg_control \
  msg_name \
  munlockall \
  nanosleep \
  net-icmp_filter \
  net-packet_mreq \
  net-sockaddr \
  net-tpacket_req \
  net-tpacket_stats \
  net-y-unix \
  net-yy-inet \
  net-yy-inet6 \
  net-yy-netlink \
  net-yy-unix \
  netlink_audit \
  netlink_crypto \
  netlink_generic \
  netlink_kobject_uevent \
  netlink_netfilter \
  netlink_protocol \
  netlink_route \
  netlink_selinux \
  netlink_sock_diag \
  netlink_xfrm \
  newfstatat \
  nfnetlink_acct \
  nfnetlink_cthelper \
  nfnetlink_ctnetlink \
  nfnetlink_ctnetlink_exp \
  nfnetlink_cttimeout \
  nfnetlink_ipset \
  nfnetlink_nft_compat \
  nfnetlink_nftables \
  nfnetlink_osf \
  nfnetlink_queue \
  nfnetlink_ulog \
  nlattr \
  nlattr_br_port_msg \
  nlattr_crypto_user_alg \
  nlattr_dcbmsg \
  nlattr_fib_rule_hdr \
  nlattr_ifaddrlblmsg \
  nlattr_ifaddrmsg \
  nlattr_ifinfomsg \
  nlattr_ifla_af_spec \
  nlattr_ifla_brport \
  nlattr_ifla_linkinfo \
  nlattr_ifla_port \
  nlattr_ifla_xdp \
  nlattr_inet_diag_msg \
  nlattr_inet_diag_req_compat \
  nlattr_inet_diag_req_v2 \
  nlattr_mdba_mdb_entry \
  nlattr_mdba_router_port \
  nlattr_ndmsg \
  nlattr_ndtmsg \
  nlattr_netconfmsg \
  nlattr_netlink_diag_msg \
  nlattr_nlmsgerr \
  nlattr_packet_diag_msg \
  nlattr_rtgenmsg \
  nlattr_rtmsg \
  nlattr_smc_diag_msg \
  nlattr_tc_stats \
  nlattr_tca_stab \
  nlattr_tcamsg \
  nlattr_tcmsg \
  nlattr_unix_diag_msg \
  old_mmap \
  old_mmap-P \
  old_mmap-Xabbrev \
  old_mmap-Xraw \
  old_mmap-Xverbose \
  old_mmap-v-none \
  oldfstat \
  oldlstat \
  oldselect \
  oldselect-efault \
  oldstat \
  open \
  openat \
  osf_utimes \
  pause \
  perf_event_open \
  personality \
  personality-Xabbrev \
  personality-Xraw \
  personality-Xverbose \
  pipe \
  pipe2 \
  pkey_alloc \
  pkey_free \
  pkey_mprotect \
  poll \
  poll-P \
  ppoll \
  ppoll-P \
  prctl-arg2-intptr \
  prctl-dumpable \
  prctl-name \
  prctl-no-args \
  prctl-pdeathsig \
  prctl-securebits \
  prctl-tid_address \
  prctl-tsc \
  pread64-pwrite64 \
  preadv \
  preadv-pwritev \
  preadv2-pwritev2 \
  printpath-umovestr \
  printpath-umovestr-peekdata \
  printpath-umovestr-undumpable \
  printstr \
  printstrn-umoven \
  printstrn-umoven-peekdata \
  printstrn-umoven-undumpable \
  prlimit64 \
  process_vm_readv \
  process_vm_writev \
  pselect6 \
  ptrace \
  pwritev \
  quotactl \
  quotactl-xfs \
  read-write \
  readahead \
  readdir \
  readlink \
  readlinkat \
  readv \
  reboot \
  recvfrom \
  recvmmsg-timeout \
  recvmsg \
  remap_file_pages \
  rename \
  renameat \
  renameat2 \
  request_key \
  riscv_flush_icache \
  rmdir \
  rt_sigaction \
  rt_sigpending \
  rt_sigprocmask \
  rt_sigqueueinfo \
  rt_sigreturn \
  rt_sigsuspend \
  rt_sigtimedwait \
  rt_tgsigqueueinfo \
  s390_guarded_storage \
  s390_guarded_storage-v \
  s390_pci_mmio_read_write \
  s390_runtime_instr \
  s390_sthyi \
  s390_sthyi-v \
  sched_get_priority_mxx \
  sched_rr_get_interval \
  sched_xetaffinity \
  sched_xetattr \
  sched_xetparam \
  sched_xetscheduler \
  sched_yield \
  seccomp-filter \
  seccomp_get_action_avail \
  select \
  semop \
  sendfile \
  sendfile64 \
  set_mempolicy \
  setdomainname \
  setfsgid \
  setfsgid32 \
  setfsuid \
  setfsuid32 \
  setgid \
  setgid32 \
  setgroups \
  setgroups32 \
  sethostname \
  setns \
  setregid \
  setregid32 \
  setresgid \
  setresgid32 \
  setresuid \
  setresuid32 \
  setreuid \
  setreuid32 \
  setrlimit \
  setuid \
  setuid32 \
  shmxt \
  shutdown \
  sigaction \
  sigaltstack \
  siginfo \
  signal \
  signalfd4 \
  sigpending \
  sigprocmask \
  sigreturn \
  sigsuspend \
  so_linger \
  so_peercred \
  so_peercred-Xabbrev \
  so_peercred-Xraw \
  so_peercred-Xverbose \
  sock_filter-v \
  sock_filter-v-Xabbrev \
  sock_filter-v-Xraw \
  sock_filter-v-Xverbose \
  socketcall \
  sockopt-sol_netlink \
  splice \
  stat \
  stat64 \
  statfs \
  statfs64 \
  statx \
  swap \
  sxetmask \
  symlink \
  symlinkat \
  sync \
  sync_file_range \
  sync_file_range2 \
  sysinfo \
  syslog \
  tee \
  time \
  timer_create \
  timer_xettime \
  timerfd_xettime \
  times \
  times-fail \
  truncate \
  truncate64 \
  ugetrlimit \
  uio \
  umask \
  umount \
  umount2 \
  umoven-illptr \
  umovestr \
  umovestr-illptr \
  umovestr2 \
  umovestr3 \
  uname \
  unlink \
  unlinkat \
  unshare \
  userfaultfd \
  ustat \
  utime \
  utimensat \
  utimensat-Xabbrev \
  utimensat-Xraw \
  utimensat-Xverbose \
  utimes \
  vhangup \
  vmsplice \
  wait4 \
  waitid \
  waitpid \
  xattr \
  xattr-strings \
  xet_robust_list \
  xet_thread_area_x86 \
  xetitimer \
  xetpgid \
  xetpriority \
  xettimeofday \
  #
