diff options
Diffstat (limited to 'utils/release')
-rwxr-xr-x | utils/release/tag.sh | 22 | ||||
-rwxr-xr-x | utils/release/test-release.sh | 47 |
2 files changed, 45 insertions, 24 deletions
diff --git a/utils/release/tag.sh b/utils/release/tag.sh index 80da47a..399d5c5 100755 --- a/utils/release/tag.sh +++ b/utils/release/tag.sh @@ -16,33 +16,40 @@ set -e release="" rc="" +rebranch="no" base_url="https://llvm.org/svn/llvm-project" function usage() { - echo "usage: `basename $0` -release <num>" + echo "usage: `basename $0` -release <num> [-rebranch]" echo "usage: `basename $0` -release <num> -rc <num>" echo " " echo " -release <num> The version number of the release" echo " -rc <num> The release candidate number" + echo " -rebranch Remove existing branch, if present, before branching" echo " -final Tag final release candidate" } function tag_version() { set -x - for proj in llvm cfe dragonegg test-suite compiler-rt libcxx libcxxabi ; do - if ! svn ls $base_url/$proj/branches/release_$release > /dev/null 2>&1 ; then - svn copy -m "Creating release_$release branch" \ - $base_url/$proj/trunk \ + for proj in llvm cfe dragonegg test-suite compiler-rt ; do + if svn ls $base_url/$proj/branches/release_$release > /dev/null 2>&1 ; then + if [ $rebranch = "no" ]; then + continue + fi + svn remove -m "Removing old release_$release branch for rebranching." \ $base_url/$proj/branches/release_$release fi + svn copy -m "Creating release_$release branch" \ + $base_url/$proj/trunk \ + $base_url/$proj/branches/release_$release done set +x } function tag_release_candidate() { set -x - for proj in llvm cfe dragonegg test-suite compiler-rt libcxx libcxxabi ; do + for proj in llvm cfe dragonegg test-suite compiler-rt ; do if ! svn ls $base_url/$proj/tags/RELEASE_$release > /dev/null 2>&1 ; then svn mkdir -m "Creating release directory for release_$release." $base_url/$proj/tags/RELEASE_$release fi @@ -65,6 +72,9 @@ while [ $# -gt 0 ]; do shift rc="rc$1" ;; + -rebranch | --rebranch ) + rebranch="yes" + ;; -final | --final ) rc="final" ;; diff --git a/utils/release/test-release.sh b/utils/release/test-release.sh index 6ec2861..d2946d8 100755 --- a/utils/release/test-release.sh +++ b/utils/release/test-release.sh @@ -18,7 +18,7 @@ else MAKE=make fi -projects="llvm cfe dragonegg test-suite" +projects="llvm cfe dragonegg compiler-rt test-suite" # Base SVN URL for the sources. Base_url="http://llvm.org/svn/llvm-project" @@ -35,6 +35,7 @@ do_objc="yes" do_64bit="yes" do_debug="no" do_asserts="no" +do_compare="yes" BuildDir="`pwd`" function usage() { @@ -54,6 +55,7 @@ function usage() { echo " -disable-objc Disable ObjC build. [default: enable]" echo " -test-debug Test the debug build. [default: no]" echo " -test-asserts Test with asserts on. [default: no]" + echo " -no-compare-files Don't test that phase 2 and 3 files are identical." } while [ $# -gt 0 ]; do @@ -108,6 +110,9 @@ while [ $# -gt 0 ]; do -test-asserts | --test-asserts ) do_asserts="yes" ;; + -no-compare-files | --no-compare-files ) + do_compare="no" + ;; -help | --help | -h | --h | -\? ) usage exit 0 @@ -209,6 +214,9 @@ function export_sources() { if [ ! -h llvm-test ]; then ln -s ../../test-suite.src llvm-test fi + if [ ! -h compiler-rt ]; then + ln -s ../../compiler-rt.src compiler-rt + fi cd $BuildDir } @@ -403,7 +411,7 @@ for Flavor in $Flavors ; do # Test clang if [ "$do_clang" = "yes" ]; then - ############################################################################ + ######################################################################## # Phase 2: Build llvmCore with newly built clang from phase 1. c_compiler=$llvmCore_phase1_installdir/bin/clang cxx_compiler=$llvmCore_phase1_installdir/bin/clang++ @@ -413,7 +421,7 @@ for Flavor in $Flavors ; do build_llvmCore 2 $Flavor \ $llvmCore_phase2_objdir - ############################################################################ + ######################################################################## # Phase 3: Build llvmCore with newly built clang from phase 2. c_compiler=$llvmCore_phase2_installdir/bin/clang cxx_compiler=$llvmCore_phase2_installdir/bin/clang++ @@ -423,21 +431,24 @@ for Flavor in $Flavors ; do build_llvmCore 3 $Flavor \ $llvmCore_phase3_objdir - ############################################################################ + ######################################################################## # Testing: Test phase 3 echo "# Testing - built with clang" test_llvmCore 3 $Flavor $llvmCore_phase3_objdir - ############################################################################ - # Compare .o files between Phase2 and Phase3 and report which ones differ. - echo - echo "# Comparing Phase 2 and Phase 3 files" - for o in `find $llvmCore_phase2_objdir -name '*.o'` ; do - p3=`echo $o | sed -e 's,Phase2,Phase3,'` - if ! cmp --ignore-initial=16 $o $p3 > /dev/null 2>&1 ; then - echo "file `basename $o` differs between phase 2 and phase 3" - fi - done + ######################################################################## + # Compare .o files between Phase2 and Phase3 and report which ones + # differ. + if [ "$do_compare" = "yes" ]; then + echo + echo "# Comparing Phase 2 and Phase 3 files" + for o in `find $llvmCore_phase2_objdir -name '*.o'` ; do + p3=`echo $o | sed -e 's,Phase2,Phase3,'` + if ! cmp --ignore-initial=16 $o $p3 > /dev/null 2>&1 ; then + echo "file `basename $o` differs between phase 2 and phase 3" + fi + done + fi fi # Test dragonegg @@ -450,7 +461,7 @@ for Flavor in $Flavors ; do cxx_compiler="$gxx_compiler" build_dragonegg 1 $Flavor $llvmCore_phase1_installdir $dragonegg_phase1_objdir - ############################################################################ + ######################################################################## # Phase 2: Build llvmCore with newly built dragonegg from phase 1. c_compiler="$gcc_compiler -fplugin=$dragonegg_phase1_objdir/dragonegg.so" cxx_compiler="$gxx_compiler -fplugin=$dragonegg_phase1_objdir/dragonegg.so" @@ -461,7 +472,7 @@ for Flavor in $Flavors ; do $llvmCore_de_phase2_objdir build_dragonegg 2 $Flavor $llvmCore_de_phase2_installdir $dragonegg_phase2_objdir - ############################################################################ + ######################################################################## # Phase 3: Build llvmCore with newly built clang from phase 2. c_compiler="$gcc_compiler -fplugin=$dragonegg_phase2_objdir/dragonegg.so" cxx_compiler="$gxx_compiler -fplugin=$dragonegg_phase2_objdir/dragonegg.so" @@ -472,14 +483,14 @@ for Flavor in $Flavors ; do $llvmCore_de_phase3_objdir build_dragonegg 3 $Flavor $llvmCore_de_phase3_installdir $dragonegg_phase3_objdir - ############################################################################ + ######################################################################## # Testing: Test phase 3 c_compiler="$gcc_compiler -fplugin=$dragonegg_phase3_objdir/dragonegg.so" cxx_compiler="$gxx_compiler -fplugin=$dragonegg_phase3_objdir/dragonegg.so" echo "# Testing - built with dragonegg" test_llvmCore 3 $Flavor $llvmCore_de_phase3_objdir - ############################################################################ + ######################################################################## # Compare .o files between Phase2 and Phase3 and report which ones differ. echo echo "# Comparing Phase 2 and Phase 3 files" |