Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 6 Aug 2014 19:04:05 +0000 (UTC)
From:      Glen Barber <gjb@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r269639 - in head/release: . arm
Message-ID:  <53e27c25.5c51.37e0e59@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: gjb
Date: Wed Aug  6 19:04:05 2014
New Revision: 269639
URL: http://svnweb.freebsd.org/changeset/base/269639

Log:
  Merge the following from ^/projects/release-noxdev:
  r269549, r269551, r269552, r269553, r269554, r269555, r269558, r269559,
  r269560, r269561, r269628, r269629, r269630, r269635, r269637:
  
  r269549:
    Create a new project branch, release-noxdev, for
    a sandbox workspace outside of head/ to update the
    release bits for arm builds since the deprecation of
    the XDEV and XDEV_ARCH make(1) variables.
  
  r269551:
    Define load_chroot_env() and load_target_env()
    prototypes.
  
  r269552:
    Call load_chroot_env() and load_target_env() where
    they can be mutually conflicting with regard to
    TARGET, TARGET_ARCH, XDEV, and XDEV_ARCH.
  
  r269553:
    Add shebang line to arm/*.conf files since these
    should be considered to be executable (albeit not
    on their own) shell scripts.
  
  r269554:
    Redefine load_chroot_env() and load_target_env() in
    the arm/*.conf files, and reindent.
  
  r269555:
    Simplify where load_chroot_env() and load_target_env() are
    called.
  
  r269558:
    Provide example in release.conf.sample for overriding the
    load_chroot_env() and load_target_env() prototypes.
  
  r269559:
    Remove a gratuitous newline.
  
  r269560:
    Unset potentially conflicting variables in load_chroot_env()
    and load_target_env().
  
  r269561:
    Make global variables global, and accessible outside of
    the functions within which they were once defined.
  
  r269628:
    Remove XDEV/XDEV_ARCH evaluation if EMBEDDEDBUILD is set.
  
  r269629:
    In arm/release.sh, switch TARGET/TARGET_ARCH back to the
    original XDEV/XDEV_ARCH make(1) variables.
  
    In theory, this should have been a no-op, but the TARGET and
    TARGET_ARCH are now unset in load_target_env() to avoid
    collision with the chroot userland.
  
  r269630:
    Export variables in the arm/*.conf files because they
    need to be passed through release.sh to arm/release.sh.
  
    Set MK_TESTS=no for the xdev target.
  
  r269635:
    As part of the XDEV/XDEV_ARCH deprecation, the
    'xdev-links' target was intentionally no longer
    invoked automatically.
  
    Invoke the xdev-links target after xdev, which
    creates, for example, /usr/bin/armv6-freebsd-cc
    symlink to /usr/armv6-freebsd/usr/bin/cc.
  
  r269637:
    Set TARGET and TARGET_ARCH to the XDEV and XDEV_ARCH
    counterparts for the xdev and xdev-links make(1)
    targets.
  
  Sponsored by:	The FreeBSD Foundation

Modified:
  head/release/arm/BEAGLEBONE.conf
  head/release/arm/PANDABOARD.conf
  head/release/arm/RPI-B.conf
  head/release/arm/WANDBOARD-QUAD.conf
  head/release/arm/ZEDBOARD.conf
  head/release/arm/release.sh
  head/release/release.conf.sample
  head/release/release.sh

Modified: head/release/arm/BEAGLEBONE.conf
==============================================================================
--- head/release/arm/BEAGLEBONE.conf	Wed Aug  6 18:59:39 2014	(r269638)
+++ head/release/arm/BEAGLEBONE.conf	Wed Aug  6 19:04:05 2014	(r269639)
@@ -1,30 +1,37 @@
+#!/bin/sh
 #
 # $FreeBSD$
 #
 
+# Global variables.
+export SVNROOT="svn://svn.FreeBSD.org/"
+export SRCBRANCH="base/head@rHEAD"
+export DOCBRANCH="doc/head@rHEAD"
+export PORTBRANCH="ports/head@rHEAD"
+export NODOC=yes
+export WORLD_FLAGS="-j $(sysctl -n hw.ncpu)"
+export KERNEL_FLAGS="-j $(( $(( $(sysctl -n hw.ncpu) + 1 )) / 2 ))"
+export CHROOTDIR="/scratch"
+export EMBEDDEDBUILD=1
+
 # Build chroot configuration
-TARGET="amd64"
-TARGET_ARCH="amd64"
-SVNROOT="svn://svn.FreeBSD.org/"
-SRCBRANCH="base/head@rHEAD"
-DOCBRANCH="doc/head@rHEAD"
-PORTBRANCH="ports/head@rHEAD"
-NODOC=yes
+load_chroot_env() {
+	# Avoid collision with TARGET and XDEV.
+	unset XDEV XDEV_ARCH KERNEL
+	export TARGET="amd64"
+	export TARGET_ARCH="amd64"
+}
 
 # Build target configuration
-# Since this file is sourced by a script that runs another
-# script, these must be exported.
-set -a
-WORLD_FLAGS="-j $(sysctl -n hw.ncpu)"
-KERNEL_FLAGS="-j $(( $(( $(sysctl -n hw.ncpu) + 1 )) / 2 ))"
-CHROOTDIR="/scratch"
-EMBEDDEDBUILD=1
-EMBEDDEDPORTS="lang/python textproc/gsed"
-XDEV="arm"
-XDEV_ARCH="armv6"
-XDEV_FLAGS="WITH_GCC=1 WITH_GCC_BOOTSTRAP=1 WITHOUT_CLANG_IS_CC=1"
-KERNEL="BEAGLEBONE"
-CROCHETSRC="https://github.com/kientzle/crochet-freebsd"
-CROCHETBRANCH="trunk"
-set +a
-
+load_target_env() {
+	# Avoid collision with TARGET and XDEV.
+	unset TARGET TARGET_ARCH
+	export EMBEDDEDPORTS="lang/python textproc/gsed"
+	export XDEV="arm"
+	export XDEV_ARCH="armv6"
+	export XDEV_FLAGS="WITH_GCC=1 WITH_GCC_BOOTSTRAP=1 WITHOUT_CLANG_IS_CC=1"
+	export XDEV_FLAGS="${XDEV_FLAGS} MK_TESTS=no"
+	export KERNEL="BEAGLEBONE"
+	export CROCHETSRC="https://github.com/kientzle/crochet-freebsd"
+	export CROCHETBRANCH="trunk"
+}

Modified: head/release/arm/PANDABOARD.conf
==============================================================================
--- head/release/arm/PANDABOARD.conf	Wed Aug  6 18:59:39 2014	(r269638)
+++ head/release/arm/PANDABOARD.conf	Wed Aug  6 19:04:05 2014	(r269639)
@@ -1,30 +1,37 @@
+#!/bin/sh
 #
 # $FreeBSD$
 #
 
+# Global variables.
+export SVNROOT="svn://svn.FreeBSD.org/"
+export SRCBRANCH="base/head@rHEAD"
+export DOCBRANCH="doc/head@rHEAD"
+export PORTBRANCH="ports/head@rHEAD"
+export NODOC=yes
+export WORLD_FLAGS="-j $(sysctl -n hw.ncpu)"
+export KERNEL_FLAGS="-j $(( $(( $(sysctl -n hw.ncpu) + 1 )) / 2 ))"
+export CHROOTDIR="/scratch"
+export EMBEDDEDBUILD=1
+export EMBEDDEDPORTS="lang/python textproc/gsed"
+
 # Build chroot configuration
-TARGET="amd64"
-TARGET_ARCH="amd64"
-SVNROOT="svn://svn.FreeBSD.org/"
-SRCBRANCH="base/head@rHEAD"
-DOCBRANCH="doc/head@rHEAD"
-PORTBRANCH="ports/head@rHEAD"
-NODOC=yes
+load_chroot_env() {
+	# Avoid collision with TARGET and XDEV.
+	unset XDEV XDEV_ARCH KERNEL
+	export TARGET="amd64"
+	export TARGET_ARCH="amd64"
+}
 
 # Build target configuration
-# Since this file is sourced by a script that runs another
-# script, these must be exported.
-set -a
-WORLD_FLAGS="-j $(sysctl -n hw.ncpu)"
-KERNEL_FLAGS="-j $(( $(( $(sysctl -n hw.ncpu) + 1 )) / 2 ))"
-CHROOTDIR="/scratch"
-EMBEDDEDBUILD=1
-EMBEDDEDPORTS="lang/python textproc/gsed"
-XDEV="arm"
-XDEV_ARCH="armv6"
-XDEV_FLAGS="WITH_GCC=1 WITH_GCC_BOOTSTRAP=1 WITHOUT_CLANG_IS_CC=1"
-KERNEL="PANDABOARD"
-CROCHETSRC="https://github.com/kientzle/crochet-freebsd"
-CROCHETBRANCH="trunk"
-set +a
-
+load_target_env() {
+	# Avoid collision with TARGET and XDEV.
+	unset TARGET TARGET_ARCH
+	export XDEV="arm"
+	export XDEV_ARCH="armv6"
+	export XDEV_FLAGS="WITH_GCC=1 WITH_GCC_BOOTSTRAP=1 WITHOUT_CLANG_IS_CC=1"
+	export XDEV_FLAGS="${XDEV_FLAGS} MK_TESTS=no"
+	export KERNEL="PANDABOARD"
+	export CROCHETSRC="https://github.com/kientzle/crochet-freebsd"
+	export CROCHETBRANCH="trunk"
+}

Modified: head/release/arm/RPI-B.conf
==============================================================================
--- head/release/arm/RPI-B.conf	Wed Aug  6 18:59:39 2014	(r269638)
+++ head/release/arm/RPI-B.conf	Wed Aug  6 19:04:05 2014	(r269639)
@@ -1,32 +1,40 @@
+#!/bin/sh
 #
 # $FreeBSD$
 #
 
+# Global variables.
+export SVNROOT="svn://svn.FreeBSD.org/"
+export SRCBRANCH="base/head@rHEAD"
+export DOCBRANCH="doc/head@rHEAD"
+export PORTBRANCH="ports/head@rHEAD"
+export NODOC=yes
+export WORLD_FLAGS="-j $(sysctl -n hw.ncpu)"
+export KERNEL_FLAGS="-j $(( $(( $(sysctl -n hw.ncpu) + 1 )) / 2 ))"
+export CHROOTDIR="/scratch"
+export EMBEDDEDBUILD=1
+export EMBEDDEDPORTS="lang/python textproc/gsed"
+
 # Build chroot configuration
-TARGET="amd64"
-TARGET_ARCH="amd64"
-SVNROOT="svn://svn.FreeBSD.org/"
-SRCBRANCH="base/head@rHEAD"
-DOCBRANCH="doc/head@rHEAD"
-PORTBRANCH="ports/head@rHEAD"
-NODOC=yes
+load_chroot_env() {
+	# Avoid collision with TARGET and XDEV.
+	unset XDEV XDEV_ARCH KERNEL
+	export TARGET="amd64"
+	export TARGET_ARCH="amd64"
+}
 
 # Build target configuration
-# Since this file is sourced by a script that runs another
-# script, these must be exported.
-set -a
-WORLD_FLAGS="-j $(sysctl -n hw.ncpu)"
-KERNEL_FLAGS="-j $(( $(( $(sysctl -n hw.ncpu) + 1 )) / 2 ))"
-CHROOTDIR="/scratch"
-EMBEDDEDBUILD=1
-EMBEDDEDPORTS="lang/python textproc/gsed"
-XDEV="arm"
-XDEV_ARCH="armv6"
-XDEV_FLAGS="WITH_GCC=1 WITH_GCC_BOOTSTRAP=1 WITHOUT_CLANG_IS_CC=1"
-KERNEL="RPI-B"
-CROCHETSRC="https://github.com/kientzle/crochet-freebsd"
-CROCHETBRANCH="trunk"
-UBOOTSRC="https://github.com/gonzoua/u-boot-pi"
-UBOOTBRANCH="trunk"
-UBOOTDIR="/tmp/crochet/u-boot-rpi"
-set +a
+load_target_env() {
+	# Avoid collision with TARGET and XDEV.
+	unset TARGET TARGET_ARCH
+	export XDEV="arm"
+	export XDEV_ARCH="armv6"
+	export XDEV_FLAGS="WITH_GCC=1 WITH_GCC_BOOTSTRAP=1 WITHOUT_CLANG_IS_CC=1"
+	export XDEV_FLAGS="${XDEV_FLAGS} MK_TESTS=no"
+	export KERNEL="RPI-B"
+	export CROCHETSRC="https://github.com/kientzle/crochet-freebsd"
+	export CROCHETBRANCH="trunk"
+	export UBOOTSRC="https://github.com/gonzoua/u-boot-pi"
+	export UBOOTBRANCH="trunk"
+	export UBOOTDIR="/tmp/crochet/u-boot-rpi"
+}

Modified: head/release/arm/WANDBOARD-QUAD.conf
==============================================================================
--- head/release/arm/WANDBOARD-QUAD.conf	Wed Aug  6 18:59:39 2014	(r269638)
+++ head/release/arm/WANDBOARD-QUAD.conf	Wed Aug  6 19:04:05 2014	(r269639)
@@ -1,30 +1,37 @@
+#!/bin/sh
 #
 # $FreeBSD$
 #
 
+# Global variables.
+export SVNROOT="svn://svn.FreeBSD.org/"
+export SRCBRANCH="base/head@rHEAD"
+export DOCBRANCH="doc/head@rHEAD"
+export PORTBRANCH="ports/head@rHEAD"
+export NODOC=yes
+export WORLD_FLAGS="-j $(sysctl -n hw.ncpu)"
+export KERNEL_FLAGS="-j $(( $(( $(sysctl -n hw.ncpu) + 1 )) / 2 ))"
+export CHROOTDIR="/scratch"
+export EMBEDDEDBUILD=1
+export EMBEDDEDPORTS="lang/python textproc/gsed"
+
 # Build chroot configuration
-TARGET="amd64"
-TARGET_ARCH="amd64"
-SVNROOT="svn://svn.FreeBSD.org/"
-SRCBRANCH="base/head@rHEAD"
-DOCBRANCH="doc/head@rHEAD"
-PORTBRANCH="ports/head@rHEAD"
-NODOC=yes
+load_chroot_env() {
+	# Avoid collision with TARGET and XDEV.
+	unset XDEV XDEV_ARCH KERNEL
+	export TARGET="amd64"
+	export TARGET_ARCH="amd64"
+}
 
 # Build target configuration
-# Since this file is sourced by a script that runs another
-# script, these must be exported.
-set -a
-WORLD_FLAGS="-j $(sysctl -n hw.ncpu)"
-KERNEL_FLAGS="-j $(( $(( $(sysctl -n hw.ncpu) + 1 )) / 2 ))"
-CHROOTDIR="/scratch"
-EMBEDDEDBUILD=1
-EMBEDDEDPORTS="lang/python textproc/gsed"
-XDEV="arm"
-XDEV_ARCH="armv6"
-XDEV_FLAGS="WITH_GCC=1 WITH_GCC_BOOTSTRAP=1 WITHOUT_CLANG_IS_CC=1"
-KERNEL="WANDBOARD-QUAD"
-CROCHETSRC="https://github.com/kientzle/crochet-freebsd"
-CROCHETBRANCH="trunk"
-set +a
-
+load_target_env() {
+	# Avoid collision with TARGET and XDEV.
+	unset TARGET TARGET_ARCH
+	export XDEV="arm"
+	export XDEV_ARCH="armv6"
+	export XDEV_FLAGS="WITH_GCC=1 WITH_GCC_BOOTSTRAP=1 WITHOUT_CLANG_IS_CC=1"
+	export XDEV_FLAGS="${XDEV_FLAGS} MK_TESTS=no"
+	export KERNEL="WANDBOARD-QUAD"
+	export CROCHETSRC="https://github.com/kientzle/crochet-freebsd"
+	export CROCHETBRANCH="trunk"
+}

Modified: head/release/arm/ZEDBOARD.conf
==============================================================================
--- head/release/arm/ZEDBOARD.conf	Wed Aug  6 18:59:39 2014	(r269638)
+++ head/release/arm/ZEDBOARD.conf	Wed Aug  6 19:04:05 2014	(r269639)
@@ -1,29 +1,36 @@
+#!/bin/sh
 #
 # $FreeBSD$
 #
 
+# Global variables.
+export SVNROOT="svn://svn.FreeBSD.org/"
+export SRCBRANCH="base/head@rHEAD"
+export DOCBRANCH="doc/head@rHEAD"
+export PORTBRANCH="ports/head@rHEAD"
+export NODOC=yes
+export WORLD_FLAGS="-j $(sysctl -n hw.ncpu)"
+export export KERNEL_FLAGS="-j $(( $(( $(sysctl -n hw.ncpu) + 1 )) / 2 ))"
+export CHROOTDIR="/scratch"
+export EMBEDDEDBUILD=1
+
 # Build chroot configuration
-TARGET="amd64"
-TARGET_ARCH="amd64"
-SVNROOT="svn://svn.FreeBSD.org/"
-SRCBRANCH="base/head@rHEAD"
-DOCBRANCH="doc/head@rHEAD"
-PORTBRANCH="ports/head@rHEAD"
-NODOC=yes
+load_chroot_env() {
+	# Avoid collision with TARGET and XDEV.
+	unset XDEV XDEV_ARCH KERNEL
+	export TARGET="amd64"
+	export TARGET_ARCH="amd64"
+}
 
 # Build target configuration
-# Since this file is sourced by a script that runs another
-# script, these must be exported.
-set -a
-WORLD_FLAGS="-j $(sysctl -n hw.ncpu)"
-KERNEL_FLAGS="-j $(( $(( $(sysctl -n hw.ncpu) + 1 )) / 2 ))"
-CHROOTDIR="/scratch"
-EMBEDDEDBUILD=1
-XDEV="arm"
-XDEV_ARCH="armv6"
-XDEV_FLAGS="WITH_GCC=1 WITH_GCC_BOOTSTRAP=1 WITHOUT_CLANG_IS_CC=1"
-KERNEL="ZEDBOARD"
-CROCHETSRC="https://github.com/kientzle/crochet-freebsd"
-CROCHETBRANCH="trunk"
-set +a
-
+load_target_env() {
+	# Avoid collision with TARGET and XDEV.
+	unset TARGET TARGET_ARCH
+	export XDEV="arm"
+	export XDEV_ARCH="armv6"
+	export XDEV_FLAGS="WITH_GCC=1 WITH_GCC_BOOTSTRAP=1 WITHOUT_CLANG_IS_CC=1"
+	export XDEV_FLAGS="${XDEV_FLAGS} MK_TESTS=no"
+	export KERNEL="ZEDBOARD"
+	export CROCHETSRC="https://github.com/kientzle/crochet-freebsd"
+	export CROCHETBRANCH="trunk"
+}

Modified: head/release/arm/release.sh
==============================================================================
--- head/release/arm/release.sh	Wed Aug  6 18:59:39 2014	(r269638)
+++ head/release/arm/release.sh	Wed Aug  6 19:04:05 2014	(r269639)
@@ -94,9 +94,17 @@ install_uboot() {
 main() {
 	# Build the 'xdev' target for crochet.
 	eval chroot ${CHROOTDIR} make -C /usr/src \
-		${XDEV_FLAGS} TARGET=${XDEV} TARGET_ARCH=${XDEV_ARCH} \
+		${XDEV_FLAGS} XDEV=${XDEV} XDEV_ARCH=${XDEV_ARCH} \
+		TARGET=${XDEV} TARGET_ARCH=${XDEV_ARCH} \
 		${WORLD_FLAGS} xdev
 
+	# Install the cross-build symlinks to /usr/bin to make crochet
+	# happy.
+	eval chroot ${CHROOTDIR} make -C /usr/src \
+		${XDEV_FLAGS} XDEV=${XDEV} XDEV_ARCH=${XDEV_ARCH} \
+		TARGET=${XDEV} TARGET_ARCH=${XDEV_ARCH} \
+		${WORLD_FLAGS} xdev-links
+
 	# Run the ldconfig(8) startup script so /var/run/ld-elf*.so.hints
 	# is created.
 	eval chroot ${CHROOTDIR} /etc/rc.d/ldconfig forcerestart

Modified: head/release/release.conf.sample
==============================================================================
--- head/release/release.conf.sample	Wed Aug  6 18:59:39 2014	(r269638)
+++ head/release/release.conf.sample	Wed Aug  6 19:04:05 2014	(r269639)
@@ -3,6 +3,11 @@
 # $FreeBSD$
 #
 
+# Redefine environment variables here to override prototypes
+# defined in release.sh.
+load_chroot_env() { }
+load_target_env() { }
+
 ## Set the directory within which the release will be built.
 CHROOTDIR="/scratch"
 

Modified: head/release/release.sh
==============================================================================
--- head/release/release.sh	Wed Aug  6 18:59:39 2014	(r269638)
+++ head/release/release.sh	Wed Aug  6 19:04:05 2014	(r269639)
@@ -39,6 +39,10 @@
 PATH="/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin"
 export PATH
 
+# Prototypes that can be redefined per-chroot or per-target.
+load_chroot_env() { }
+load_target_env() { }
+
 # The directory within which the release will be built.
 CHROOTDIR="/scratch"
 RELENGDIR="$(realpath $(dirname $(basename ${0})))"
@@ -124,10 +128,6 @@ DOCBRANCH="${SVNROOT}${DOCBRANCH}"
 PORTBRANCH="${SVNROOT}${PORTBRANCH}"
 
 if [ -n "${EMBEDDEDBUILD}" ]; then
-	if [ -z "${XDEV}" ] || [ -z "${XDEV_ARCH}" ]; then
-		echo "ERROR: XDEV and XDEV_ARCH must be set in ${RELEASECONF}."
-		exit 1
-	fi
 	WITH_DVD=
 	WITH_COMPRESSED_IMAGES=
 	NODOC=yes
@@ -161,6 +161,7 @@ if [ -n "${TARGET}" ] && [ -n "${TARGET_
 else
 	ARCH_FLAGS=
 fi
+load_chroot_env
 CHROOT_MAKEENV="${CHROOT_MAKEENV} MAKEOBJDIRPREFIX=${CHROOTDIR}/tmp/obj"
 CHROOT_WMAKEFLAGS="${MAKE_FLAGS} ${WORLD_FLAGS} ${CONF_FILES}"
 CHROOT_IMAKEFLAGS="${CONF_FILES}"
@@ -229,6 +230,7 @@ if [ -n "${EMBEDDEDBUILD}" ]; then
 	# release/, copy it to the /tmp/external directory within the chroot.
 	# This allows building embedded releases without relying on updated
 	# scripts and/or configurations to exist in the branch being built.
+	load_target_env
 	if [ -e ${RELENGDIR}/tools/${XDEV}/crochet-${KERNEL}.conf ] && \
 		[ -e ${RELENGDIR}/${XDEV}/release.sh ]; then
 			mkdir -p ${CHROOTDIR}/tmp/external/${XDEV}/
@@ -261,6 +263,7 @@ if [ -d ${CHROOTDIR}/usr/ports ]; then
 	fi
 fi
 
+load_target_env
 eval chroot ${CHROOTDIR} make -C /usr/src ${RELEASE_WMAKEFLAGS} buildworld
 eval chroot ${CHROOTDIR} make -C /usr/src ${RELEASE_KMAKEFLAGS} buildkernel
 eval chroot ${CHROOTDIR} make -C /usr/src/release ${RELEASE_RMAKEFLAGS} \



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?53e27c25.5c51.37e0e59>