]> granicus.if.org Git - strace/commitdiff
Implement and use new parsers of poll syscall
authorDmitry V. Levin <ldv@altlinux.org>
Sun, 12 May 2019 22:45:45 +0000 (22:45 +0000)
committerDmitry V. Levin <ldv@altlinux.org>
Sun, 12 May 2019 22:45:45 +0000 (22:45 +0000)
* poll.c (SYS_FUNC(poll)): Remove.
[HAVE_ARCH_TIME32_SYSCALLS || HAVE_ARCH_OLD_TIME64_SYSCALLS] (do_poll):
New function.
[HAVE_ARCH_TIME32_SYSCALLS] (SYS_FUNC(poll_time32)): Likewise.
[HAVE_ARCH_OLD_TIME64_SYSCALLS] (SYS_FUNC(poll_time64)): Likewise.
* pathtrace.c (pathtrace_match_set): Replace SEN_poll with
SEN_poll_time32 and SEN_poll_time64.
* linux/aarch64/syscallent.h: Replace SEN(poll) with SEN(poll_time64).
* linux/alpha/syscallent.h: Likewise.
* linux/ia64/syscallent.h: Likewise.
* linux/mips/syscallent-n64.h: Likewise.
* linux/powerpc64/syscallent.h: Likewise.
* linux/s390x/syscallent.h: Likewise.
* linux/sh64/syscallent.h: Likewise.
* linux/sparc64/syscallent.h: Likewise.
* linux/x32/syscallent.h: Likewise.
* linux/x86_64/syscallent.h: Likewise.
* linux/arm/syscallent.h: Replace SEN(poll) with SEN(poll_time32).
* linux/avr32/syscallent.h: Likewise.
* linux/bfin/syscallent.h: Likewise.
* linux/hppa/syscallent.h: Likewise.
* linux/i386/syscallent.h: Likewise.
* linux/m68k/syscallent.h: Likewise.
* linux/microblaze/syscallent.h: Likewise.
* linux/mips/syscallent-n32.h: Likewise.
* linux/mips/syscallent-o32.h: Likewise.
* linux/powerpc/syscallent.h: Likewise.
* linux/s390/syscallent.h: Likewise.
* linux/sh/syscallent.h: Likewise.
* linux/sparc/syscallent.h: Likewise.
* linux/xtensa/syscallent.h: Likewise.

26 files changed:
linux/aarch64/syscallent.h
linux/alpha/syscallent.h
linux/arm/syscallent.h
linux/avr32/syscallent.h
linux/bfin/syscallent.h
linux/hppa/syscallent.h
linux/i386/syscallent.h
linux/ia64/syscallent.h
linux/m68k/syscallent.h
linux/microblaze/syscallent.h
linux/mips/syscallent-n32.h
linux/mips/syscallent-n64.h
linux/mips/syscallent-o32.h
linux/powerpc/syscallent.h
linux/powerpc64/syscallent.h
linux/s390/syscallent.h
linux/s390x/syscallent.h
linux/sh/syscallent.h
linux/sh64/syscallent.h
linux/sparc/syscallent.h
linux/sparc64/syscallent.h
linux/x32/syscallent.h
linux/x86_64/syscallent.h
linux/xtensa/syscallent.h
pathtrace.c
poll.c

index 6016a1d145cd0feee9e67aa254bd3baf18759374..139674a6490c32ee7f3d0126891ac8d24df7ae7c 100644 (file)
@@ -66,7 +66,7 @@
 [1065] = { 3,  TD,             SEN(getdents),          "getdents"      },
 [1066] = { 3,  TD|TF,          SEN(futimesat),         "futimesat"     },
 [1067] = { 5,  TD,             SEN(select),            "select"        },
-[1068] = { 3,  TD,             SEN(poll),              "poll"          },
+[1068] = { 3,  TD,             SEN(poll_time64),       "poll"          },
 [1069] = { 4,  TD,             SEN(epoll_wait),        "epoll_wait"    },
 [1070] = { 2,  TSFA,           SEN(ustat),             "ustat"         },
 [1071] = { 0,  TP,             SEN(vfork),             "vfork"         },
index d04789da9b80ba094b13a56880b0b253e2744826..0d6e412d43deb352514649d976a2ade291ce5bf5 100644 (file)
 [ 91] = { 2,   TD|TFST|TSTA,   SEN(fstat),                     "fstat"                 },
 [ 92] = { 3,   TD,             SEN(fcntl),                     "fcntl"                 },
 [ 93] = { 5,   TD,             SEN(osf_select),                "osf_select"            },
-[ 94] = { 3,   TD,             SEN(poll),                      "poll"                  },
+[ 94] = { 3,   TD,             SEN(poll_time64),               "poll"                  },
 [ 95] = { 1,   TD,             SEN(fsync),                     "fsync"                 },
 [ 96] = { 3,   0,              SEN(setpriority),               "setpriority"           },
 [ 97] = { 3,   TN,             SEN(socket),                    "socket"                },
index 52a8eebcfab234ed59c3d2ac01d2320bbe824be4..d99edd77313ff49442a1df889080114d6d044a8a 100644 (file)
 [165] = { 3,   0,              SEN(getresuid16),               "getresuid"             },
 [166] = { 5,   0,              SEN(vm86),                      "vm86"                  },
 [167] = { 5,   0,              SEN(query_module),              "query_module"          },
-[168] = { 3,   TD,             SEN(poll),                      "poll"                  },
+[168] = { 3,   TD,             SEN(poll_time32),               "poll"                  },
 [169] = { 3,   0,              SEN(nfsservctl),                "nfsservctl"            },
 [170] = { 3,   0,              SEN(setresgid16),               "setresgid"             },
 [171] = { 3,   0,              SEN(getresgid16),               "getresgid"             },
index 40f235c997022bd4ede8daee0d419cf3a86d9a82..93d2b98c5edce815e5c77471e94c108612593f3a 100644 (file)
 [141] = { 1,   0,              SEN(sched_get_priority_min),    "sched_get_priority_min"},
 [142] = { 2,   0,              SEN(sched_rr_get_interval),     "sched_rr_get_interval" },
 [143] = { 2,   0,              SEN(nanosleep),                 "nanosleep"             },
-[144] = { 3,   TD,             SEN(poll),                      "poll"                  },
+[144] = { 3,   TD,             SEN(poll_time32),               "poll"                  },
 [145] = { 3,   0,              SEN(nfsservctl),                "nfsservctl"            },
 [146] = { 3,   0,              SEN(setresgid),                 "setresgid"             },
 [147] = { 3,   0,              SEN(getresgid),                 "getresgid"             },
index 885b109bc230e48d159e911b87a47550d7b54eaa..0ecd05d4ba0d983678111196901388662a3ae7d2 100644 (file)
 [165] = { 3,   0,              SEN(getresuid16),               "getresuid"             },
 [166] = { 5,   0,              SEN(vm86),                      "vm86"                  },
 [167] = { 5,   0,              SEN(query_module),              "query_module"          },
-[168] = { 3,   TD,             SEN(poll),                      "poll"                  },
+[168] = { 3,   TD,             SEN(poll_time32),               "poll"                  },
 [169] = { 3,   0,              SEN(nfsservctl),                "nfsservctl"            },
 [170] = { 3,   0,              SEN(setresgid16),               "setresgid"             },
 [171] = { 3,   0,              SEN(getresgid16),               "getresgid"             },
index f5b119ca0e04c45857f9b5b9f64bc28ab8690307..6131681ff4b046881700eea4143589d9a7a79f1c 100644 (file)
 [165] = { 3,   0,              SEN(getresuid),                 "getresuid"             },
 [166] = { 2,   TS,             SEN(sigaltstack),               "sigaltstack"           },
 [167] = { 5,   0,              SEN(query_module),              "query_module"          },
-[168] = { 3,   TD,             SEN(poll),                      "poll"                  },
+[168] = { 3,   TD,             SEN(poll_time32),               "poll"                  },
 [169] = { 3,   0,              SEN(nfsservctl),                "nfsservctl"            },
 [170] = { 3,   0,              SEN(setresgid),                 "setresgid"             },
 [171] = { 3,   0,              SEN(getresgid),                 "getresgid"             },
index 73e19db2388b3f37f2d7fb7c3f7e9bdd6f71a01c..77523ec767ff753dd7d4ae051eb85078dd9e8748 100644 (file)
 [165] = { 3,   0,              SEN(getresuid16),               "getresuid"             },
 [166] = { 5,   0,              SEN(vm86),                      "vm86"                  },
 [167] = { 5,   0,              SEN(query_module),              "query_module"          },
-[168] = { 3,   TD,             SEN(poll),                      "poll"                  },
+[168] = { 3,   TD,             SEN(poll_time32),               "poll"                  },
 [169] = { 3,   0,              SEN(nfsservctl),                "nfsservctl"            },
 [170] = { 3,   0,              SEN(setresgid16),               "setresgid"             },
 [171] = { 3,   0,              SEN(getresgid16),               "getresgid"             },
index 27ffad7e6e7698af74a69b4a6c191d622ba3eb4f..992aa72041f8dee46a66f4cf8da61f851fb62871 100644 (file)
@@ -73,7 +73,7 @@
 [1024 +  63] = { 2,    0,              SEN(gettimeofday),              "gettimeofday"          },
 [1024 +  64] = { 2,    0,              SEN(settimeofday),              "settimeofday"          },
 [1024 +  65] = { 5,    TD,             SEN(select),                    "select"                },
-[1024 +  66] = { 3,    TD,             SEN(poll),                      "poll"                  },
+[1024 +  66] = { 3,    TD,             SEN(poll_time64),               "poll"                  },
 [1024 +  67] = { 2,    TF,             SEN(symlink),                   "symlink"               },
 [1024 +  68] = { 3,    TF,             SEN(readlink),                  "readlink"              },
 [1024 +  69] = { 1,    TF,             SEN(uselib),                    "uselib"                },
index 8fd41e55c4c9c56dc27668d94e5fc8523dd8abb7..7a2125c4b382ec14b30b32faafe1e317d7a2514b 100644 (file)
 [165] = { 3,   0,              SEN(getresuid16),               "getresuid"             },
 [166] = { 0,   PU|NF,          SEN(getpagesize),               "getpagesize"           },
 [167] = { 5,   0,              SEN(query_module),              "query_module"          },
-[168] = { 3,   TD,             SEN(poll),                      "poll"                  },
+[168] = { 3,   TD,             SEN(poll_time32),               "poll"                  },
 [169] = { 3,   0,              SEN(nfsservctl),                "nfsservctl"            },
 [170] = { 3,   0,              SEN(setresgid16),               "setresgid"             },
 [171] = { 3,   0,              SEN(getresgid16),               "getresgid"             },
index d09258af9df06b08efe71af49d4b3c22b53a34b4..b5ba9eb54ca29b3f1c0666590e4dff0e28e53c4a 100644 (file)
 [165] = { 3,   0,              SEN(getresuid16),               "getresuid"             },
 [166] = { 5,   0,              SEN(vm86),                      "vm86"                  },
 [167] = { 5,   0,              SEN(query_module),              "query_module"          },
-[168] = { 3,   TD,             SEN(poll),                      "poll"                  },
+[168] = { 3,   TD,             SEN(poll_time32),               "poll"                  },
 [169] = { 3,   0,              SEN(nfsservctl),                "nfsservctl"            },
 [170] = { 3,   0,              SEN(setresgid16),               "setresgid"             },
 [171] = { 3,   0,              SEN(getresgid16),               "getresgid"             },
index 96d2bc8cd8471e5e7da40b308c21f7b24f64c677..d8812591d474f5bf474e31be7209c98c746c10a8 100644 (file)
@@ -14,7 +14,7 @@
 [6004] = { 2,  TF|TST|TSTA,    SEN(stat64),                    "stat"                  },
 [6005] = { 2,  TD|TFST|TSTA,   SEN(fstat64),                   "fstat"                 },
 [6006] = { 2,  TF|TLST|TSTA,   SEN(lstat64),                   "lstat"                 },
-[6007] = { 3,  TD,             SEN(poll),                      "poll"                  },
+[6007] = { 3,  TD,             SEN(poll_time32),               "poll"                  },
 [6008] = { 3,  TD,             SEN(lseek),                     "lseek"                 },
 [6009] = { 6,  TD|TM|SI,       SEN(mmap),                      "mmap"                  },
 [6010] = { 3,  TM|SI,          SEN(mprotect),                  "mprotect"              },
index 6b9d4f41408a331ee69b74d059fc41866dbf337c..cbeda8d5931dbd141421a816b77c010bb06b2b87 100644 (file)
@@ -14,7 +14,7 @@
 [5004] = { 2,  TF|TST|TSTA,    SEN(stat),                      "stat"                  },
 [5005] = { 2,  TD|TFST|TSTA,   SEN(fstat),                     "fstat"                 },
 [5006] = { 2,  TF|TLST|TSTA,   SEN(lstat),                     "lstat"                 },
-[5007] = { 3,  TD,             SEN(poll),                      "poll"                  },
+[5007] = { 3,  TD,             SEN(poll_time64),               "poll"                  },
 [5008] = { 3,  TD,             SEN(lseek),                     "lseek"                 },
 [5009] = { 6,  TD|TM|SI,       SEN(mmap),                      "mmap"                  },
 [5010] = { 3,  TM|SI,          SEN(mprotect),                  "mprotect"              },
index bd9b80036fdcdf382efc4f521ca21fb37e623073..bc1d19251b2d3c6d30d1671e081ef6d60c5db202 100644 (file)
 [4185] = { 3,  0,              SEN(setresuid),                 "setresuid"             },
 [4186] = { 3,  0,              SEN(getresuid),                 "getresuid"             },
 [4187] = { 5,  0,              SEN(query_module),              "query_module"          },
-[4188] = { 3,  TD,             SEN(poll),                      "poll"                  },
+[4188] = { 3,  TD,             SEN(poll_time32),               "poll"                  },
 [4189] = { 3,  0,              SEN(nfsservctl),                "nfsservctl"            },
 [4190] = { 3,  0,              SEN(setresgid),                 "setresgid"             },
 [4191] = { 3,  0,              SEN(getresgid),                 "getresgid"             },
index 88769407fc5fc013b9fd6f28866c2a33079236b5..9f9cac5b5ce936f48cf7f6fdd51cd44a8b36eff4 100644 (file)
 [164] = { 3,   0,              SEN(setresuid),                 "setresuid"             },
 [165] = { 3,   0,              SEN(getresuid),                 "getresuid"             },
 [166] = { 5,   0,              SEN(query_module),              "query_module"          },
-[167] = { 3,   TD,             SEN(poll),                      "poll"                  },
+[167] = { 3,   TD,             SEN(poll_time32),               "poll"                  },
 [168] = { 3,   0,              SEN(nfsservctl),                "nfsservctl"            },
 [169] = { 3,   0,              SEN(setresgid),                 "setresgid"             },
 [170] = { 3,   0,              SEN(getresgid),                 "getresgid"             },
index 46883302d249d3f951e8e3c07535519bec04c9e2..3160c7e2cb27658c3cd69433128807d1c78d21a8 100644 (file)
 [164] = { 3,   0,              SEN(setresuid),                 "setresuid"             },
 [165] = { 3,   0,              SEN(getresuid),                 "getresuid"             },
 [166] = { 5,   0,              SEN(query_module),              "query_module"          },
-[167] = { 3,   TD,             SEN(poll),                      "poll"                  },
+[167] = { 3,   TD,             SEN(poll_time64),               "poll"                  },
 [168] = { 3,   0,              SEN(nfsservctl),                "nfsservctl"            },
 [169] = { 3,   0,              SEN(setresgid),                 "setresgid"             },
 [170] = { 3,   0,              SEN(getresgid),                 "getresgid"             },
index 4f87ab31d1db506a3b15f6273930bd2826d05d8b..9d4ddec091d2086de4d20103e31a86fb1431374d 100644 (file)
 [165] = { 3,   0,              SEN(getresuid16),               "getresuid"             },
 [166] = { },
 [167] = { 5,   0,              SEN(query_module),              "query_module"          },
-[168] = { 3,   TD,             SEN(poll),                      "poll"                  },
+[168] = { 3,   TD,             SEN(poll_time32),               "poll"                  },
 [169] = { 3,   0,              SEN(nfsservctl),                "nfsservctl"            },
 [170] = { 3,   0,              SEN(setresgid16),               "setresgid"             },
 [171] = { 3,   0,              SEN(getresgid16),               "getresgid"             },
index f0e1a06e9e89995865c6b450c4579f2572dfbeb8..e7fed9fff79b0c791da8989529b1f60022c34e6d 100644 (file)
 [163] = { 5,   TM|SI,          SEN(mremap),                    "mremap"                },
 [164 ... 166] = { },
 [167] = { 5,   0,              SEN(query_module),              "query_module"          },
-[168] = { 3,   TD,             SEN(poll),                      "poll"                  },
+[168] = { 3,   TD,             SEN(poll_time64),               "poll"                  },
 [169] = { 3,   0,              SEN(nfsservctl),                "nfsservctl"            },
 [170 ... 171] = { },
 [172] = { 5,   0,              SEN(prctl),                     "prctl"                 },
index d234eb67c2c6410435ee91b431ac861ba9012f7d..2b74868b6fe6e5520e219224c322f6cbf51bc669 100644 (file)
 [165] = { 3,   0,              SEN(getresuid16),               "getresuid"             },
 [166] = { 5,   0,              SEN(vm86),                      "vm86"                  },
 [167] = { 5,   0,              SEN(query_module),              "query_module"          },
-[168] = { 3,   TD,             SEN(poll),                      "poll"                  },
+[168] = { 3,   TD,             SEN(poll_time32),               "poll"                  },
 [169] = { 3,   0,              SEN(nfsservctl),                "nfsservctl"            },
 [170] = { 3,   0,              SEN(setresgid16),               "setresgid"             },
 [171] = { 3,   0,              SEN(getresgid16),               "getresgid"             },
index 38236e30b69cdefd016c3d119bc4ed796b82dbcc..82340a34ab157c06aa256629812e890d9c0e0a54 100644 (file)
 [165] = { 3,   0,              SEN(getresuid16),               "getresuid"             },
 [166] = { },
 [167] = { 5,   0,              SEN(query_module),              "query_module"          },
-[168] = { 3,   TD,             SEN(poll),                      "poll"                  },
+[168] = { 3,   TD,             SEN(poll_time64),               "poll"                  },
 [169] = { 3,   0,              SEN(nfsservctl),                "nfsservctl"            },
 [170] = { 3,   0,              SEN(setresgid16),               "setresgid"             },
 [171] = { 3,   0,              SEN(getresgid16),               "getresgid"             },
index 1d476d98b5ae48d6efc41c3cb5eb88e74e7e9a49..0366c34c8f8e9ba949b3a9d7c3d204c27a02ea7c 100644 (file)
 [150] = { 3,   TN,             SEN(getsockname),               "getsockname"           },
 [151] = { 0,   TD,             SEN(inotify_init),              "inotify_init"          },
 [152] = { 3,   TD|TF,          SEN(inotify_add_watch),         "inotify_add_watch"     },
-[153] = { 3,   TD,             SEN(poll),                      "poll"                  },
+[153] = { 3,   TD,             SEN(poll_time32),               "poll"                  },
 [154] = { 3,   TD,             SEN(getdents64),                "getdents64"            },
 [155] = { 3,   TD,             SEN(fcntl64),                   "fcntl64"               },
 [156] = { 2,   TD,             SEN(inotify_rm_watch),          "inotify_rm_watch"      },
index fc01b5396be3afddd7f7c80b9c8b4162f4d25130..289b30f4ba51e3d0346c9b97dc9b704741dddc47 100644 (file)
 [150] = { 3,   TN,             SEN(getsockname),               "getsockname"           },
 [151] = { 0,   TD,             SEN(inotify_init),              "inotify_init"          },
 [152] = { 3,   TD|TF,          SEN(inotify_add_watch),         "inotify_add_watch"     },
-[153] = { 3,   TD,             SEN(poll),                      "poll"                  },
+[153] = { 3,   TD,             SEN(poll_time64),               "poll"                  },
 [154] = { 3,   TD,             SEN(getdents64),                "getdents64"            },
 [155] = { },
 [156] = { 2,   TD,             SEN(inotify_rm_watch),          "inotify_rm_watch"      },
index be7a0eda74503689595102531f9300c1015481b6..a2b2b23cdf17f5195ad860ce975fce1a0eecb96f 100644 (file)
@@ -12,7 +12,7 @@
 [  4] = { 2,   TF|TST|TSTA,    SEN(stat),                      "stat"                  },
 [  5] = { 2,   TD|TFST|TSTA,   SEN(fstat),                     "fstat"                 },
 [  6] = { 2,   TF|TLST|TSTA,   SEN(lstat),                     "lstat"                 },
-[  7] = { 3,   TD,             SEN(poll),                      "poll"                  },
+[  7] = { 3,   TD,             SEN(poll_time64),               "poll"                  },
 [  8] = { 3,   TD,             SEN(lseek),                     "lseek"                 },
 [  9] = { 6,   TD|TM|SI,       SEN(mmap),                      "mmap"                  },
 [ 10] = { 3,   TM|SI,          SEN(mprotect),                  "mprotect"              },
index 2e2d6108f5d18f16c1600f5334c1dd9c56ad46e6..4b880af5dc74a1efba02a48669a4c2a9474f8f72 100644 (file)
@@ -12,7 +12,7 @@
 [  4] = { 2,   TF|TST|TSTA,    SEN(stat),                      "stat"                  },
 [  5] = { 2,   TD|TFST|TSTA,   SEN(fstat),                     "fstat"                 },
 [  6] = { 2,   TF|TLST|TSTA,   SEN(lstat),                     "lstat"                 },
-[  7] = { 3,   TD,             SEN(poll),                      "poll"                  },
+[  7] = { 3,   TD,             SEN(poll_time64),               "poll"                  },
 [  8] = { 3,   TD,             SEN(lseek),                     "lseek"                 },
 [  9] = { 6,   TD|TM|SI,       SEN(mmap),                      "mmap"                  },
 [ 10] = { 3,   TM|SI,          SEN(mprotect),                  "mprotect"              },
index 6b13cd6bec988b47fd9611101400b768ca1e6233..2cfcefde7cdb9e2a5e5f872460101da16a043b5f 100644 (file)
@@ -16,7 +16,7 @@
 [ 13] = { 3,   TD,             SEN(write),                     "write"                 },
 [ 14] = { 5,   TD,             SEN(select),                    "select"                },
 [ 15] = { 3,   TD,             SEN(lseek),                     "lseek"                 },
-[ 16] = { 3,   TD,             SEN(poll),                      "poll"                  },
+[ 16] = { 3,   TD,             SEN(poll_time32),               "poll"                  },
 [ 17] = { 5,   TD,             SEN(llseek),                    "_llseek"               },
 [ 18] = { 4,   TD,             SEN(epoll_wait),                "epoll_wait"            },
 [ 19] = { 4,   TD,             SEN(epoll_ctl),                 "epoll_ctl"             },
index 9810814ddce737bdd0c3f51c9eada63b3f762dbb..15d6f328b52faf49766485e84d58a59dda79725e 100644 (file)
@@ -287,7 +287,8 @@ pathtrace_match_set(struct tcb *tcp, struct path_set *set)
        case SEN_pselect6_time64:
        case SEN_select:
                return match_xselect_args(tcp, tcp->u_arg, set);
-       case SEN_poll:
+       case SEN_poll_time32:
+       case SEN_poll_time64:
        case SEN_ppoll_time32:
        case SEN_ppoll_time64:
        {
diff --git a/poll.c b/poll.c
index aa9dcc422d491ca5becf08a7efc85ce7b017c140..4cffaa7dfe72a608b17e7d9c771bb74f3959a119 100644 (file)
--- a/poll.c
+++ b/poll.c
@@ -133,7 +133,9 @@ decode_poll_exiting(struct tcb *const tcp, const sprint_obj_by_addr_fn sprint_ts
 #undef end_outstr
 }
 
-SYS_FUNC(poll)
+#if HAVE_ARCH_TIME32_SYSCALLS || HAVE_ARCH_OLD_TIME64_SYSCALLS
+static int
+do_poll(struct tcb *const tcp, const sprint_obj_by_addr_fn sprint_ts)
 {
        if (entering(tcp)) {
                decode_poll_entering(tcp);
@@ -141,9 +143,24 @@ SYS_FUNC(poll)
 
                return 0;
        } else {
-               return decode_poll_exiting(tcp, sprint_timespec, 0);
+               return decode_poll_exiting(tcp, sprint_ts, 0);
        }
 }
+#endif /* HAVE_ARCH_TIME32_SYSCALLS || HAVE_ARCH_OLD_TIME64_SYSCALLS */
+
+#if HAVE_ARCH_TIME32_SYSCALLS
+SYS_FUNC(poll_time32)
+{
+       return do_poll(tcp, sprint_timespec32);
+}
+#endif
+
+#if HAVE_ARCH_OLD_TIME64_SYSCALLS
+SYS_FUNC(poll_time64)
+{
+       return do_poll(tcp, sprint_timespec64);
+}
+#endif
 
 static int
 do_ppoll(struct tcb *const tcp, const print_obj_by_addr_fn print_ts,