diff options
-rw-r--r-- | recipes/util-linux-ng/util-linux-ng-2.16/util-linux-ng-replace-siginterrupt.patch | 23 | ||||
-rw-r--r-- | recipes/util-linux-ng/util-linux-ng_2.16.bb | 3 |
2 files changed, 25 insertions, 1 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); diff --git a/recipes/util-linux-ng/util-linux-ng_2.16.bb b/recipes/util-linux-ng/util-linux-ng_2.16.bb index c22219a816..e81ccca235 100644 --- a/recipes/util-linux-ng/util-linux-ng_2.16.bb +++ b/recipes/util-linux-ng/util-linux-ng_2.16.bb @@ -1,9 +1,10 @@ require util-linux-ng.inc -PR = "${INC_PR}.2" +PR = "${INC_PR}.3" SRC_URI += "file://uclibc-compile.patch;patch=1 \ file://tls.patch;patch=1 \ + file://util-linux-ng-replace-siginterrupt.patch;patch=1 \ " EXTRA_OECONF += " --enable-libuuid --enable-libblkid \ |