pkgsrc-Users archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: GNOME screensaver hangs



rakheshster%gmail.com@localhost 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


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;
 


Home | Main Index | Thread Index | Old Index