[llvm] r242331 - Switch the release script to build with CMake by default (PR21561)

Daniel Sanders Daniel.Sanders at imgtec.com
Thu Jul 16 09:45:44 PDT 2015


> It also removes the -build-triple option, which caused the --build= flag to
> get passed to ./configure. This was presumably intended for cross-compiling,
> but none of the release testers use it. If someone does want to pass it,
> they can use '-configure-flags --build=foo' instead.

Just for the record: I used it to work around a target triple bug in the Mips port when config.guess says the host is mips64-linux-gnu but the OS is 32-bit. I can use -configure-flags in future.

> -----Original Message-----
> From: llvm-commits-bounces at cs.uiuc.edu [mailto:llvm-commits-
> bounces at cs.uiuc.edu] On Behalf Of Hans Wennborg
> Sent: 15 July 2015 22:06
> To: llvm-commits at cs.uiuc.edu
> Subject: [llvm] r242331 - Switch the release script to build with CMake by
> default (PR21561)
> 
> Author: hans
> Date: Wed Jul 15 16:06:16 2015
> New Revision: 242331
> 
> URL: http://llvm.org/viewvc/llvm-project?rev=242331&view=rev
> Log:
> Switch the release script to build with CMake by default (PR21561)
> 
> It retains the possibility to use the autoconf build with a
> command-line option ('-use-autoconf'), and uses that by default on Darwin
> since
> compiler-rt requires it on that platform.
> 
> This commit also removes the "Release-64" flavour and related logic. The
> script
> would previously do two builds unless the '-no-64bit' flag was passed, but on
> my machine and from those I asked this always ended up producing two 64-
> bit builds,
> causing much confusion.
> 
> It also removes the -build-triple option, which caused the --build= flag to
> get passed to ./configure. This was presumably intended for cross-compiling,
> but none of the release testers use it. If someone does want to pass it,
> they can use '-configure-flags --build=foo' instead.
> 
> Differential Revision: http://reviews.llvm.org/D10715
> 
> Modified:
>     llvm/trunk/utils/release/test-release.sh
> 
> Modified: llvm/trunk/utils/release/test-release.sh
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/utils/release/test-
> release.sh?rev=242331&r1=242330&r2=242331&view=diff
> ==========================================================
> ====================
> --- llvm/trunk/utils/release/test-release.sh (original)
> +++ llvm/trunk/utils/release/test-release.sh Wed Jul 15 16:06:16 2015
> @@ -29,12 +29,12 @@ RC=""
>  Triple=""
>  use_gzip="no"
>  do_checkout="yes"
> -do_64bit="yes"
>  do_debug="no"
>  do_asserts="no"
>  do_compare="yes"
>  BuildDir="`pwd`"
> -BuildTriple=""
> +use_autoconf="no"
> +ExtraConfigureFlags=""
> 
>  function usage() {
>      echo "usage: `basename $0` -release X.Y.Z -rc NUM [OPTIONS]"
> @@ -46,15 +46,19 @@ function usage() {
>      echo " -j NUM               Number of compile jobs to run. [default: 3]"
>      echo " -build-dir DIR       Directory to perform testing in. [default: pwd]"
>      echo " -no-checkout         Don't checkout the sources from SVN."
> -    echo " -no-64bit            Don't test the 64-bit version. [default: yes]"
>      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."
>      echo " -use-gzip            Use gzip instead of xz."
> -    echo " -build-triple TRIPLE The build triple for this machine"
> -    echo "                      [default: use config.guess]"
> +    echo " -configure-flags FLAGS  Extra flags to pass to the configure step."
> +    echo " -use-autoconf        Use autoconf instead of cmake"
>  }
> 
> +if [ `uname -s` = "Darwin" ]; then
> +  # compiler-rt doesn't yet build with CMake on Darwin.
> +  use_autoconf="yes"
> +fi
> +
>  while [ $# -gt 0 ]; do
>      case $1 in
>          -release | --release )
> @@ -73,9 +77,9 @@ while [ $# -gt 0 ]; do
>              shift
>              Triple="$1"
>              ;;
> -        -build-triple | --build-triple )
> +        -configure-flags | --configure-flags )
>              shift
> -            BuildTriple="$1"
> +            ExtraConfigureFlags="$1"
>              ;;
>          -j* )
>              NumJobs="`echo $1 | sed -e 's,-j\([0-9]*\),\1,g'`"
> @@ -91,9 +95,6 @@ while [ $# -gt 0 ]; do
>          -no-checkout | --no-checkout )
>              do_checkout="no"
>              ;;
> -        -no-64bit | --no-64bit )
> -            do_64bit="no"
> -            ;;
>          -test-debug | --test-debug )
>              do_debug="yes"
>              ;;
> @@ -106,6 +107,9 @@ while [ $# -gt 0 ]; do
>          -use-gzip | --use-gzip )
>              use_gzip="yes"
>              ;;
> +        -use-autoconf | --use-autoconf )
> +            use_autoconf="yes"
> +            ;;
>          -help | --help | -h | --h | -\? )
>              usage
>              exit 0
> @@ -233,17 +237,20 @@ function configure_llvmCore() {
>      ObjDir="$3"
> 
>      case $Flavor in
> -        Release | Release-64 )
> -            Optimized="yes"
> -            Assertions="no"
> +        Release )
> +            BuildType="Release"
> +            Assertions="OFF"
> +            ConfigureFlags="--enable-optimized --disable-assertions"
>              ;;
>          Release+Asserts )
> -            Optimized="yes"
> -            Assertions="yes"
> +            BuildType="Release"
> +            Assertions="ON"
> +            ConfigureFlags="--enable-optimized --enable-assertions"
>              ;;
>          Debug )
> -            Optimized="no"
> -            Assertions="yes"
> +            BuildType="Debug"
> +            Assertions="ON"
> +            ConfigureFlags="--disable-optimized --enable-assertions"
>              ;;
>          * )
>              echo "# Invalid flavor '$Flavor'"
> @@ -255,22 +262,33 @@ function configure_llvmCore() {
>      echo "# Using C compiler: $c_compiler"
>      echo "# Using C++ compiler: $cxx_compiler"
> 
> -    build_triple_option="${BuildTriple:+--build=$BuildTriple}"
> -
>      cd $ObjDir
>      echo "# Configuring llvm $Release-$RC $Flavor"
> -    echo "# $BuildDir/llvm.src/configure \
> -        --enable-optimized=$Optimized \
> -        --enable-assertions=$Assertions \
> -        --disable-timestamps \
> -        $build_triple_option"
> -    env CC="$c_compiler" CXX="$cxx_compiler" \
> -        $BuildDir/llvm.src/configure \
> -        --enable-optimized=$Optimized \
> -        --enable-assertions=$Assertions \
> -        --disable-timestamps \
> -        $build_triple_option \
> -        2>&1 | tee $LogDir/llvm.configure-Phase$Phase-$Flavor.log
> +
> +    if [ "$use_autoconf" = "yes" ]; then
> +        echo "#" env CC="$c_compiler" CXX="$cxx_compiler" \
> +            $BuildDir/llvm.src/configure \
> +            $ConfigureFlags --disable-timestamps $ExtraConfigureFlags \
> +            2>&1 | tee $LogDir/llvm.configure-Phase$Phase-$Flavor.log
> +        env CC="$c_compiler" CXX="$cxx_compiler" \
> +            $BuildDir/llvm.src/configure \
> +            $ConfigureFlags --disable-timestamps $ExtraConfigureFlags \
> +            2>&1 | tee $LogDir/llvm.configure-Phase$Phase-$Flavor.log
> +    else
> +        echo "#" env CC="$c_compiler" CXX="$cxx_compiler" \
> +            cmake -G "Unix Makefiles" \
> +            -DCMAKE_BUILD_TYPE=$BuildType -
> DLLVM_ENABLE_ASSERTIONS=$Assertions \
> +            -DLLVM_ENABLE_TIMESTAMPS=OFF -
> DLLVM_CONFIGTIME="(timestamp not enabled)" \
> +            $ExtraConfigureFlags $BuildDir/llvm.src \
> +            2>&1 | tee $LogDir/llvm.configure-Phase$Phase-$Flavor.log
> +        env CC="$c_compiler" CXX="$cxx_compiler" \
> +            cmake -G "Unix Makefiles" \
> +            -DCMAKE_BUILD_TYPE=$BuildType -
> DLLVM_ENABLE_ASSERTIONS=$Assertions \
> +            -DLLVM_ENABLE_TIMESTAMPS=OFF -
> DLLVM_CONFIGTIME="(timestamp not enabled)" \
> +            $ExtraConfigureFlags $BuildDir/llvm.src \
> +            2>&1 | tee $LogDir/llvm.configure-Phase$Phase-$Flavor.log
> +    fi
> +
>      cd $BuildDir
>  }
> 
> @@ -279,16 +297,11 @@ function build_llvmCore() {
>      Flavor="$2"
>      ObjDir="$3"
>      DestDir="$4"
> -    ExtraOpts=""
> -
> -    if [ "$Flavor" = "Release-64" ]; then
> -        ExtraOpts="EXTRA_OPTIONS=-m64"
> -    fi
> 
>      cd $ObjDir
>      echo "# Compiling llvm $Release-$RC $Flavor"
> -    echo "# ${MAKE} -j $NumJobs VERBOSE=1 $ExtraOpts"
> -    ${MAKE} -j $NumJobs VERBOSE=1 $ExtraOpts \
> +    echo "# ${MAKE} -j $NumJobs VERBOSE=1"
> +    ${MAKE} -j $NumJobs VERBOSE=1 \
>          2>&1 | tee $LogDir/llvm.make-Phase$Phase-$Flavor.log
> 
>      echo "# Installing llvm $Release-$RC $Flavor"
> @@ -305,10 +318,15 @@ function test_llvmCore() {
>      ObjDir="$3"
> 
>      cd $ObjDir
> -    ${MAKE} -k check-all \
> +    ${MAKE} -j $NumJobs -k check-all \
>          2>&1 | tee $LogDir/llvm.check-Phase$Phase-$Flavor.log
> -    ${MAKE} -k unittests \
> -        2>&1 | tee $LogDir/llvm.unittests-Phase$Phase-$Flavor.log
> +
> +    if [ "$use_autoconf" = "yes" ]; then
> +        # In the cmake build, unit tests are run as part of check-all.
> +        ${MAKE} -k unittests \
> +            2>&1 | tee $LogDir/llvm.unittests-Phase$Phase-$Flavor.log
> +    fi
> +
>      cd $BuildDir
>  }
> 
> @@ -362,9 +380,6 @@ fi
>  if [ "$do_asserts" = "yes" ]; then
>      Flavors="$Flavors Release+Asserts"
>  fi
> -if [ "$do_64bit" = "yes" ]; then
> -    Flavors="$Flavors Release-64"
> -fi
> 
>  for Flavor in $Flavors ; do
>      echo ""
> @@ -446,10 +461,13 @@ for Flavor in $Flavors ; do
>      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"
> +        for p2 in `find $llvmCore_phase2_objdir -name '*.o'` ; do
> +            p3=`echo $p2 | sed -e 's,Phase2,Phase3,'`
> +            # Substitute 'Phase2' for 'Phase3' in the Phase 2 object file in
> +            # case there are build paths in the debug info.
> +            if ! cmp --ignore-initial=16 <(sed -e 's,Phase2,Phase3,g' $p2) $p3 \
> +                    > /dev/null 2>&1 ; then
> +                echo "file `basename $p2` differs between phase 2 and phase 3"
>              fi
>          done
>      fi
> 
> 
> _______________________________________________
> llvm-commits mailing list
> llvm-commits at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits




More information about the llvm-commits mailing list