From owner-svn-src-all@FreeBSD.ORG Fri Apr 19 00:47:19 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.FreeBSD.org [8.8.178.115]) by hub.freebsd.org (Postfix) with ESMTP id 5D8A657F for ; Fri, 19 Apr 2013 00:47:19 +0000 (UTC) (envelope-from jdc@koitsu.org) Received: from qmta02.emeryville.ca.mail.comcast.net (qmta02.emeryville.ca.mail.comcast.net [IPv6:2001:558:fe2d:43:76:96:30:24]) by mx1.freebsd.org (Postfix) with ESMTP id 3E6DEDE5 for ; Fri, 19 Apr 2013 00:47:19 +0000 (UTC) Received: from omta09.emeryville.ca.mail.comcast.net ([76.96.30.20]) by qmta02.emeryville.ca.mail.comcast.net with comcast id Rc6f1l0010S2fkCA2cnKFf; Fri, 19 Apr 2013 00:47:19 +0000 Received: from koitsu.strangled.net ([67.180.84.87]) by omta09.emeryville.ca.mail.comcast.net with comcast id RcnJ1l00J1t3BNj8VcnJev; Fri, 19 Apr 2013 00:47:18 +0000 Received: by icarus.home.lan (Postfix, from userid 1000) id 35FBF73A33; Thu, 18 Apr 2013 17:47:18 -0700 (PDT) Date: Thu, 18 Apr 2013 17:47:18 -0700 From: Jeremy Chadwick To: Brooks Davis Subject: Re: svn commit: r249549 - in stable/9/sys: amd64/conf i386/conf Message-ID: <20130419004718.GA40897@icarus.home.lan> References: <201304161609.r3GG9SID009937@svn.freebsd.org> <20130416161919.GA80626@icarus.home.lan> <20130417125433.GC30222@caravan.chchile.org> <20130417193538.GB9331@icarus.home.lan> <20130417194706.GA30583@lor.one-eyed-alien.net> <20130417225603.GA13720@icarus.home.lan> <20130418022102.GB31612@lor.one-eyed-alien.net> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20130418022102.GB31612@lor.one-eyed-alien.net> User-Agent: Mutt/1.5.21 (2010-09-15) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=comcast.net; s=q20121106; t=1366332439; bh=vvZYee3haJkv/dBfhSULzfRkjrLbC/oASS4Wi7Ned2s=; h=Received:Received:Received:Date:From:To:Subject:Message-ID: MIME-Version:Content-Type; b=LEGo6i+8Tn1PoRnSphADkyNZSbqJ6nNcO9c6PkZf23BSN0XrHGMA5ggaUFUpaUQVm u68Zhi7YZXX9ZjPHWC8uyRyTsabtfYcrR3CcDGn9o8Sq++9srbNOil28AVef4TMfBA i12Wcj32BAJTpaG1biYJxvMOspXfQjgnuSFbzt69AIjaedDh1+sxNsbafhVZDxIHR7 1XWAPnnueQdxPFS5RhVKnNTZ8/IkLiPQzCmja9F0s4NnN8oZnv40Nxdj7ueMjPCUdo YJqYVzvSNzOTSJqX0npOqvMrKe4HdBVJlmv6+Q2x1ZpjD/FW33RotQUF32rFYnGke1 OcmJCDUZV/Yzw== Cc: svn-src-stable@FreeBSD.org, svn-src-all@FreeBSD.org, src-committers@FreeBSD.org, svn-src-stable-9@FreeBSD.org X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 19 Apr 2013 00:47:19 -0000 On Wed, Apr 17, 2013 at 09:21:02PM -0500, Brooks Davis wrote: > On Wed, Apr 17, 2013 at 03:56:03PM -0700, Jeremy Chadwick wrote: > > On Wed, Apr 17, 2013 at 02:47:06PM -0500, Brooks Davis wrote: > > > On Wed, Apr 17, 2013 at 12:35:38PM -0700, Jeremy Chadwick wrote: > > > > On Wed, Apr 17, 2013 at 02:54:33PM +0200, Jeremie Le Hen wrote: > > > > > Hi Jeremy, > > > > > > > > > > On Tue, Apr 16, 2013 at 09:19:19AM -0700, Jeremy Chadwick wrote: > > > > > > > > > > > > Now that this has been enabled by default, I should warn folks of a > > > > > > caveat that I found in the buildworld/buildkernel framework. It's > > > > > > easiest to explain like this: > > > > > > > > > > > > 1. Install FreeBSD 9.x, svn checkout of stable/9, etc... > > > > > > 2. Add WITHOUT_CDDL=true to /etc/src.conf > > > > > > 3. Rebuild + install kernel/world per src/Makefile procedure > > > > > > 4. Remove WITHOUT_CDDL=true from /etc/src.conf > > > > > > 5. rm -fr /usr/obj/* > > > > > > 6. Rebuild world > > > > > > 7. Rebuild kernel -- fails, stating "ctfconvert: not found". > > > > > > > > > > > > For whatever reason the buildkernel bits make the assumption that > > > > > > ctfconvert exists on the system (presumably in $PATH or possibly a > > > > > > hard-coded), when ideally it should try to use the recently-built > > > > > > version in /usr/obj first. > > > > > > > > > > I've tested this is a freshly installed 9.1-RELEASE jail and I haven't > > > > > been biten by the bug you describe. > > > > > > > > > > ctfconvert(1) seems to be installed by default in 9.1-RELEASE, this is > > > > > probably there problem didn't occur. I can easily verify this in the > > > > > jail: > > > > > > > > > > % root@test9:/usr/src # ls -l /usr/bin/ctfconvert /usr/bin/vi /usr/bin/tail > > > > > % -r-xr-xr-x 1 root wheel 371536 Dec 4 09:33 /usr/bin/ctfconvert > > > > > % -r-xr-xr-x 1 root wheel 19848 Apr 17 06:28 /usr/bin/tail > > > > > % -r-xr-xr-x 6 root wheel 346432 Apr 17 06:28 /usr/bin/vi > > > > > > > > > > > > > > > Do you have a theory about why you've got the problem while I haven't? > > > > > FYI, it seems 9.0-RELEASE also has ctfconvert(1): > > > > > http://svnweb.freebsd.org/base/release/9.0.0/cddl/usr.bin/ctfconvert/ > > > > > > > > > > My guess is tha this might happen if you don't have /usr/bin/ctfconvert. > > > > > I've just removed it and trying to build kernel again. > > > > > > > > I will spend some time to figure out exactly how to reproduce this. > > > > > > > > Going from recent memory (~2 weeks ago), I encountered it on my VPS box > > > > (which does run ntpd, just FYI): > > > > > > > > 1. Initially installed with 9.1-RELEASE, > > > > 2. Upgraded to stable/9 (using svn), > > > > 3. WITHOUT_CDDL=true and WITHOUT_ZFS=true added to /etc/src.conf > > > > 4. world/kernel rebuilt/reinstalled/etc. (this includes make delete-old, > > > > as per instructions in src/Makefile -- which would delete > > > > /usr/bin/ctfconvert) > > > > 5. Fast forward many months > > > > 6. Removed WITHOUT_CDDL=true from src.conf > > > > 7. Encountered the above issue ("ctfconvert: not found") during > > > > buildkernel > > > > 8. Rebuilt kernel again -- same error > > > > 9. Removed WITHOUT_ZFS=true from src.conf > > > > 10. Rebuilt kernel again -- worked > > > > > > > > This could mean WITHOUT_ZFS=true has some bearing on this situation, but > > > > I don't see how/why, as WITHOUT_CDDL is supposed to be the "trigger" for > > > > ctf* utilities. I did poke around the Makefiles and framework a bit > > > > but didn't have any epiphanies. > > > > > > > > Like I said -- I'll try to reproduce the exact scenario. > > > > > > Looking at Makefile.inc1 around line 1164 (on HEAD), ctfconvert and > > > cftmerge are bootstrap tools only when they don't exist at all on the > > > host. The code there should be expanded to bootstrap for cases where > > > the installed ones are known to be broken (virtually all prior versions > > > given recent fixes) as well as when they aren't present on the host > > > system. > > > > I'm able to reproduce the issue I speak of with 100% reliability. > > Jeremie, I'm not sure why you're not able to reproduce this, because I > > can do so reliably/consistently. > > The following patch will probably fix the problem. > > Index: Makefile.inc1 > =================================================================== > --- Makefile.inc1 (revision 249590) > +++ Makefile.inc1 (working copy) > @@ -1114,9 +1114,7 @@ > usr.bin/clang/clang-tblgen > .endif > > -.if ${MK_CDDL} != "no" && \ > - ${BOOTSTRAPPING} < 800038 && \ > - !(${BOOTSTRAPPING} >= 700112 && ${BOOTSTRAPPING} < 799999) > +.if ${MK_CDDL} != "no" > _dtrace_tools= cddl/usr.bin/sgsmsg cddl/lib/libctf lib/libelf \ > lib/libdwarf cddl/usr.bin/ctfconvert cddl/usr.bin/ctfmerge > .endif > > This patch unconditionally bootstraps ctfconvert and ctfmerge unless > WITHOUT_CDDL is set. The above patch now breaks buildworld (not buildkernel) when WITHOUT_CDDL=true **is not** defined: cc -O2 -pipe -I/usr/src/cddl/usr.bin/ctfconvert/../../../sys/cddl/compat/opensolaris -I/usr/src/cddl/usr.bin/ctfconvert/../../../cddl/compat/opensolaris/include -I/usr/src/cddl/usr.bin/ctfconvert/../../../cddl/contrib/opensolaris -I/usr/src/cddl/usr.bin/ctfconvert/../../../sys/cddl/contrib/opensolaris -I/usr/src/cddl/usr.bin/ctfconvert/../../../cddl/contrib/opensolaris/head -I/usr/src/cddl/usr.bin/ctfconvert/../../../cddl/contrib/opensolaris/tools/ctf/common -I/usr/src/cddl/usr.bin/ctfconvert/../../../cddl/contrib/opensolaris/tools/ctf/cvt -I/usr/src/cddl/usr.bin/ctfconvert/../../../sys/cddl/contrib/opensolaris/uts/common -DNEED_SOLARIS_BOOLEAN -g -std=gnu89 -Wno-unknown-pragmas -I/usr/obj/usr/src/tmp/legacy/usr/include -c /usr/src/cddl/usr.bin/ctfconvert/../../../cddl/contrib/opensolaris/tools/ctf/cvt/util.c make: don't know how to make /usr/lib/libctf.a. Stop *** [bootstrap-tools] Error code 2 Stop in /usr/src. *** [_bootstrap-tools] Error code 1 Stop in /usr/src. *** [buildworld] Error code 1 Stop in /usr/src. By the way, the lines relevant to the _dtrace_tools assignment contain spaces, not tabs, which is generally considered bad. Fixing this doesn't fix the above buildworld failure. -- | Jeremy Chadwick jdc@koitsu.org | | UNIX Systems Administrator http://jdc.koitsu.org/ | | Mountain View, CA, US | | Making life hard for others since 1977. PGP 4BD6C0CB |