]> git.proxmox.com Git - mirror_zfs.git/commitdiff
Use sigaction(2) instead of sigset(3) for portability
authorTomohiro Kusumi <kusumi.tomohiro@gmail.com>
Tue, 9 Apr 2019 16:58:03 +0000 (01:58 +0900)
committerBrian Behlendorf <behlendorf1@llnl.gov>
Wed, 1 May 2019 03:45:17 +0000 (20:45 -0700)
sigset(3) isn't portable.
This code fails to compile on platforms without sigset(3).
Use sigaction(2).

--
largest_file.c: In function 'main':
largest_file.c:75:9: error: implicit declaration of function 'sigset'; did you mean 'sigvec'? [-Werror=implicit-function-declaration]
  (void) sigset(SIGXFSZ, sigxfsz);
         ^~~~~~
         sigvec

Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
Signed-off-by: Tomohiro Kusumi <kusumi.tomohiro@gmail.com>
Closes #8593

tests/zfs-tests/cmd/largest_file/largest_file.c

index 5e6a1866059b1aed0a2dbe41c8625e69695b5155..d1eceaf56825e455f7967b5389ab8e690d3fd094 100644 (file)
@@ -67,12 +67,18 @@ main(int argc, char **argv)
        char            mybuf[5] = "aaaa\0";
        char            *testfile;
        mode_t          mode = S_IRUSR | S_IWUSR | S_IRGRP | S_IROTH;
+       struct sigaction sa;
 
        if (argc != 2) {
                usage(argv[0]);
        }
 
-       (void) sigset(SIGXFSZ, sigxfsz);
+       if (sigemptyset(&sa.sa_mask) == -1)
+               return (errno);
+       sa.sa_flags = 0;
+       sa.sa_handler = sigxfsz;
+       if (sigaction(SIGXFSZ, &sa, NULL) == -1)
+               return (errno);
 
        testfile = strdup(argv[1]);