# 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 \
  alarm \
  bpf \
  brk \
  btrfs \
  caps \
  chmod \
  chown \
  chown32 \
  chroot \
  clock_adjtime \
  clock_nanosleep \
  clock_xettime \
  copy_file_range \
  creat \
  delete_module \
  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 \
  fchdir \
  fchmod \
  fchmodat \
  fchown \
  fchown32 \
  fchownat \
  fcntl \
  fcntl64 \
  fdatasync \
  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 \
  inet-cmsg \
  init_module \
  inotify \
  inotify_init1 \
  ioctl \
  ioctl_block \
  ioctl_dm \
  ioctl_evdev \
  ioctl_loop \
  ioctl_mtd \
  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_msgbuf \
  ipc_sem \
  ipc_shm \
  kcmp \
  kexec_file_load \
  kexec_load \
  keyctl \
  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 \
  mmap64 \
  mmsg \
  mmsg_name \
  mount \
  move_pages \
  mq \
  mq_sendrecv \
  mq_sendrecv-read \
  mq_sendrecv-write \
  msg_control \
  msg_name \
  munlockall \
  nanosleep \
  net-icmp_filter \
  net-sockaddr \
  net-y-unix \
  net-yy-inet \
  net-yy-netlink \
  net-yy-unix \
  netlink_audit \
  netlink_generic \
  netlink_netfilter \
  netlink_protocol \
  netlink_route \
  netlink_selinux \
  netlink_sock_diag \
  netlink_xfrm \
  newfstatat \
  nlattr \
  nlattr_inet_diag_msg \
  nlattr_netlink_diag_msg \
  nlattr_unix_diag_msg \
  old_mmap \
  oldfstat \
  oldlstat \
  oldselect \
  oldstat \
  open \
  openat \
  osf_utimes \
  pause \
  perf_event_open \
  personality \
  pipe \
  pipe2 \
  pkey_alloc \
  pkey_free \
  pkey_mprotect \
  poll \
  ppoll \
  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 \
  printstr \
  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 \
  rmdir \
  rt_sigaction \
  rt_sigpending \
  rt_sigprocmask \
  rt_sigqueueinfo \
  rt_sigreturn \
  rt_sigsuspend \
  rt_sigtimedwait \
  rt_tgsigqueueinfo \
  sched_get_priority_mxx \
  sched_rr_get_interval \
  sched_xetaffinity \
  sched_xetattr \
  sched_xetparam \
  sched_xetscheduler \
  sched_yield \
  seccomp-filter \
  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 \
  socketcall \
  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 \
  utimes \
  vhangup \
  vmsplice \
  wait4 \
  waitid \
  waitpid \
  xattr \
  xattr-strings \
  xet_robust_list \
  xetitimer \
  xetpgid \
  xetpriority \
  xettimeofday \
  #
