From owner-freebsd-current@FreeBSD.ORG Thu Nov 2 19:13:06 2006 Return-Path: X-Original-To: current@freebsd.org Delivered-To: freebsd-current@FreeBSD.ORG Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 69E8716A4FF; Thu, 2 Nov 2006 19:13:06 +0000 (UTC) (envelope-from morganw@chemikals.org) Received: from ms-smtp-03.southeast.rr.com (ms-smtp-03.southeast.rr.com [24.25.9.102]) by mx1.FreeBSD.org (Postfix) with ESMTP id 0E67743DDC; Thu, 2 Nov 2006 19:10:42 +0000 (GMT) (envelope-from morganw@chemikals.org) Received: from volatile.chemikals.org (cpe-024-211-118-154.sc.res.rr.com [24.211.118.154]) by ms-smtp-03.southeast.rr.com (8.13.6/8.13.6) with ESMTP id kA2JAK1V013115; Thu, 2 Nov 2006 14:10:21 -0500 (EST) Received: from localhost (morganw@localhost [127.0.0.1]) by volatile.chemikals.org (8.13.8/8.13.8) with ESMTP id kA2JAKjD093999; Thu, 2 Nov 2006 14:10:20 -0500 (EST) (envelope-from morganw@chemikals.org) Date: Thu, 2 Nov 2006 14:10:20 -0500 (EST) From: Wesley Morgan To: Dan Nelson In-Reply-To: <20061102184733.GJ3839@dan.emsphone.com> Message-ID: <20061102140344.K90169@volatile.chemikals.org> References: <454936CA.6060308@FreeBSD.org> <20061101200949.2d21ace0@kan.dnsalias.net> <20061102080524.R80586@volatile.chemikals.org> <20061102081122.2c99552f@kan.dnsalias.net> <20061102130420.B90169@volatile.chemikals.org> <20061102184733.GJ3839@dan.emsphone.com> MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII; format=flowed X-Virus-Scanned: Symantec AntiVirus Scan Engine Cc: Daniel Eischen , current@freebsd.org Subject: Re: libpthread shared library version number X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Discussions about the use of FreeBSD-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 02 Nov 2006 19:13:06 -0000 On Thu, 2 Nov 2006, Dan Nelson wrote: > In the last episode (Nov 02), Wesley Morgan said: >> I swapped a few e-mails with Maxime Henrion, but the gist of things >> was that after enabling symbol versioning, I immediately rebuilt >> everything -- world, ports, kernel. The random crashes I experienced >> were most apparent with two applications, csup and games/uqm from >> ports. Xorg would also crash every now and then... An example of what >> gdb showed me is: >> >> Updating collection ports-all/cvs >> Checkout ports/devel/ccrtp/Makefile >> Error set: No such file or directory >> Updater failed: Cannot create directories leading to >> "/usr/ports/devel/ccrtp/Makefile": Unknown error: 0 >> >> Breakpoint 1, mkdirhier (path=0x8c40180 "/usr/ports/devel/ccrtp", >> mask=18) at misc.c:293 >> 293 errno = 0; >> (gdb) n >> 294 if (access(path, F_OK) == 0) { >> (gdb) >> 298 perror("Error set"); >> (gdb) >> Error set: No such file or directory >> 299 if (errno != ENOENT) { >> (gdb) >> 300 path[i] = '/'; >> (gdb) print errno >> $1 = 0 >> (gdb) >> >> It seems that errno is being changed somewhere else?? I'm getting all >> kinds of wild results checking errno during execution in gdb. >> Sometimes it claims to be 2 or 22, sometimes 0. I'll have to build a >> UP kernel and see if that fixes the problem. Trying to use libthr >> instead of libpthread dies strangely in thr_getscheduler(). Ugh. > > That sort of looks like the perror() call zeroed out errno, which it > may do, since it calls a bunch of stdio functions. Try saving errno in > another variable before calling perror. I tried several things in misc.c:mkdirhier() at the time, such as resetting the value of errno just prior to the call to access(), artificially setting it, and I'm somewhat sure I tried that saving it at the time, without success. I can't be completely sure because I simply switched back to cvsup after a few hours of fiddling, before ultimately reverting back to non-versioned libraries. -- This .signature sanitized for your protection