The following reply was made to PR misc/160646; it has been noted by GNATS.

From: dfil...@freebsd.org (dfilter service)
To: bug-follo...@freebsd.org
Cc:  
Subject: Re: misc/160646: 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 <yaneurab...@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-...@freebsd.org mailing list
 http://lists.freebsd.org/mailman/listinfo/svn-src-all
 To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"
 
_______________________________________________
freebsd-bugs@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-bugs
To unsubscribe, send any mail to "freebsd-bugs-unsubscr...@freebsd.org"

Reply via email to