spare archs without time32 legacy the cost of ioctl fallback conversions
authorRich Felker <dalias@aerifal.cx>
Sun, 22 Dec 2019 18:25:17 +0000 (13:25 -0500)
committerRich Felker <dalias@aerifal.cx>
Sun, 22 Dec 2019 18:25:58 +0000 (13:25 -0500)
adding this condition makes the entire convert_ioctl_struct function
and compat_map table statically unreachable, and thereby optimized out
by dead code elimination, on archs where they are not needed.

src/misc/ioctl.c

index aa748fb..8947751 100644 (file)
@@ -120,7 +120,7 @@ int ioctl(int fd, int req, ...)
        arg = va_arg(ap, void *);
        va_end(ap);
        int r = __syscall(SYS_ioctl, fd, req, arg);
-       if (req && r==-ENOTTY) {
+       if (SIOCGSTAMP != SIOCGSTAMP_OLD && req && r==-ENOTTY) {
                for (int i=0; i<sizeof compat_map/sizeof *compat_map; i++) {
                        if (compat_map[i].new_req != req) continue;
                        union {