From owner-svn-src-stable-9@FreeBSD.ORG Wed Apr 17 23:56:38 2013 Return-Path: Delivered-To: svn-src-stable-9@freebsd.org Received: from mx1.freebsd.org (mx1.FreeBSD.org [8.8.178.115]) by hub.freebsd.org (Postfix) with ESMTP id 9E290325 for ; Wed, 17 Apr 2013 23:56:38 +0000 (UTC) (envelope-from jdc@koitsu.org) Received: from qmta01.emeryville.ca.mail.comcast.net (qmta01.emeryville.ca.mail.comcast.net [IPv6:2001:558:fe2d:43:76:96:30:16]) by mx1.freebsd.org (Postfix) with ESMTP id 7ED42E71 for ; Wed, 17 Apr 2013 23:56:38 +0000 (UTC) Received: from omta13.emeryville.ca.mail.comcast.net ([76.96.30.52]) by qmta01.emeryville.ca.mail.comcast.net with comcast id R8ra1l00U17UAYkA1BwefD; Wed, 17 Apr 2013 23:56:38 +0000 Received: from koitsu.strangled.net ([67.180.84.87]) by omta13.emeryville.ca.mail.comcast.net with comcast id RBwd1l0061t3BNj8ZBwdHy; Wed, 17 Apr 2013 23:56:37 +0000 Received: by icarus.home.lan (Postfix, from userid 1000) id 09CF373A33; Wed, 17 Apr 2013 16:56:37 -0700 (PDT) Date: Wed, 17 Apr 2013 16:56:37 -0700 From: Jeremy Chadwick To: Brooks Davis Subject: Re: svn commit: r249549 - in stable/9/sys: amd64/conf i386/conf Message-ID: <20130417235636.GA14262@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> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20130417225603.GA13720@icarus.home.lan> 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=1366242998; bh=syt4+XY6nuiQyBsKv0iTzcNrJneSLy721Szf+JV+l8A=; h=Received:Received:Received:Date:From:To:Subject:Message-ID: MIME-Version:Content-Type; b=oS8hqoVJjadAR1YkUpscEAfyJQgKjhG5prWgawMNTGKWWxuXoT6fiXwNSYpvtQSYt yYYN5kx9JbwzIcpOhwVHMfjavq2n/8lv2302iP91XTlt2AFIxDcpqd0Z/g8OpV9bxK wZsgKDmh4U5lNLMv7C93cObgIhZtI17shrM4lnYUOy0NG856pdo1y8pCgd0PVCWhL6 Vfloc0prCMUaOr28MHl29RotjjGyFODZZiuajhfV9iEOEv7uZDAi/pTmu0Y7Z2MnFL iKkOf5dvK8lxa6RBpAQ4zreXtlN2rwLPWu40xvDy2S4TRITXgpVRqc/lug01S14kbm x1OjdJ/PNqaNg== 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-stable-9@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: SVN commit messages for only the 9-stable src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 17 Apr 2013 23:56:38 -0000 On Wed, Apr 17, 2013 at 03:56:03PM -0700, Jeremy Chadwick wrote: > {snipping for brevity; thread reference is below } > { http://lists.freebsd.org/pipermail/svn-src-stable-9/2013-April/004258.html } > > I'll be doing the following to see where exactly the failure happens > since as we know parallel make causes confusing output sometimes, > > rm -fr /usr/obj/* && make -j2 buildworld && make buildkernel > > I doubt the parallelism has anything to do with the issue, however -- it > seems very clear cut to me that the issue is that buildkernel assumes > ctfconvert is in one's $PATH, which is not true if you have an active > system with WITHOUT_CDDL=true which you're trying to move *to* have > CDDL. Made no difference as I expected. Here's the result: -------------------------------------------------------------- >>> stage 3.2: building everything -------------------------------------------------------------- cd /usr/obj/usr/src/sys/GENERIC; MAKEOBJDIRPREFIX=/usr/obj MACHINE_ARCH=amd64 MACHINE=amd64 CPUTYPE= GROFF_BIN_PATH=/usr/obj/usr/src/tmp/legacy/usr/bin GROFF_FONT_PATH=/usr/obj/usr/src/tmp/legacy/usr/share/groff_font GROFF_TMAC_PATH=/usr/obj/usr/src/tmp/legacy/usr/share/tmac _SHLIBDIRPREFIX=/usr/obj/usr/src/tmp _LDSCRIPTROOT= VERSION="FreeBSD 9.1-STABLE amd64 901504" INSTALL="sh /usr/src/tools/install.sh" PATH=/usr/obj/usr/src/tmp/legacy/usr/sbin:/usr/obj/usr/src/tmp/legacy/usr/bin:/usr/obj/usr/src/tmp/legacy/usr/games:/usr/obj/usr/src/tmp/usr/sbin:/usr/obj/usr/src/tmp/usr/bin:/usr/obj/usr/src/tmp/usr/games:/sbin:/bin:/usr/sbin:/usr/bin COMPILER_TYPE=gcc make KERNEL=kernel all -DNO_MODULES_OBJ cc -c -x assembler-with-cpp -DLOCORE -O2 -frename-registers -pipe -fno-strict-aliasing -std=c99 -g -Wall -Wredundant-decls -Wnested-externs -Wstrict-prototypes -Wmissing-prototypes -Wpointer-arith -Winline -Wcast-qual -Wundef -Wno-pointer-sign -fformat-extensions -Wmissing-include-dirs -fdiagnostics-show-option -nostdinc -I. -I/usr/src/sys -I/usr/src/sys/contrib/altq -D_KERNEL -DHAVE_KERNEL_OPTION_HEADERS -include opt_global.h -fno-common -finline-limit=8000 --param inline-unit-growth=100 --param large-function-growth=1000 -fno-omit-frame-pointer -mcmodel=kernel -mno-red-zone -mno-mmx -mno-sse -msoft-float -fno-asynchronous-unwind-tables -ffreestanding -fstack-protector -Werror /usr/src/sys/amd64/amd64/locore.S cc -c -O2 -frename-registers -pipe -fno-strict-aliasing -std=c99 -g -Wall -Wredundant-decls -Wnested-externs -Wstrict-prototypes -Wmissing-prototypes -Wpointer-arith -Winline -Wcast-qual -Wundef -Wno-pointer-sign -fformat-extensions -Wmissing-include-dirs -fdiagnostics-show-option -nostdinc -I. -I/usr/src/sys -I/usr/src/sys/contrib/altq -D_KERNEL -DHAVE_KERNEL_OPTION_HEADERS -include opt_global.h -fno-common -finline-limit=8000 --param inline-unit-growth=100 --param large-function-growth=1000 -fno-omit-frame-pointer -mcmodel=kernel -mno-red-zone -mno-mmx -mno-sse -msoft-float -fno-asynchronous-unwind-tables -ffreestanding -fstack-protector -Werror aic7xxx_reg_print.c ctfconvert -L VERSION -g aic7xxx_reg_print.o ctfconvert: No such file or directory *** [aic7xxx_reg_print.o] Error code 1 Stop in /usr/obj/usr/src/sys/GENERIC. *** [buildkernel] Error code 1 Stop in /usr/src. *** [buildkernel] Error code 1 Stop in /usr/src. Apologies for the long paths and verbosity here, but... I started digging through Makefile.inc1, as my first inclination was to figure out why /usr/obj/usr/src/cddl/usr.bin (and usr.sbin) were missing from the PATH definition. I then realised that's not the proper solution, since all of those paths refer to /usr/obj/usr/src/tmp (note the "tmp/" part), and there are no cddl/CTF binaries in there anywhere. All the "tmp" stuff is referred to as $WORLDTMP. To me it looks like whatever populates ${WORLDTMP}/usr/bin and ${WORLDTMP}/usr/sbin is not properly handling (copying) binaries from the /usr/obj/usr/src/cddl/usr.bin and /usr/obj/usr/src/cddl/usr.sbin directory trees into the proper ${WORLDTMP} locations. Confused yet? :-) I'm not even sure where to begin looking for this, nor am I even sure doing that is the proper solution. As an example/test, I've been trying to figure out how addr2line makes it (gets copied**) from one tree/place to another: root@testbox:/usr/src # find /usr/obj -type f -perm 0755 -name "addr2line" -ls 2409648 2112 -rwxr-xr-x 1 root wheel 1033062 Apr 17 15:58 /usr/obj/usr/src/tmp/usr/bin/addr2line 321764 2112 -rwxr-xr-x 1 root wheel 1033062 Apr 17 15:58 /usr/obj/usr/src/tmp/usr/src/gnu/usr.bin/binutils/addr2line/addr2line 2422033 1472 -rwxr-xr-x 1 root wheel 705589 Apr 17 16:08 /usr/obj/usr/src/gnu/usr.bin/binutils/addr2line/addr2line And none of these are what's in /usr/bin (understandably), root@testbox:/usr/src # md5 `find /usr/obj -type f -perm 0755 -name "addr2line" -print` MD5 (/usr/obj/usr/src/tmp/usr/bin/addr2line) = 28d665ae81813d5e2a520498f7f03509 MD5 (/usr/obj/usr/src/tmp/usr/src/gnu/usr.bin/binutils/addr2line/addr2line) = 28d665ae81813d5e2a520498f7f03509 MD5 (/usr/obj/usr/src/gnu/usr.bin/binutils/addr2line/addr2line) = 71b2fde11947153c512617b496a65780 root@testbox:/usr/src # file `find /usr/obj -type f -perm 0755 -name "addr2line" -print` /usr/obj/usr/src/tmp/usr/bin/addr2line: ELF 64-bit LSB executable, x86-64, version 1 (FreeBSD), statically linked, for FreeBSD 9.1 (901504), not stripped /usr/obj/usr/src/tmp/usr/src/gnu/usr.bin/binutils/addr2line/addr2line: ELF 64-bit LSB executable, x86-64, version 1 (FreeBSD), statically linked, for FreeBSD 9.1 (901504), not stripped /usr/obj/usr/src/gnu/usr.bin/binutils/addr2line/addr2line: ELF 64-bit LSB executable, x86-64, version 1 (FreeBSD), dynamically linked (uses shared libs), for FreeBSD 9.1 (901504), not stripped ** -- Footnote question: does anyone know why hardlinks aren't used for the identical files? Yes, I'm aware hardlinks can't cross filesystems, but for the first 2 addr2line files I listed above I don't see that being a problem. That could save a lot of disk space, to be honest. -- | 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 |