summaryrefslogtreecommitdiff
path: root/recipes/util-linux-ng/util-linux-ng-2.16
diff options
context:
space:
mode:
authorKhem Raj <raj.khem@gmail.com>2009-08-05 13:26:58 -0700
committerKhem Raj <raj.khem@gmail.com>2009-08-05 13:26:58 -0700
commit4b3eefe53ff29779d6f1080f1f686d3eceba9fad (patch)
treefa10136bde78ab450493c7c05997af4bc9da1150 /recipes/util-linux-ng/util-linux-ng-2.16
parent3ea400c9bf63cf19228a25a307e92262c55ecb64 (diff)
util-linux-ng-2.16: Replace siginterrupt with sigaction.
siginterrupt is obsoleted and newer versions of uclibc has moved these functions to a different category which is not enabled by default. Best is to replace it with sigaction. Signed-off-by: Khem Raj <raj.khem@gmail.com>
Diffstat (limited to 'recipes/util-linux-ng/util-linux-ng-2.16')
-rw-r--r--recipes/util-linux-ng/util-linux-ng-2.16/util-linux-ng-replace-siginterrupt.patch23
1 files changed, 23 insertions, 0 deletions
diff --git a/recipes/util-linux-ng/util-linux-ng-2.16/util-linux-ng-replace-siginterrupt.patch b/recipes/util-linux-ng/util-linux-ng-2.16/util-linux-ng-replace-siginterrupt.patch
new file mode 100644
index 0000000000..4b5eb73760
--- /dev/null
+++ b/recipes/util-linux-ng/util-linux-ng-2.16/util-linux-ng-replace-siginterrupt.patch
@@ -0,0 +1,23 @@
+Index: util-linux-ng-2.14/login-utils/login.c
+===================================================================
+--- util-linux-ng-2.14.orig/login-utils/login.c 2008-05-28 16:01:02.000000000 -0700
++++ util-linux-ng-2.14/login-utils/login.c 2009-03-04 18:31:42.000000000 -0800
+@@ -358,6 +358,7 @@
+ char *childArgv[10];
+ char *buff;
+ int childArgc = 0;
++ struct sigaction act;
+ #ifdef HAVE_SECURITY_PAM_MISC_H
+ int retcode;
+ pam_handle_t *pamh = NULL;
+@@ -373,7 +374,9 @@
+ pid = getpid();
+
+ signal(SIGALRM, timedout);
+- siginterrupt(SIGALRM,1); /* we have to interrupt syscalls like ioclt() */
++ (void) sigaction(SIGALRM, NULL, &act);
++ act.sa_flags &= ~SA_RESTART;
++ sigaction(SIGALRM, &act, NULL);
+ alarm((unsigned int)timeout);
+ signal(SIGQUIT, SIG_IGN);
+ signal(SIGINT, SIG_IGN);