From owner-svn-src-head@FreeBSD.ORG Fri Sep 27 02:35:15 2013 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id E821A1E9; Fri, 27 Sep 2013 02:35:15 +0000 (UTC) (envelope-from tim@kientzle.com) Received: from monday.kientzle.com (99-115-135-74.uvs.sntcca.sbcglobal.net [99.115.135.74]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id B63E32A84; Fri, 27 Sep 2013 02:35:14 +0000 (UTC) Received: (from root@localhost) by monday.kientzle.com (8.14.4/8.14.4) id r8R2Z8g7035211; Fri, 27 Sep 2013 02:35:08 GMT (envelope-from tim@kientzle.com) Received: from [192.168.2.123] (CiscoE3000 [192.168.1.65]) by kientzle.com with SMTP id cg7etj83qx96ezw8zu3pw4dxh6; Fri, 27 Sep 2013 02:35:07 +0000 (UTC) (envelope-from tim@kientzle.com) Content-Type: text/plain; charset=us-ascii Mime-Version: 1.0 (Mac OS X Mail 6.6 \(1510\)) Subject: Re: svn commit: r255775 - head/include From: Tim Kientzle In-Reply-To: <1379947117.1197.137.camel@revolution.hippie.lan> Date: Thu, 26 Sep 2013 19:35:07 -0700 Content-Transfer-Encoding: quoted-printable Message-Id: <6B2E36C3-C398-4B25-8DFC-93516B6E33CE@kientzle.com> References: <201309212236.r8LMa7mB019988@svn.freebsd.org> <46908E9F-A9B3-4ADF-A5A4-C77F5A479E65@kientzle.com> <1379947117.1197.137.camel@revolution.hippie.lan> To: Ian Lepore X-Mailer: Apple Mail (2.1510) Cc: svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers@freebsd.org X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 27 Sep 2013 02:35:16 -0000 Ian, Sorry for being a little slow to respond. It took me a while, but I have verified that a recent checkout, in my = environment: * Does build with this patch. * Does not build without it. Please commit. Thanks, Tim On Sep 23, 2013, at 7:38 AM, Ian Lepore wrote: > Yeah, I think the moral of this neverending story is that relying on = $0 > for pathnames is a Bad Idea. Apparently in addition to the patch from > PR 160646, we still need something like the patch I proposed in PR > 174422. I'll attach an updated version of that. I've got a test = build > running now, I'll see about getting it commited if it fixes the = problem > you're seeing. >=20 > -- Ian >=20 > On Mon, 2013-09-23 at 06:49 -0700, Tim Kientzle wrote: >> This breaks the build in the peculiar case where you have >> a git checkout of some other project, then a FreeBSD SVN >> checkout inside of that: >>=20 >> Project/.git >> Project/src/ -- FreeBSD source tree. >>=20 >> For some reason newvers.sh is now looking one level too far >> up, so it's seeing the dir containing the source tree instead of the >> root of the source tree. >>=20 >> This may be related to the use of '.' to run newvers.sh >> combined with newvers.sh using $(basename $0) to determine >> the script dir, but I haven't dug through in detail yet. >>=20 >> Tim >>=20 >>=20 >>=20 >> On Sep 21, 2013, at 3:36 PM, Ian Lepore wrote: >>=20 >>> Author: ian >>> Date: Sat Sep 21 22:36:07 2013 >>> New Revision: 255775 >>> URL: http://svnweb.freebsd.org/changeset/base/255775 >>>=20 >>> Log: >>> Create a separate script to generate osreldate.h rather than = sourcing >>> newvers.sh into a temporary subshell with inline make rules. >>>=20 >>> Using a separate script fixes a variety of problems, including = establishing >>> the correct dependencies in the makefiles. It also eliminates a = problem >>> with the way newvers.sh uses `realpath $0`, because $0 expands = differently >>> within a script sourced into a rule in a makefile depending on the = version >>> of make and of /bin/sh being used. The latter can cause build = breakage in a >>> cross-build environment, and can also make it difficult to compile = 10.0 on >>> older pre-10.0 systems. >>>=20 >>> PR: 160646 174422 >>> Submitted by: Garrett Cooper >>> Approved by: re (gjb) >>> MFC after: 2 weeks >>>=20 >>> Added: >>> head/include/mk-osreldate.sh (contents, props changed) >>> Modified: >>> head/include/Makefile >>>=20 >>> Modified: head/include/Makefile >>> = =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D >>> --- head/include/Makefile Sat Sep 21 22:24:10 2013 = (r255774) >>> +++ head/include/Makefile Sat Sep 21 22:36:07 2013 = (r255775) >>> @@ -104,19 +104,16 @@ SHARED?=3D copies >>>=20 >>> INCS+=3D osreldate.h >>>=20 >>> -osreldate.h: ${.CURDIR}/../sys/conf/newvers.sh = ${.CURDIR}/../sys/sys/param.h \ >>> - ${.CURDIR}/Makefile >>> - @${ECHO} creating osreldate.h from newvers.sh >>> - @MAKE=3D${MAKE}; \ >>> - PARAMFILE=3D${.CURDIR}/../sys/sys/param.h; \ >>> - . ${.CURDIR}/../sys/conf/newvers.sh; \ >>> - echo "$$COPYRIGHT" > osreldate.h; \ >>> - echo "#ifdef _KERNEL" >> osreldate.h; \ >>> - echo "#error \" cannot be used in the kernel, use = \"" >> osreldate.h; \ >>> - echo "#else" >> osreldate.h; \ >>> - echo "#undef __FreeBSD_version" >> osreldate.h; \ >>> - echo "#define __FreeBSD_version $$RELDATE" >> osreldate.h; \ >>> - echo "#endif" >> osreldate.h >>> +NEWVERS_SH=3D ${.CURDIR}/../sys/conf/newvers.sh >>> +PARAM_H=3D ${.CURDIR}/../sys/sys/param.h >>> +MK_OSRELDATE_SH=3D ${.CURDIR}/mk-osreldate.sh >>> + >>> +osreldate.h vers.c: ${NEWVERS_SH} ${PARAM_H} ${MK_OSRELDATE_SH} >>> + env ECHO=3D"${ECHO}" \ >>> + MAKE=3D"${MAKE}" \ >>> + NEWVERS_SH=3D${NEWVERS_SH} \ >>> + PARAM_H=3D${PARAM_H} \ >>> + ${MK_OSRELDATE_SH} >>>=20 >>> .for i in ${LHDRS} >>> INCSLINKS+=3D sys/$i ${INCLUDEDIR}/$i >>>=20 >>> Added: head/include/mk-osreldate.sh >>> = =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D >>> --- /dev/null 00:00:00 1970 (empty, because file is newly = added) >>> +++ head/include/mk-osreldate.sh Sat Sep 21 22:36:07 2013 = (r255775) >>> @@ -0,0 +1,49 @@ >>> +#!/bin/sh - >>> +# Copyright (c) 2013 Garrett Cooper >>> +# All rights reserved. >>> +# >>> +# Redistribution and use in source and binary forms, with or = without >>> +# modification, are permitted provided that the following = conditions >>> +# are met: >>> +# 1. Redistributions of source code must retain the above copyright >>> +# notice, this list of conditions and the following disclaimer. >>> +# 2. Redistributions in binary form must reproduce the above = copyright >>> +# notice, this list of conditions and the following disclaimer = in the >>> +# documentation and/or other materials provided with the = distribution. >>> +# >>> +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS = IS'' AND >>> +# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, = THE >>> +# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A = PARTICULAR PURPOSE >>> +# ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE = LIABLE >>> +# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR = CONSEQUENTIAL >>> +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE = GOODS >>> +# OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS = INTERRUPTION) >>> +# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN = CONTRACT, STRICT >>> +# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN = ANY WAY >>> +# OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE = POSSIBILITY OF >>> +# SUCH DAMAGE. >>> +# >>> +# $FreeBSD$ >>> + >>> +set -e >>> + >>> +CURDIR=3D$(pwd) >>> +ECHO=3D${ECHO:=3Decho} >>> + >>> +tmpfile=3D$(mktemp osreldate.XXXXXXXX) >>> +trap "rm -f $tmpfile" EXIT >>> + >>> +${ECHO} creating osreldate.h from newvers.sh >>> + >>> +export PARAMFILE=3D"${PARAM_H:=3D$CURDIR/../sys/sys/param.h}" >>> +. "${NEWVERS_SH:=3D$CURDIR/../sys/conf/newvers.sh}" >>> +cat > $tmpfile <>> +$COPYRIGHT >>> +#ifdef _KERNEL >>> +#error " cannot be used in the kernel, use = " >>> +#else >>> +#undef __FreeBSD_version >>> +#define __FreeBSD_version $RELDATE >>> +#endif >>> +EOF >>> +mv $tmpfile osreldate.h >>=20 >=20 > Index: include/Makefile > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D > --- include/Makefile (revision 255808) > +++ include/Makefile (working copy) > @@ -104,8 +104,9 @@ SHARED?=3D copies >=20 > INCS+=3D osreldate.h >=20 > -NEWVERS_SH=3D ${.CURDIR}/../sys/conf/newvers.sh > -PARAM_H=3D ${.CURDIR}/../sys/sys/param.h > +SYSDIR=3D ${.CURDIR}/../sys > +NEWVERS_SH=3D ${SYSDIR}/conf/newvers.sh > +PARAM_H=3D ${SYSDIR}/sys/param.h > MK_OSRELDATE_SH=3D ${.CURDIR}/mk-osreldate.sh >=20 > osreldate.h vers.c: ${NEWVERS_SH} ${PARAM_H} ${MK_OSRELDATE_SH} > @@ -113,6 +114,7 @@ osreldate.h vers.c: ${NEWVERS_SH} ${PARAM_H} ${MK_ > MAKE=3D"${MAKE}" \ > NEWVERS_SH=3D${NEWVERS_SH} \ > PARAM_H=3D${PARAM_H} \ > + SYSDIR=3D${SYSDIR} \ > sh ${MK_OSRELDATE_SH} >=20 > .for i in ${LHDRS} > Index: sys/conf/newvers.sh > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D > --- sys/conf/newvers.sh (revision 255808) > +++ sys/conf/newvers.sh (working copy) > @@ -38,8 +38,11 @@ if [ "X${BRANCH_OVERRIDE}" !=3D "X" ]; then > fi > RELEASE=3D"${REVISION}-${BRANCH}" > VERSION=3D"${TYPE} ${RELEASE}" > -SYSDIR=3D$(dirname $0)/.. >=20 > +if [ "X${SYSDIR}" =3D "X" ]; then > + SYSDIR=3D$(dirname $0)/.. > +fi > + > if [ "X${PARAMFILE}" !=3D "X" ]; then > RELDATE=3D$(awk '/__FreeBSD_version.*propagated to newvers/ = {print $3}' \ > ${PARAMFILE})