test-release.sh revision b91c71299a819e2d20786b629376f119085e8b28
1b91c71299a819e2d20786b629376f119085e8b28Bill Wendling#!/bin/bash 2b91c71299a819e2d20786b629376f119085e8b28Bill Wendling#===-- test-release.sh - Test the LLVM release candidates ------------------===# 3b91c71299a819e2d20786b629376f119085e8b28Bill Wendling# 4b91c71299a819e2d20786b629376f119085e8b28Bill Wendling# The LLVM Compiler Infrastructure 5b91c71299a819e2d20786b629376f119085e8b28Bill Wendling# 6b91c71299a819e2d20786b629376f119085e8b28Bill Wendling# This file is distributed under the University of Illinois Open Source 7b91c71299a819e2d20786b629376f119085e8b28Bill Wendling# License. 8b91c71299a819e2d20786b629376f119085e8b28Bill Wendling# 9b91c71299a819e2d20786b629376f119085e8b28Bill Wendling#===------------------------------------------------------------------------===# 10b91c71299a819e2d20786b629376f119085e8b28Bill Wendling# 11b91c71299a819e2d20786b629376f119085e8b28Bill Wendling# Download, build, and test the release candidate for an LLVM release. 12b91c71299a819e2d20786b629376f119085e8b28Bill Wendling# 13b91c71299a819e2d20786b629376f119085e8b28Bill Wendling#===------------------------------------------------------------------------===# 14b91c71299a819e2d20786b629376f119085e8b28Bill Wendling 15b91c71299a819e2d20786b629376f119085e8b28Bill Wendlingset -e 16b91c71299a819e2d20786b629376f119085e8b28Bill Wendling 17b91c71299a819e2d20786b629376f119085e8b28Bill WendlingRelease="" 18b91c71299a819e2d20786b629376f119085e8b28Bill WendlingRelease_no_dot="" 19b91c71299a819e2d20786b629376f119085e8b28Bill WendlingRC="" 20b91c71299a819e2d20786b629376f119085e8b28Bill Wendlingdo_checkout="yes" 21b91c71299a819e2d20786b629376f119085e8b28Bill Wendlingdo_ada="no" 22b91c71299a819e2d20786b629376f119085e8b28Bill Wendlingdo_fortran="yes" 23b91c71299a819e2d20786b629376f119085e8b28Bill Wendlingdo_64bit="yes" 24b91c71299a819e2d20786b629376f119085e8b28Bill WendlingBuildDir="`pwd`" 25b91c71299a819e2d20786b629376f119085e8b28Bill Wendling 26b91c71299a819e2d20786b629376f119085e8b28Bill Wendling# Figure out how many make processes to run. 27b91c71299a819e2d20786b629376f119085e8b28Bill WendlingNumJobs=`sysctl -n hw.activecpu 2> /dev/null || true` 28b91c71299a819e2d20786b629376f119085e8b28Bill Wendlingif [ -z "$NumJobs" ]; then 29b91c71299a819e2d20786b629376f119085e8b28Bill Wendling NumJobs=`sysctl -n hw.ncpu 2> /dev/null || true` 30b91c71299a819e2d20786b629376f119085e8b28Bill Wendlingfi 31b91c71299a819e2d20786b629376f119085e8b28Bill Wendlingif [ -z "$NumJobs" ]; then 32b91c71299a819e2d20786b629376f119085e8b28Bill Wendling NumJobs=`grep -c processor /proc/cpuinfo 2> /dev/null || true` 33b91c71299a819e2d20786b629376f119085e8b28Bill Wendlingfi 34b91c71299a819e2d20786b629376f119085e8b28Bill Wendling 35b91c71299a819e2d20786b629376f119085e8b28Bill Wendlingfunction usage() { 36b91c71299a819e2d20786b629376f119085e8b28Bill Wendling echo "usage: `basename $0` -release X.Y -rc NUM [OPTIONS]" 37b91c71299a819e2d20786b629376f119085e8b28Bill Wendling echo "" 38b91c71299a819e2d20786b629376f119085e8b28Bill Wendling echo " -release X.Y The release number to test." 39b91c71299a819e2d20786b629376f119085e8b28Bill Wendling echo " -rc NUM The pre-release candidate number." 40b91c71299a819e2d20786b629376f119085e8b28Bill Wendling echo " -j NUM Number of compile jobs to run. [default: 3]" 41b91c71299a819e2d20786b629376f119085e8b28Bill Wendling echo " -build-dir DIR Directory to perform testing in. [default: pwd]" 42b91c71299a819e2d20786b629376f119085e8b28Bill Wendling echo " -no-checkout Don't checkout the sources from SVN." 43b91c71299a819e2d20786b629376f119085e8b28Bill Wendling echo " -no-64bit Don't test the 64-bit version. [default: yes]" 44b91c71299a819e2d20786b629376f119085e8b28Bill Wendling echo " -ada Build Ada. [default: no]" 45b91c71299a819e2d20786b629376f119085e8b28Bill Wendling echo " -disable-fortran Disable Fortran build. [default: build]" 46b91c71299a819e2d20786b629376f119085e8b28Bill Wendling} 47b91c71299a819e2d20786b629376f119085e8b28Bill Wendling 48b91c71299a819e2d20786b629376f119085e8b28Bill Wendlingwhile [ $# -gt 0 ]; do 49b91c71299a819e2d20786b629376f119085e8b28Bill Wendling case $1 in 50b91c71299a819e2d20786b629376f119085e8b28Bill Wendling -release | --release ) 51b91c71299a819e2d20786b629376f119085e8b28Bill Wendling shift 52b91c71299a819e2d20786b629376f119085e8b28Bill Wendling Release="$1" 53b91c71299a819e2d20786b629376f119085e8b28Bill Wendling Release_no_dot="`echo $1 | sed -e 's,\.,,'`" 54b91c71299a819e2d20786b629376f119085e8b28Bill Wendling ;; 55b91c71299a819e2d20786b629376f119085e8b28Bill Wendling -rc | --rc | -RC | --RC ) 56b91c71299a819e2d20786b629376f119085e8b28Bill Wendling shift 57b91c71299a819e2d20786b629376f119085e8b28Bill Wendling RC=$1 58b91c71299a819e2d20786b629376f119085e8b28Bill Wendling ;; 59b91c71299a819e2d20786b629376f119085e8b28Bill Wendling -j* ) 60b91c71299a819e2d20786b629376f119085e8b28Bill Wendling NumJobs="`echo $1 | sed -e 's,-j\([0-9]*\),\1,g'`" 61b91c71299a819e2d20786b629376f119085e8b28Bill Wendling if [ -z "$NumJobs" ]; then 62b91c71299a819e2d20786b629376f119085e8b28Bill Wendling shift 63b91c71299a819e2d20786b629376f119085e8b28Bill Wendling NumJobs="$1" 64b91c71299a819e2d20786b629376f119085e8b28Bill Wendling fi 65b91c71299a819e2d20786b629376f119085e8b28Bill Wendling ;; 66b91c71299a819e2d20786b629376f119085e8b28Bill Wendling -build-dir | --build-dir | -builddir | --builddir ) 67b91c71299a819e2d20786b629376f119085e8b28Bill Wendling shift 68b91c71299a819e2d20786b629376f119085e8b28Bill Wendling BuildDir="$1" 69b91c71299a819e2d20786b629376f119085e8b28Bill Wendling ;; 70b91c71299a819e2d20786b629376f119085e8b28Bill Wendling -no-checkout | --no-checkout ) 71b91c71299a819e2d20786b629376f119085e8b28Bill Wendling do_checkout="no" 72b91c71299a819e2d20786b629376f119085e8b28Bill Wendling ;; 73b91c71299a819e2d20786b629376f119085e8b28Bill Wendling -no-64bit | --no-64bit ) 74b91c71299a819e2d20786b629376f119085e8b28Bill Wendling do_64bit="no" 75b91c71299a819e2d20786b629376f119085e8b28Bill Wendling ;; 76b91c71299a819e2d20786b629376f119085e8b28Bill Wendling -ada | --ada ) 77b91c71299a819e2d20786b629376f119085e8b28Bill Wendling do_ada="yes" 78b91c71299a819e2d20786b629376f119085e8b28Bill Wendling ;; 79b91c71299a819e2d20786b629376f119085e8b28Bill Wendling -disable-fortran | --disable-fortran ) 80b91c71299a819e2d20786b629376f119085e8b28Bill Wendling echo "WARNING: Do you *really* need to disable Fortran?" 81b91c71299a819e2d20786b629376f119085e8b28Bill Wendling sleep 5 82b91c71299a819e2d20786b629376f119085e8b28Bill Wendling do_fortran="no" 83b91c71299a819e2d20786b629376f119085e8b28Bill Wendling ;; 84b91c71299a819e2d20786b629376f119085e8b28Bill Wendling -help | --help | -h | --h | -\? ) 85b91c71299a819e2d20786b629376f119085e8b28Bill Wendling usage 86b91c71299a819e2d20786b629376f119085e8b28Bill Wendling exit 0 87b91c71299a819e2d20786b629376f119085e8b28Bill Wendling ;; 88b91c71299a819e2d20786b629376f119085e8b28Bill Wendling * ) 89b91c71299a819e2d20786b629376f119085e8b28Bill Wendling echo "unknown option: $1" 90b91c71299a819e2d20786b629376f119085e8b28Bill Wendling usage 91b91c71299a819e2d20786b629376f119085e8b28Bill Wendling exit 1 92b91c71299a819e2d20786b629376f119085e8b28Bill Wendling ;; 93b91c71299a819e2d20786b629376f119085e8b28Bill Wendling esac 94b91c71299a819e2d20786b629376f119085e8b28Bill Wendling shift 95b91c71299a819e2d20786b629376f119085e8b28Bill Wendlingdone 96b91c71299a819e2d20786b629376f119085e8b28Bill Wendling 97b91c71299a819e2d20786b629376f119085e8b28Bill Wendling# Check required arguments. 98b91c71299a819e2d20786b629376f119085e8b28Bill Wendlingif [ -z "$Release" ]; then 99b91c71299a819e2d20786b629376f119085e8b28Bill Wendling echo "No release number specified!" 100b91c71299a819e2d20786b629376f119085e8b28Bill Wendling exit 1 101b91c71299a819e2d20786b629376f119085e8b28Bill Wendlingfi 102b91c71299a819e2d20786b629376f119085e8b28Bill Wendlingif [ -z "$RC" ]; then 103b91c71299a819e2d20786b629376f119085e8b28Bill Wendling echo "No release candidate number specified!" 104b91c71299a819e2d20786b629376f119085e8b28Bill Wendling exit 1 105b91c71299a819e2d20786b629376f119085e8b28Bill Wendlingfi 106b91c71299a819e2d20786b629376f119085e8b28Bill Wendling 107b91c71299a819e2d20786b629376f119085e8b28Bill Wendlingif [ -z "$NumJobs" ]; then 108b91c71299a819e2d20786b629376f119085e8b28Bill Wendling NumJobs=3 109b91c71299a819e2d20786b629376f119085e8b28Bill Wendlingfi 110b91c71299a819e2d20786b629376f119085e8b28Bill Wendling 111b91c71299a819e2d20786b629376f119085e8b28Bill Wendling# Location of sources. 112b91c71299a819e2d20786b629376f119085e8b28Bill WendlingllvmCore_srcdir=$BuildDir/llvmCore-$Release-rc$RC.src 113b91c71299a819e2d20786b629376f119085e8b28Bill Wendlingllvmgcc42_srcdir=$BuildDir/llvmgcc42-$Release-rc$RC.src 114b91c71299a819e2d20786b629376f119085e8b28Bill Wendling 115b91c71299a819e2d20786b629376f119085e8b28Bill Wendling# Location of log files. 116b91c71299a819e2d20786b629376f119085e8b28Bill WendlingLogDirName="$Release-rc$RC.logs" 117b91c71299a819e2d20786b629376f119085e8b28Bill WendlingLogDir=$BuildDir/$LogDirName 118b91c71299a819e2d20786b629376f119085e8b28Bill Wendlingmkdir -p $LogDir 119b91c71299a819e2d20786b629376f119085e8b28Bill Wendling 120b91c71299a819e2d20786b629376f119085e8b28Bill Wendling# SVN URLs for the sources. 121b91c71299a819e2d20786b629376f119085e8b28Bill WendlingBase_url="http://llvm.org/svn/llvm-project" 122b91c71299a819e2d20786b629376f119085e8b28Bill WendlingllvmCore_RC_url="$Base_url/llvm/tags/RELEASE_$Release_no_dot/rc$RC" 123b91c71299a819e2d20786b629376f119085e8b28Bill Wendlingllvmgcc42_RC_url="$Base_url/llvm-gcc-4.2/tags/RELEASE_$Release_no_dot/rc$RC" 124b91c71299a819e2d20786b629376f119085e8b28Bill Wendlingclang_RC_url="$Base_url/cfe/tags/RELEASE_$Release_no_dot/rc$RC" 125b91c71299a819e2d20786b629376f119085e8b28Bill Wendlingtest_suite_RC_url="$Base_url/test-suite/tags/RELEASE_$Release_no_dot/rc$RC" 126b91c71299a819e2d20786b629376f119085e8b28Bill Wendling 127b91c71299a819e2d20786b629376f119085e8b28Bill Wendling# Make sure that the URLs are valid. 128b91c71299a819e2d20786b629376f119085e8b28Bill Wendlingfunction check_valid_urls() { 129b91c71299a819e2d20786b629376f119085e8b28Bill Wendling echo "# Validating SVN URLs" 130b91c71299a819e2d20786b629376f119085e8b28Bill Wendling if ! svn ls $llvmCore_RC_url > /dev/null 2>&1 ; then 131b91c71299a819e2d20786b629376f119085e8b28Bill Wendling echo "llvm $Release release candidate $RC doesn't exist!" 132b91c71299a819e2d20786b629376f119085e8b28Bill Wendling exit 1 133b91c71299a819e2d20786b629376f119085e8b28Bill Wendling fi 134b91c71299a819e2d20786b629376f119085e8b28Bill Wendling if ! svn ls $llvmgcc42_RC_url > /dev/null 2>&1 ; then 135b91c71299a819e2d20786b629376f119085e8b28Bill Wendling echo "llvm-gcc-4.2 $Release release candidate $RC doesn't exist!" 136b91c71299a819e2d20786b629376f119085e8b28Bill Wendling exit 1 137b91c71299a819e2d20786b629376f119085e8b28Bill Wendling fi 138b91c71299a819e2d20786b629376f119085e8b28Bill Wendling if ! svn ls $clang_RC_url > /dev/null 2>&1 ; then 139b91c71299a819e2d20786b629376f119085e8b28Bill Wendling echo "clang $Release release candidate $RC doesn't exist!" 140b91c71299a819e2d20786b629376f119085e8b28Bill Wendling exit 1 141b91c71299a819e2d20786b629376f119085e8b28Bill Wendling fi 142b91c71299a819e2d20786b629376f119085e8b28Bill Wendling if ! svn ls $test_suite_RC_url > /dev/null 2>&1 ; then 143b91c71299a819e2d20786b629376f119085e8b28Bill Wendling echo "test-suite $Release release candidate $RC doesn't exist!" 144b91c71299a819e2d20786b629376f119085e8b28Bill Wendling exit 1 145b91c71299a819e2d20786b629376f119085e8b28Bill Wendling fi 146b91c71299a819e2d20786b629376f119085e8b28Bill Wendling} 147b91c71299a819e2d20786b629376f119085e8b28Bill Wendling 148b91c71299a819e2d20786b629376f119085e8b28Bill Wendling# Export sources to the the build directory. 149b91c71299a819e2d20786b629376f119085e8b28Bill Wendlingfunction export_sources() { 150b91c71299a819e2d20786b629376f119085e8b28Bill Wendling check_valid_urls 151b91c71299a819e2d20786b629376f119085e8b28Bill Wendling 152b91c71299a819e2d20786b629376f119085e8b28Bill Wendling echo "# Exporting llvm $Release-RC$RC sources" 153b91c71299a819e2d20786b629376f119085e8b28Bill Wendling svn export -q $llvmCore_RC_url $llvmCore_srcdir 154b91c71299a819e2d20786b629376f119085e8b28Bill Wendling echo "# Exporting llvm-gcc-4.2 $Release-rc$RC sources" 155b91c71299a819e2d20786b629376f119085e8b28Bill Wendling svn export -q $llvmgcc42_RC_url $llvmgcc42_srcdir 156b91c71299a819e2d20786b629376f119085e8b28Bill Wendling echo "# Exporting clang $Release-rc$RC sources" 157b91c71299a819e2d20786b629376f119085e8b28Bill Wendling svn export -q $clang_RC_url $llvmCore_srcdir/tools/clang 158b91c71299a819e2d20786b629376f119085e8b28Bill Wendling echo "# Exporting llvm test suite $Release-rc$RC sources" 159b91c71299a819e2d20786b629376f119085e8b28Bill Wendling svn export -q $test_suite_RC_url $llvmCore_srcdir/projects/llvm-test 160b91c71299a819e2d20786b629376f119085e8b28Bill Wendling} 161b91c71299a819e2d20786b629376f119085e8b28Bill Wendling 162b91c71299a819e2d20786b629376f119085e8b28Bill Wendlingfunction configure_llvmCore() { 163b91c71299a819e2d20786b629376f119085e8b28Bill Wendling Phase="$1" 164b91c71299a819e2d20786b629376f119085e8b28Bill Wendling Flavor="$2" 165b91c71299a819e2d20786b629376f119085e8b28Bill Wendling ObjDir="$3" 166b91c71299a819e2d20786b629376f119085e8b28Bill Wendling InstallDir="$4" 167b91c71299a819e2d20786b629376f119085e8b28Bill Wendling llvmgccDir="$5" 168b91c71299a819e2d20786b629376f119085e8b28Bill Wendling 169b91c71299a819e2d20786b629376f119085e8b28Bill Wendling case $Flavor in 170b91c71299a819e2d20786b629376f119085e8b28Bill Wendling Release | Release-64 ) 171b91c71299a819e2d20786b629376f119085e8b28Bill Wendling Optimized="yes" 172b91c71299a819e2d20786b629376f119085e8b28Bill Wendling Assertions="yes" 173b91c71299a819e2d20786b629376f119085e8b28Bill Wendling ;; 174b91c71299a819e2d20786b629376f119085e8b28Bill Wendling Release-Asserts ) 175b91c71299a819e2d20786b629376f119085e8b28Bill Wendling Optimized="yes" 176b91c71299a819e2d20786b629376f119085e8b28Bill Wendling Assertions="no" 177b91c71299a819e2d20786b629376f119085e8b28Bill Wendling ;; 178b91c71299a819e2d20786b629376f119085e8b28Bill Wendling Debug ) 179b91c71299a819e2d20786b629376f119085e8b28Bill Wendling Optimized="no" 180b91c71299a819e2d20786b629376f119085e8b28Bill Wendling Assertions="yes" 181b91c71299a819e2d20786b629376f119085e8b28Bill Wendling ;; 182b91c71299a819e2d20786b629376f119085e8b28Bill Wendling * ) 183b91c71299a819e2d20786b629376f119085e8b28Bill Wendling echo "# Invalid flavor $Flavor!" 184b91c71299a819e2d20786b629376f119085e8b28Bill Wendling echo "" 185b91c71299a819e2d20786b629376f119085e8b28Bill Wendling return 186b91c71299a819e2d20786b629376f119085e8b28Bill Wendling ;; 187b91c71299a819e2d20786b629376f119085e8b28Bill Wendling esac 188b91c71299a819e2d20786b629376f119085e8b28Bill Wendling 189b91c71299a819e2d20786b629376f119085e8b28Bill Wendling cd $ObjDir 190b91c71299a819e2d20786b629376f119085e8b28Bill Wendling echo "# Configuring llvm $Release-rc$RC $Flavor" 191b91c71299a819e2d20786b629376f119085e8b28Bill Wendling echo "# $llvmCore_srcdir/configure --prefix=$llvmCore_installdir \ 192b91c71299a819e2d20786b629376f119085e8b28Bill Wendling --enable-optimized=$Optimized \ 193b91c71299a819e2d20786b629376f119085e8b28Bill Wendling --enable-assertions=$Assertions \ 194b91c71299a819e2d20786b629376f119085e8b28Bill Wendling --with-llvmgccdir=$llvmgccDir" 195b91c71299a819e2d20786b629376f119085e8b28Bill Wendling $llvmCore_srcdir/configure --prefix=$InstallDir \ 196b91c71299a819e2d20786b629376f119085e8b28Bill Wendling --enable-optimized=$Optimized \ 197b91c71299a819e2d20786b629376f119085e8b28Bill Wendling --enable-assertions=$Assertions \ 198b91c71299a819e2d20786b629376f119085e8b28Bill Wendling --with-llvmgccdir=$llvmgccDir \ 199b91c71299a819e2d20786b629376f119085e8b28Bill Wendling > $LogDir/llvm.configure.$Release-rc$RC-Phase$Phase-$Flavor.log 2>&1 200b91c71299a819e2d20786b629376f119085e8b28Bill Wendling cd - 201b91c71299a819e2d20786b629376f119085e8b28Bill Wendling} 202b91c71299a819e2d20786b629376f119085e8b28Bill Wendling 203b91c71299a819e2d20786b629376f119085e8b28Bill Wendlingfunction build_llvmCore() { 204b91c71299a819e2d20786b629376f119085e8b28Bill Wendling Phase="$1" 205b91c71299a819e2d20786b629376f119085e8b28Bill Wendling Flavor="$2" 206b91c71299a819e2d20786b629376f119085e8b28Bill Wendling ObjDir="$3" 207b91c71299a819e2d20786b629376f119085e8b28Bill Wendling ExtraOpts="" 208b91c71299a819e2d20786b629376f119085e8b28Bill Wendling 209b91c71299a819e2d20786b629376f119085e8b28Bill Wendling CompilerFlags="" 210b91c71299a819e2d20786b629376f119085e8b28Bill Wendling if [ "$Phase" = "2" ]; then 211b91c71299a819e2d20786b629376f119085e8b28Bill Wendling CompilerFlags="CC=$llvmgccDir/bin/llvm-gcc CXX=$llvmgccDir/bin/llvm-g++" 212b91c71299a819e2d20786b629376f119085e8b28Bill Wendling fi 213b91c71299a819e2d20786b629376f119085e8b28Bill Wendling if [ "$Flavor" = "Release-64" ]; then 214b91c71299a819e2d20786b629376f119085e8b28Bill Wendling ExtraOpts="EXTRA_OPTIONS=-m64" 215b91c71299a819e2d20786b629376f119085e8b28Bill Wendling fi 216b91c71299a819e2d20786b629376f119085e8b28Bill Wendling 217b91c71299a819e2d20786b629376f119085e8b28Bill Wendling cd $ObjDir 218b91c71299a819e2d20786b629376f119085e8b28Bill Wendling echo "# Compiling llvm $Release-rc$RC $Flavor" 219b91c71299a819e2d20786b629376f119085e8b28Bill Wendling echo "# make -j $NumJobs VERBOSE=1 $ExtraOpts" 220b91c71299a819e2d20786b629376f119085e8b28Bill Wendling make -j $NumJobs VERBOSE=1 $ExtraOpts $CompilerFlags \ 221b91c71299a819e2d20786b629376f119085e8b28Bill Wendling > $LogDir/llvm.make.$Release-rc$RC-Phase$Phase-$Flavor.log 2>&1 222b91c71299a819e2d20786b629376f119085e8b28Bill Wendling 223b91c71299a819e2d20786b629376f119085e8b28Bill Wendling echo "# Installing llvm $Release-rc$RC $Flavor" 224b91c71299a819e2d20786b629376f119085e8b28Bill Wendling echo "# make install" 225b91c71299a819e2d20786b629376f119085e8b28Bill Wendling make install \ 226b91c71299a819e2d20786b629376f119085e8b28Bill Wendling > $LogDir/llvm.install.$Release-rc$RC-Phase$Phase-$Flavor.log 2>&1 227b91c71299a819e2d20786b629376f119085e8b28Bill Wendling cd - 228b91c71299a819e2d20786b629376f119085e8b28Bill Wendling} 229b91c71299a819e2d20786b629376f119085e8b28Bill Wendling 230b91c71299a819e2d20786b629376f119085e8b28Bill Wendlingfunction test_llvmCore() { 231b91c71299a819e2d20786b629376f119085e8b28Bill Wendling Phase="$1" 232b91c71299a819e2d20786b629376f119085e8b28Bill Wendling Flavor="$2" 233b91c71299a819e2d20786b629376f119085e8b28Bill Wendling ObjDir="$3" 234b91c71299a819e2d20786b629376f119085e8b28Bill Wendling 235b91c71299a819e2d20786b629376f119085e8b28Bill Wendling cd $ObjDir 236b91c71299a819e2d20786b629376f119085e8b28Bill Wendling make check \ 237b91c71299a819e2d20786b629376f119085e8b28Bill Wendling > $LogDir/llvm.check.$Release-rc$RC-Phase$Phase-$Flavor.log 2>&1 238b91c71299a819e2d20786b629376f119085e8b28Bill Wendling make -C tools/clang test \ 239b91c71299a819e2d20786b629376f119085e8b28Bill Wendling > $LogDir/clang.check.$Release-rc$RC-Phase$Phase-$Flavor.log 2>&1 240b91c71299a819e2d20786b629376f119085e8b28Bill Wendling make unittests \ 241b91c71299a819e2d20786b629376f119085e8b28Bill Wendling > $LogDir/llvm.unittests.$Release-rc$RC-Phase$Phase-$Flavor.log 2>&1 242b91c71299a819e2d20786b629376f119085e8b28Bill Wendling cd - 243b91c71299a819e2d20786b629376f119085e8b28Bill Wendling} 244b91c71299a819e2d20786b629376f119085e8b28Bill Wendling 245b91c71299a819e2d20786b629376f119085e8b28Bill Wendlingfunction configure_llvm_gcc() { 246b91c71299a819e2d20786b629376f119085e8b28Bill Wendling Phase="$1" 247b91c71299a819e2d20786b629376f119085e8b28Bill Wendling Flavor="$2" 248b91c71299a819e2d20786b629376f119085e8b28Bill Wendling ObjDir="$3" 249b91c71299a819e2d20786b629376f119085e8b28Bill Wendling InstallDir="$4" 250b91c71299a819e2d20786b629376f119085e8b28Bill Wendling llvmObjDir="$5" 251b91c71299a819e2d20786b629376f119085e8b28Bill Wendling 252b91c71299a819e2d20786b629376f119085e8b28Bill Wendling languages="c,c++,objc,obj-c++" 253b91c71299a819e2d20786b629376f119085e8b28Bill Wendling if [ "$do_fortran" = "yes" ]; then 254b91c71299a819e2d20786b629376f119085e8b28Bill Wendling languages="$languages,fortran" 255b91c71299a819e2d20786b629376f119085e8b28Bill Wendling fi 256b91c71299a819e2d20786b629376f119085e8b28Bill Wendling if [ "$do_ada" = "yes" ]; then 257b91c71299a819e2d20786b629376f119085e8b28Bill Wendling languages="$languages,ada" 258b91c71299a819e2d20786b629376f119085e8b28Bill Wendling fi 259b91c71299a819e2d20786b629376f119085e8b28Bill Wendling 260b91c71299a819e2d20786b629376f119085e8b28Bill Wendling cd $ObjDir 261b91c71299a819e2d20786b629376f119085e8b28Bill Wendling echo "# Configuring llvm-gcc $Release-rc$RC $Flavor" 262b91c71299a819e2d20786b629376f119085e8b28Bill Wendling echo "# $llvmgcc42_srcdir/configure --prefix=$InstallDir \ 263b91c71299a819e2d20786b629376f119085e8b28Bill Wendling --program-prefix=llvm- --enable-llvm=$llvmObjDir \ 264b91c71299a819e2d20786b629376f119085e8b28Bill Wendling --enable-languages=$languages \ 265b91c71299a819e2d20786b629376f119085e8b28Bill Wendling --with-gxx-include-dir=/usr/include/c++/4.2.1" 266b91c71299a819e2d20786b629376f119085e8b28Bill Wendling $llvmgcc42_srcdir/configure --prefix=$InstallDir \ 267b91c71299a819e2d20786b629376f119085e8b28Bill Wendling --program-prefix=llvm- --enable-llvm=$llvmObjDir \ 268b91c71299a819e2d20786b629376f119085e8b28Bill Wendling --enable-languages=$languages \ 269b91c71299a819e2d20786b629376f119085e8b28Bill Wendling --with-gxx-include-dir=/usr/include/c++/4.2.1 \ 270b91c71299a819e2d20786b629376f119085e8b28Bill Wendling > $LogDir/llvm-gcc.configure.$Release-rc$RC-Phase$Phase-$Flavor.log 2>&1 271b91c71299a819e2d20786b629376f119085e8b28Bill Wendling cd - 272b91c71299a819e2d20786b629376f119085e8b28Bill Wendling} 273b91c71299a819e2d20786b629376f119085e8b28Bill Wendling 274b91c71299a819e2d20786b629376f119085e8b28Bill Wendlingfunction build_llvm_gcc() { 275b91c71299a819e2d20786b629376f119085e8b28Bill Wendling Phase="$1" 276b91c71299a819e2d20786b629376f119085e8b28Bill Wendling Flavor="$2" 277b91c71299a819e2d20786b629376f119085e8b28Bill Wendling ObjDir="$3" 278b91c71299a819e2d20786b629376f119085e8b28Bill Wendling llvmgccDir="$4" 279b91c71299a819e2d20786b629376f119085e8b28Bill Wendling 280b91c71299a819e2d20786b629376f119085e8b28Bill Wendling CompilerFlags="" 281b91c71299a819e2d20786b629376f119085e8b28Bill Wendling if [ "$Phase" = "2" ]; then 282b91c71299a819e2d20786b629376f119085e8b28Bill Wendling CompilerFlags="CC=$llvmgccDir/bin/llvm-gcc CXX=$llvmgccDir/bin/llvm-g++" 283b91c71299a819e2d20786b629376f119085e8b28Bill Wendling fi 284b91c71299a819e2d20786b629376f119085e8b28Bill Wendling 285b91c71299a819e2d20786b629376f119085e8b28Bill Wendling cd $ObjDir 286b91c71299a819e2d20786b629376f119085e8b28Bill Wendling echo "# Compiling llvm-gcc $Release-rc$RC $Flavor" 287b91c71299a819e2d20786b629376f119085e8b28Bill Wendling echo "# make -j $NumJobs bootstrap LLVM_VERSION_INFO=$Release" 288b91c71299a819e2d20786b629376f119085e8b28Bill Wendling make -j $NumJobs bootstrap LLVM_VERSION_INFO=$Release $CompilerFlags \ 289b91c71299a819e2d20786b629376f119085e8b28Bill Wendling > $LogDir/llvm-gcc.make.$Release-rc$RC-Phase$Phase-$Flavor.log 2>&1 290b91c71299a819e2d20786b629376f119085e8b28Bill Wendling 291b91c71299a819e2d20786b629376f119085e8b28Bill Wendling echo "# Installing llvm-gcc $Release-rc$RC $Flavor" 292b91c71299a819e2d20786b629376f119085e8b28Bill Wendling echo "# make install" 293b91c71299a819e2d20786b629376f119085e8b28Bill Wendling make install \ 294b91c71299a819e2d20786b629376f119085e8b28Bill Wendling > $LogDir/llvm-gcc.install.$Release-rc$RC-Phase$Phase-$Flavor.log 2>&1 295b91c71299a819e2d20786b629376f119085e8b28Bill Wendling cd - 296b91c71299a819e2d20786b629376f119085e8b28Bill Wendling} 297b91c71299a819e2d20786b629376f119085e8b28Bill Wendling 298b91c71299a819e2d20786b629376f119085e8b28Bill Wendlingif [ "$do_checkout" = "yes" ]; then 299b91c71299a819e2d20786b629376f119085e8b28Bill Wendling export_sources 300b91c71299a819e2d20786b629376f119085e8b28Bill Wendlingfi 301b91c71299a819e2d20786b629376f119085e8b28Bill Wendling 302b91c71299a819e2d20786b629376f119085e8b28Bill Wendling( 303b91c71299a819e2d20786b629376f119085e8b28Bill WendlingFlavors="Debug Release Release-Asserts" 304b91c71299a819e2d20786b629376f119085e8b28Bill Wendlingif [ "$do_64bit" = "yes" ]; then 305b91c71299a819e2d20786b629376f119085e8b28Bill Wendling Flavors="$Flavors Release-64" 306b91c71299a819e2d20786b629376f119085e8b28Bill Wendlingfi 307b91c71299a819e2d20786b629376f119085e8b28Bill Wendling 308b91c71299a819e2d20786b629376f119085e8b28Bill Wendlingfor Flavor in $Flavors ; do 309b91c71299a819e2d20786b629376f119085e8b28Bill Wendling echo "" 310b91c71299a819e2d20786b629376f119085e8b28Bill Wendling echo "" 311b91c71299a819e2d20786b629376f119085e8b28Bill Wendling echo "********************************************************************************" 312b91c71299a819e2d20786b629376f119085e8b28Bill Wendling echo " Release: $Release-rc$RC" 313b91c71299a819e2d20786b629376f119085e8b28Bill Wendling echo " Build: $Flavor" 314b91c71299a819e2d20786b629376f119085e8b28Bill Wendling echo " System Info: " 315b91c71299a819e2d20786b629376f119085e8b28Bill Wendling echo " `uname -a`" 316b91c71299a819e2d20786b629376f119085e8b28Bill Wendling echo "********************************************************************************" 317b91c71299a819e2d20786b629376f119085e8b28Bill Wendling echo "" 318b91c71299a819e2d20786b629376f119085e8b28Bill Wendling 319b91c71299a819e2d20786b629376f119085e8b28Bill Wendling llvmCore_phase1_objdir=$BuildDir/Phase1/$Flavor/llvmCore-$Release-rc$RC.obj 320b91c71299a819e2d20786b629376f119085e8b28Bill Wendling llvmCore_phase1_installdir=$BuildDir/Phase1/$Flavor/llvmCore-$Release-rc$RC.install 321b91c71299a819e2d20786b629376f119085e8b28Bill Wendling 322b91c71299a819e2d20786b629376f119085e8b28Bill Wendling llvmCore_phase2_objdir=$BuildDir/Phase2/$Flavor/llvmCore-$Release-rc$RC.obj 323b91c71299a819e2d20786b629376f119085e8b28Bill Wendling llvmCore_phase2_installdir=$BuildDir/Phase2/$Flavor/llvmCore-$Release-rc$RC.install 324b91c71299a819e2d20786b629376f119085e8b28Bill Wendling 325b91c71299a819e2d20786b629376f119085e8b28Bill Wendling rm -rf $llvmCore_phase1_objdir 326b91c71299a819e2d20786b629376f119085e8b28Bill Wendling rm -rf $llvmCore_phase1_installdir 327b91c71299a819e2d20786b629376f119085e8b28Bill Wendling rm -rf $llvmCore_phase2_objdir 328b91c71299a819e2d20786b629376f119085e8b28Bill Wendling rm -rf $llvmCore_phase2_installdir 329b91c71299a819e2d20786b629376f119085e8b28Bill Wendling 330b91c71299a819e2d20786b629376f119085e8b28Bill Wendling mkdir -p $llvmCore_phase1_objdir 331b91c71299a819e2d20786b629376f119085e8b28Bill Wendling mkdir -p $llvmCore_phase1_installdir 332b91c71299a819e2d20786b629376f119085e8b28Bill Wendling mkdir -p $llvmCore_phase2_objdir 333b91c71299a819e2d20786b629376f119085e8b28Bill Wendling mkdir -p $llvmCore_phase2_installdir 334b91c71299a819e2d20786b629376f119085e8b28Bill Wendling 335b91c71299a819e2d20786b629376f119085e8b28Bill Wendling llvmgcc42_phase1_objdir=$BuildDir/Phase1/$Flavor/llvmgcc42-$Release-rc$RC.obj 336b91c71299a819e2d20786b629376f119085e8b28Bill Wendling llvmgcc42_phase1_installdir=$BuildDir/Phase1/$Flavor/llvmgcc42-$Release-rc$RC.install 337b91c71299a819e2d20786b629376f119085e8b28Bill Wendling 338b91c71299a819e2d20786b629376f119085e8b28Bill Wendling llvmgcc42_phase2_objdir=$BuildDir/Phase2/$Flavor/llvmgcc42-$Release-rc$RC.obj 339b91c71299a819e2d20786b629376f119085e8b28Bill Wendling llvmgcc42_phase2_installdir=$BuildDir/Phase2/$Flavor/llvmgcc42-$Release-rc$RC.install 340b91c71299a819e2d20786b629376f119085e8b28Bill Wendling 341b91c71299a819e2d20786b629376f119085e8b28Bill Wendling rm -rf $llvmgcc42_phase1_objdir 342b91c71299a819e2d20786b629376f119085e8b28Bill Wendling rm -rf $llvmgcc42_phase1_installdir 343b91c71299a819e2d20786b629376f119085e8b28Bill Wendling rm -rf $llvmgcc42_phase2_objdir 344b91c71299a819e2d20786b629376f119085e8b28Bill Wendling rm -rf $llvmgcc42_phase2_installdir 345b91c71299a819e2d20786b629376f119085e8b28Bill Wendling 346b91c71299a819e2d20786b629376f119085e8b28Bill Wendling mkdir -p $llvmgcc42_phase1_objdir 347b91c71299a819e2d20786b629376f119085e8b28Bill Wendling mkdir -p $llvmgcc42_phase1_installdir 348b91c71299a819e2d20786b629376f119085e8b28Bill Wendling mkdir -p $llvmgcc42_phase2_objdir 349b91c71299a819e2d20786b629376f119085e8b28Bill Wendling mkdir -p $llvmgcc42_phase2_installdir 350b91c71299a819e2d20786b629376f119085e8b28Bill Wendling 351b91c71299a819e2d20786b629376f119085e8b28Bill Wendling ############################################################################ 352b91c71299a819e2d20786b629376f119085e8b28Bill Wendling # Phase 1: Build llvmCore and llvmgcc42 353b91c71299a819e2d20786b629376f119085e8b28Bill Wendling echo "# Phase 1: Building llvmCore" 354b91c71299a819e2d20786b629376f119085e8b28Bill Wendling configure_llvmCore 1 $Flavor \ 355b91c71299a819e2d20786b629376f119085e8b28Bill Wendling $llvmCore_phase1_objdir $llvmCore_phase1_installdir \ 356b91c71299a819e2d20786b629376f119085e8b28Bill Wendling $llvmgcc42_phase1_installdir 357b91c71299a819e2d20786b629376f119085e8b28Bill Wendling build_llvmCore 1 $Flavor \ 358b91c71299a819e2d20786b629376f119085e8b28Bill Wendling $llvmCore_phase1_objdir 359b91c71299a819e2d20786b629376f119085e8b28Bill Wendling 360b91c71299a819e2d20786b629376f119085e8b28Bill Wendling echo "# Phase 1: Building llvmgcc42" 361b91c71299a819e2d20786b629376f119085e8b28Bill Wendling configure_llvm_gcc 1 $Flavor \ 362b91c71299a819e2d20786b629376f119085e8b28Bill Wendling $llvmgcc42_phase1_objdir $llvmgcc42_phase1_installdir \ 363b91c71299a819e2d20786b629376f119085e8b28Bill Wendling $llvmCore_phase1_objdir 364b91c71299a819e2d20786b629376f119085e8b28Bill Wendling build_llvm_gcc 1 $Flavor \ 365b91c71299a819e2d20786b629376f119085e8b28Bill Wendling $llvmgcc42_phase1_objdir $llvmgcc42_phase1_installdir 366b91c71299a819e2d20786b629376f119085e8b28Bill Wendling 367b91c71299a819e2d20786b629376f119085e8b28Bill Wendling ############################################################################ 368b91c71299a819e2d20786b629376f119085e8b28Bill Wendling # Phase 2: Build llvmCore with newly built llvmgcc42 from phase 1. 369b91c71299a819e2d20786b629376f119085e8b28Bill Wendling echo "# Phase 2: Building llvmCore" 370b91c71299a819e2d20786b629376f119085e8b28Bill Wendling configure_llvmCore 2 $Flavor \ 371b91c71299a819e2d20786b629376f119085e8b28Bill Wendling $llvmCore_phase2_objdir $llvmCore_phase2_installdir \ 372b91c71299a819e2d20786b629376f119085e8b28Bill Wendling $llvmgcc42_phase1_installdir 373b91c71299a819e2d20786b629376f119085e8b28Bill Wendling build_llvmCore 2 $Flavor \ 374b91c71299a819e2d20786b629376f119085e8b28Bill Wendling $llvmCore_phase2_objdir 375b91c71299a819e2d20786b629376f119085e8b28Bill Wendling 376b91c71299a819e2d20786b629376f119085e8b28Bill Wendling echo "# Phase 2: Building llvmgcc42" 377b91c71299a819e2d20786b629376f119085e8b28Bill Wendling configure_llvm_gcc 2 $Flavor \ 378b91c71299a819e2d20786b629376f119085e8b28Bill Wendling $llvmgcc42_phase2_objdir $llvmgcc42_phase2_installdir \ 379b91c71299a819e2d20786b629376f119085e8b28Bill Wendling $llvmCore_phase2_objdir 380b91c71299a819e2d20786b629376f119085e8b28Bill Wendling build_llvm_gcc 2 $Flavor \ 381b91c71299a819e2d20786b629376f119085e8b28Bill Wendling $llvmgcc42_phase2_objdir $llvmgcc42_phase1_installdir 382b91c71299a819e2d20786b629376f119085e8b28Bill Wendling 383b91c71299a819e2d20786b629376f119085e8b28Bill Wendling echo "# Testing - built with llvmgcc42" 384b91c71299a819e2d20786b629376f119085e8b28Bill Wendling test_llvmCore 2 $Flavor $llvmCore_phase2_objdir 385b91c71299a819e2d20786b629376f119085e8b28Bill Wendlingdone 386b91c71299a819e2d20786b629376f119085e8b28Bill Wendling) 2>&1 | tee $LogDir/testing.$Release-rc$RC.log 387b91c71299a819e2d20786b629376f119085e8b28Bill Wendling 388b91c71299a819e2d20786b629376f119085e8b28Bill Wendling# Woo hoo! 389b91c71299a819e2d20786b629376f119085e8b28Bill Wendlingecho "### Testing Finished ###" 390b91c71299a819e2d20786b629376f119085e8b28Bill Wendlingecho "### Logs: $LogDir" 391b91c71299a819e2d20786b629376f119085e8b28Bill Wendlingexit 0 392