Subject: Re: GNOME screensaver hangs
To: Rakhesh Sasidharan <rakheshster@gmail.com>
From: Matthias Drochner <M.Drochner@fz-juelich.de>
List: pkgsrc-users
Date: 05/27/2006 13:16:19
This is a multipart MIME message.

--==_Exmh_22371633745120
Content-Type: text/plain; charset=us-ascii


rakheshster@gmail.com said:
> I do have the system sources around actually. What do I have to do to
> pull in that patch and recompile libc?

It is not that hard on a native system which is otherwise unchanged
and not in production use:
-apply the appended patch (there will be conflicts around the
 RCS ID strings which are harmless)
 altertatively, "cvs update -j1.13 -j1.14 clnt_vc.c" should
 yield the same result
-cd /usr/src/lib/libc
-make obj; make dependall
-This will take a while.
-make a backup copy of the old /lib/libc.so.12.x
-make install
-try some commands, just to test the new libc
-if everything looks fine, reboot
-if not: /rescue/mv /lib/<saved libc.so.12.x> /lib/<old name>

I should better recommend that you have a backup of your important
data...

best regards
Matthias



--==_Exmh_22371633745120
Content-Type: text/plain ; name="sigfix.txt"; charset=us-ascii
Content-Description: sigfix.txt
Content-Disposition: attachment; filename="sigfix.txt"

Index: clnt_vc.c
===================================================================
RCS file: /cvsroot/src/lib/libc/rpc/clnt_vc.c,v
retrieving revision 1.13
retrieving revision 1.14
diff -u -p -r1.13 -r1.14
--- clnt_vc.c	3 Dec 2005 15:16:19 -0000	1.13
+++ clnt_vc.c	25 Apr 2006 18:54:51 -0000	1.14
@@ -1,4 +1,4 @@
-/*	$NetBSD: clnt_vc.c,v 1.13 2005/12/03 15:16:19 yamt Exp $	*/
+/*	$NetBSD: clnt_vc.c,v 1.14 2006/04/25 18:54:51 drochner Exp $	*/
 
 /*
  * Sun RPC is a product of Sun Microsystems, Inc. and is provided for
@@ -36,7 +36,7 @@ static char *sccsid = "@(#)clnt_tcp.c 1.
 static char *sccsid = "@(#)clnt_tcp.c	2.2 88/08/01 4.0 RPCSRC";
 static char sccsid[] = "@(#)clnt_vc.c 1.19 89/03/16 Copyr 1988 Sun Micro";
 #else
-__RCSID("$NetBSD: clnt_vc.c,v 1.13 2005/12/03 15:16:19 yamt Exp $");
+__RCSID("$NetBSD: clnt_vc.c,v 1.14 2006/04/25 18:54:51 drochner Exp $");
 #endif
 #endif
  
@@ -236,19 +236,21 @@ clnt_vc_create(fd, raddr, prog, vers, se
 			rpc_createerr.cf_stat = RPC_SYSTEMERROR;
 			rpc_createerr.cf_error.re_errno = errno;
 			mutex_unlock(&clnt_fd_lock);
+			thr_sigsetmask(SIG_SETMASK, &(mask), NULL);
 			goto fooy;
 		}
 		if (connect(fd, (struct sockaddr *)raddr->buf, raddr->len) < 0){
 			rpc_createerr.cf_stat = RPC_SYSTEMERROR;
 			rpc_createerr.cf_error.re_errno = errno;
 			mutex_unlock(&clnt_fd_lock);
+			thr_sigsetmask(SIG_SETMASK, &(mask), NULL);
 			goto fooy;
 		}
 	}
 	mutex_unlock(&clnt_fd_lock);
+	thr_sigsetmask(SIG_SETMASK, &(mask), NULL);
 	if (!__rpc_fd2sockinfo(fd, &si))
 		goto fooy;
-	thr_sigsetmask(SIG_SETMASK, &(mask), NULL);
 
 	ct->ct_closeit = FALSE;
 

--==_Exmh_22371633745120--