From owner-svn-src-all@FreeBSD.ORG Thu Nov 6 23:19:21 2014 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id F1D5BBE0; Thu, 6 Nov 2014 23:19:20 +0000 (UTC) Received: from mail-ig0-x231.google.com (mail-ig0-x231.google.com [IPv6:2607:f8b0:4001:c05::231]) (using TLSv1 with cipher ECDHE-RSA-RC4-SHA (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G2" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 5692CCBE; Thu, 6 Nov 2014 23:19:20 +0000 (UTC) Received: by mail-ig0-f177.google.com with SMTP id hl2so4373580igb.16 for ; Thu, 06 Nov 2014 15:19:19 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type; bh=cc1vBpvehLc1xKgpyvJIJe1hn1r1FVWZyfpj03XkJds=; b=PXm+bj/hOm4NtpvketcEgmNMx4O83kjSQ5/QCk65124x4R2m7i+UvzxvvQL6/DYi2n ENEjjTZ9RRboLkOtba19bxMNegQ5tJhU74YqfJD/65PA2A73GdNM2Mz26Rj84qDu+LXS azcTlLeG4lYOZGmk+bnQlcfdXFL3bybNdV67cHtZ31KRsG/Sjx1wE2zc82MiUKJPbxCf JoNHTxm16vxd/RYRt5ATh4eDtY3cW9rLE8U/j2LV0FK51eKokcgLRL6A9NHe3mZKd0u9 1XuhhVU8ZIY5AkfHwT0Vji4VMKQuKWOtjs7x0xavNvbw0ELULO+tPTtkfhdz5bHnK+0W elTQ== MIME-Version: 1.0 X-Received: by 10.50.93.6 with SMTP id cq6mr17358705igb.7.1415315959855; Thu, 06 Nov 2014 15:19:19 -0800 (PST) Received: by 10.50.235.49 with HTTP; Thu, 6 Nov 2014 15:19:19 -0800 (PST) In-Reply-To: <0ab001cffa16$3cab7d90$b60278b0$@FreeBSD.org> References: <201411062253.sA6Mro6t023294@svn.freebsd.org> <20141106230509.GA83754@troutmask.apl.washington.edu> <0ab001cffa16$3cab7d90$b60278b0$@FreeBSD.org> Date: Thu, 6 Nov 2014 15:19:19 -0800 Message-ID: Subject: Re: svn commit: r274203 - head From: NGie Cooper To: Devin Teske Content-Type: text/plain; charset=UTF-8 Cc: "svn-src-head@freebsd.org" , "svn-src-all@freebsd.org" , "src-committers@freebsd.org" , Steve Kargl X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.18-1 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: Thu, 06 Nov 2014 23:19:21 -0000 On Thu, Nov 6, 2014 at 3:06 PM, wrote: > >> -----Original Message----- >> From: Steve Kargl [mailto:sgk@troutmask.apl.washington.edu] >> Sent: Thursday, November 6, 2014 3:05 PM >> To: Devin Teske >> Cc: src-committers@freebsd.org; svn-src-all@freebsd.org; svn-src- >> head@freebsd.org >> Subject: Re: svn commit: r274203 - head >> >> On Thu, Nov 06, 2014 at 10:53:50PM +0000, Devin Teske wrote: >> > Author: dteske >> > Date: Thu Nov 6 22:53:50 2014 >> > New Revision: 274203 >> > URL: https://svnweb.freebsd.org/changeset/base/274203 >> > >> > Log: >> > SUBDIR_DEPENDS__ in lib/Makefile is not working out so well for me. >> > Add to using _prebuild_libs in (top-level) Makefile.inc1. >> > NB: Unbreak build yet again (we'll get this right eventually) >> >> Any chance that you can test your changes before committing? >> > > I don't have a -CURRENT box; and -CURRENT is giving different results. freefall's a pretty good build box for starters potentially (just point MAKEOBJDIRPREFIX to $HOME/obj) The real problem is that there's some build tiering that's taking place between different portions of the build, and depending on when and how things get done, things can go awry. There's one race that I asked dteske to fix, which is build gnu/lib/libdialog with _prebuild_libs (it will fail if the stars align properly today because gnu/lib is built in _generic_libs, as-is lib/). SUBDIR_DEPENDS/SUBDIR_PARALLEL doesn't work 100% unfortunately, as I've noticed in my own testing, depending on the order that things get installed/built. At best it only works if things use -L to point to libraries .PATH to point to files produced during the build, etc, and it doesn't work in dteske's case (lib A depends on lib B, which hasn't been installed to ${WORLDTMP}/usr/lib yet, so the linking process fails). make _libraries runs the `make obj; make depend; make all; make install` steps. Some libraries have implicit dependencies that aren't recorded; technically, gnu/lib/libdialog depends on libncurses as a build and runtime dependency, but because make _includes gets run before make _libraries, the build goes through without a hitch. The overlinking work that bapt's doing may unroot additional issues with implied dependencies in the build, or fix other issues if the libraries aren't fully spelled out. It'll be nice once we move away from this tiered building hell :(...