Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 21 Sep 2013 22:40:01 GMT
From:      dfilter@FreeBSD.ORG (dfilter service)
To:        freebsd-bugs@FreeBSD.org
Subject:   Re: conf/174422: commit references a PR
Message-ID:  <201309212240.r8LMe18x050300@freefall.freebsd.org>

next in thread | raw e-mail | index | archive | help
The following reply was made to PR conf/174422; it has been noted by GNATS.

From: dfilter@FreeBSD.ORG (dfilter service)
To: bug-followup@FreeBSD.org
Cc:  
Subject: Re: conf/174422: commit references a PR
Date: Sat, 21 Sep 2013 22:36:16 +0000 (UTC)

 Author: ian
 Date: Sat Sep 21 22:36:07 2013
 New Revision: 255775
 URL: http://svnweb.freebsd.org/changeset/base/255775
 
 Log:
   Create a separate script to generate osreldate.h rather than sourcing
   newvers.sh into a temporary subshell with inline make rules.
   
   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.
   
   PR:		160646 174422
   Submitted by:	Garrett Cooper <yaneurabeya@gmail.com>
   Approved by:	re (gjb)
   MFC after:	2 weeks
 
 Added:
   head/include/mk-osreldate.sh   (contents, props changed)
 Modified:
   head/include/Makefile
 
 Modified: head/include/Makefile
 ==============================================================================
 --- 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?=	copies
  
  INCS+=	osreldate.h
  
 -osreldate.h: ${.CURDIR}/../sys/conf/newvers.sh ${.CURDIR}/../sys/sys/param.h \
 -    ${.CURDIR}/Makefile
 -	@${ECHO} creating osreldate.h from newvers.sh
 -	@MAKE=${MAKE}; \
 -	PARAMFILE=${.CURDIR}/../sys/sys/param.h; \
 -	. ${.CURDIR}/../sys/conf/newvers.sh; \
 -	echo "$$COPYRIGHT" > osreldate.h; \
 -	echo "#ifdef _KERNEL" >> osreldate.h; \
 -	echo "#error \"<osreldate.h> cannot be used in the kernel, use <sys/param.h>\"" >> 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=		${.CURDIR}/../sys/conf/newvers.sh
 +PARAM_H=		${.CURDIR}/../sys/sys/param.h
 +MK_OSRELDATE_SH=	${.CURDIR}/mk-osreldate.sh
 +
 +osreldate.h vers.c: ${NEWVERS_SH} ${PARAM_H} ${MK_OSRELDATE_SH}
 +	env ECHO="${ECHO}" \
 +	    MAKE="${MAKE}" \
 +	    NEWVERS_SH=${NEWVERS_SH} \
 +	    PARAM_H=${PARAM_H} \
 +	    ${MK_OSRELDATE_SH}
  
  .for i in ${LHDRS}
  INCSLINKS+=	sys/$i ${INCLUDEDIR}/$i
 
 Added: head/include/mk-osreldate.sh
 ==============================================================================
 --- /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=$(pwd)
 +ECHO=${ECHO:=echo}
 +
 +tmpfile=$(mktemp osreldate.XXXXXXXX)
 +trap "rm -f $tmpfile" EXIT
 +
 +${ECHO} creating osreldate.h from newvers.sh
 +
 +export PARAMFILE="${PARAM_H:=$CURDIR/../sys/sys/param.h}"
 +. "${NEWVERS_SH:=$CURDIR/../sys/conf/newvers.sh}"
 +cat > $tmpfile <<EOF
 +$COPYRIGHT
 +#ifdef _KERNEL
 +#error "<osreldate.h> cannot be used in the kernel, use <sys/param.h>"
 +#else
 +#undef __FreeBSD_version
 +#define __FreeBSD_version $RELDATE
 +#endif
 +EOF
 +mv $tmpfile osreldate.h
 _______________________________________________
 svn-src-all@freebsd.org mailing list
 http://lists.freebsd.org/mailman/listinfo/svn-src-all
 To unsubscribe, send any mail to "svn-src-all-unsubscribe@freebsd.org"
 



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201309212240.r8LMe18x050300>