summaryrefslogtreecommitdiff
path: root/utils
diff options
context:
space:
mode:
authorDimitry Andric <dim@FreeBSD.org>2015-09-06 18:34:38 +0000
committerDimitry Andric <dim@FreeBSD.org>2015-09-06 18:34:38 +0000
commit69156b4c20249e7800cc09e0eef0beb3d15ac1ad (patch)
tree461d3cf041290f4a99740d540bf0973d6084f98e /utils
parentee8648bdac07986a0f1ec897b02ec82a2f144d46 (diff)
Notes
Diffstat (limited to 'utils')
-rw-r--r--utils/emacs/README2
-rw-r--r--utils/jedit/README2
-rw-r--r--utils/kate/README2
-rwxr-xr-xutils/release/export.sh2
-rwxr-xr-xutils/release/tag.sh2
-rwxr-xr-xutils/release/test-release.sh263
-rw-r--r--utils/unittest/googletest/README.LLVM2
-rw-r--r--utils/vim/README2
8 files changed, 207 insertions, 70 deletions
diff --git a/utils/emacs/README b/utils/emacs/README
index e83eeae4b070..d0f2bfbbb3e5 100644
--- a/utils/emacs/README
+++ b/utils/emacs/README
@@ -23,5 +23,5 @@ are:
Note: If you notice missing or incorrect syntax highlighting, please contact
-<llvmbugs [at] cs.uiuc.edu>; if you wish to provide a patch to improve the
+<llvm-bugs [at] lists.llvm.org>; if you wish to provide a patch to improve the
functionality, it will be most appreciated. Thank you.
diff --git a/utils/jedit/README b/utils/jedit/README
index 6a6c8c76cc32..00db9ecb16a5 100644
--- a/utils/jedit/README
+++ b/utils/jedit/README
@@ -10,5 +10,5 @@ These are syntax highlighting files for the jEdit editor. Included are:
<MODE NAME="tablegen" FILE="tablegen.xml" FILE_NAME_GLOB="*.td" />
Note: If you notice missing or incorrect syntax highlighting, please contact
-<llvmbugs [at] cs.uiuc.edu>; if you wish to provide a patch to improve the
+<llvm-bugs [at] lists.llvm.org>; if you wish to provide a patch to improve the
functionality, it will be most appreciated. Thank you.
diff --git a/utils/kate/README b/utils/kate/README
index efe53b7e237e..46657e5d676a 100644
--- a/utils/kate/README
+++ b/utils/kate/README
@@ -8,5 +8,5 @@ These are syntax highlighting files for the Kate editor. Included are:
this file to ~/.kde/share/apps/katepart/syntax (or better yet, symlink it).
Note: If you notice missing or incorrect syntax highlighting, please contact
-<llvmbugs [at] cs.uiuc.edu>; if you wish to provide a patch to improve the
+<llvm-bugs [at] lists.llvm.org>; if you wish to provide a patch to improve the
functionality, it will be most appreciated. Thank you.
diff --git a/utils/release/export.sh b/utils/release/export.sh
index 9aee306f9664..2fd4206b7406 100755
--- a/utils/release/export.sh
+++ b/utils/release/export.sh
@@ -14,7 +14,7 @@
set -e
-projects="llvm cfe test-suite compiler-rt libcxx libcxxabi clang-tools-extra polly lldb lld openmp"
+projects="llvm cfe test-suite compiler-rt libcxx libcxxabi clang-tools-extra polly lldb lld openmp libunwind"
base_url="https://llvm.org/svn/llvm-project"
release=""
diff --git a/utils/release/tag.sh b/utils/release/tag.sh
index 8d6cd5f2f632..caefc7f7b71b 100755
--- a/utils/release/tag.sh
+++ b/utils/release/tag.sh
@@ -17,7 +17,7 @@ set -e
release=""
rc=""
rebranch="no"
-projects="llvm cfe test-suite compiler-rt libcxx libcxxabi clang-tools-extra polly lldb lld openmp"
+projects="llvm cfe test-suite compiler-rt libcxx libcxxabi clang-tools-extra polly lldb lld openmp libunwind"
dryrun=""
revision="HEAD"
diff --git a/utils/release/test-release.sh b/utils/release/test-release.sh
index ee87b3f1987f..568c097badd3 100755
--- a/utils/release/test-release.sh
+++ b/utils/release/test-release.sh
@@ -18,8 +18,6 @@ else
MAKE=make
fi
-projects="llvm cfe compiler-rt libcxx libcxxabi test-suite clang-tools-extra"
-
# Base SVN URL for the sources.
Base_url="http://llvm.org/svn/llvm-project"
@@ -29,12 +27,17 @@ RC=""
Triple=""
use_gzip="no"
do_checkout="yes"
-do_64bit="yes"
do_debug="no"
do_asserts="no"
do_compare="yes"
+do_rt="yes"
+do_libs="yes"
+do_libunwind="yes"
+do_test_suite="yes"
+do_openmp="no"
BuildDir="`pwd`"
-BuildTriple=""
+use_autoconf="no"
+ExtraConfigureFlags=""
function usage() {
echo "usage: `basename $0` -release X.Y.Z -rc NUM [OPTIONS]"
@@ -46,15 +49,24 @@ 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"
+ echo " -no-rt Disable check-out & build Compiler-RT"
+ echo " -no-libs Disable check-out & build libcxx/libcxxabi/libunwind"
+ echo " -no-libunwind Disable check-out & build libunwind"
+ echo " -no-test-suite Disable check-out & build test-suite"
+ echo " -openmp Check out and build the OpenMP run-time (experimental)"
}
+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 +85,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 +103,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 +115,24 @@ while [ $# -gt 0 ]; do
-use-gzip | --use-gzip )
use_gzip="yes"
;;
+ -use-autoconf | --use-autoconf )
+ use_autoconf="yes"
+ ;;
+ -no-rt )
+ do_rt="no"
+ ;;
+ -no-libs )
+ do_libs="no"
+ ;;
+ -no-libunwind )
+ do_libunwind="no"
+ ;;
+ -no-test-suite )
+ do_test_suite="no"
+ ;;
+ -openmp )
+ do_openmp="yes"
+ ;;
-help | --help | -h | --h | -\? )
usage
exit 0
@@ -147,6 +174,24 @@ if [ -z "$NumJobs" ]; then
NumJobs=3
fi
+# Projects list
+projects="llvm cfe clang-tools-extra"
+if [ $do_rt = "yes" ]; then
+ projects="$projects compiler-rt"
+fi
+if [ $do_libs = "yes" ]; then
+ projects="$projects libcxx libcxxabi"
+ if [ $do_libunwind = "yes" ]; then
+ projects="$projects libunwind"
+ fi
+fi
+if [ $do_test_suite = "yes" ]; then
+ projects="$projects test-suite"
+fi
+if [ $do_openmp = "yes" ]; then
+ projects="$projects openmp"
+fi
+
# Go to the build directory (may be different from CWD)
BuildDir=$BuildDir/$RC
mkdir -p $BuildDir
@@ -163,6 +208,16 @@ if [ $RC != "final" ]; then
fi
Package=$Package-$Triple
+# Errors to be highlighted at the end are written to this file.
+echo -n > $LogDir/deferred_errors.log
+
+function deferred_error() {
+ Phase="$1"
+ Flavor="$2"
+ Msg="$3"
+ echo "[${Flavor} Phase${Phase}] ${Msg}" | tee -a $LogDir/deferred_errors.log
+}
+
# Make sure that a required program is available
function check_program_exists() {
local program="$1"
@@ -195,6 +250,10 @@ function export_sources() {
check_valid_urls
for proj in $projects ; do
+ if [ -d $proj.src ]; then
+ echo "# Reusing $proj $Release-$RC sources"
+ continue
+ fi
echo "# Exporting $proj $Release-$RC sources"
if ! svn export -q $Base_url/$proj/tags/RELEASE_$Release_no_dot/$RC $proj.src ; then
echo "error: failed to export $proj project"
@@ -208,22 +267,26 @@ function export_sources() {
ln -s ../../cfe.src clang
fi
cd $BuildDir/llvm.src/tools/clang/tools
- if [ ! -h clang-tools-extra ]; then
+ if [ ! -h extra ]; then
ln -s ../../../../clang-tools-extra.src extra
fi
cd $BuildDir/llvm.src/projects
- if [ ! -h test-suite ]; then
+ if [ -d $BuildDir/test-suite.src ] && [ ! -h test-suite ]; then
ln -s ../../test-suite.src test-suite
fi
- if [ ! -h compiler-rt ]; then
+ if [ -d $BuildDir/compiler-rt.src ] && [ ! -h compiler-rt ]; then
ln -s ../../compiler-rt.src compiler-rt
fi
- if [ ! -h libcxx ]; then
+ if [ -d $BuildDir/libcxx.src ] && [ ! -h libcxx ]; then
ln -s ../../libcxx.src libcxx
fi
- if [ ! -h libcxxabi ]; then
+ if [ -d $BuildDir/libcxxabi.src ] && [ ! -h libcxxabi ]; then
ln -s ../../libcxxabi.src libcxxabi
fi
+ if [ -d $BuildDir/libunwind.src ] && [ ! -h libunwind ]; then
+ ln -s ../../libunwind.src libunwind
+ fi
+
cd $BuildDir
}
@@ -233,17 +296,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 +321,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 +356,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 +377,19 @@ function test_llvmCore() {
ObjDir="$3"
cd $ObjDir
- ${MAKE} -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 ! ( ${MAKE} -j $NumJobs -k check-all \
+ 2>&1 | tee $LogDir/llvm.check-Phase$Phase-$Flavor.log ) ; then
+ deferred_error $Phase $Flavor "check-all failed"
+ fi
+
+ if [ "$use_autoconf" = "yes" ]; then
+ # In the cmake build, unit tests are run as part of check-all.
+ if ! ( ${MAKE} -k unittests 2>&1 | \
+ tee $LogDir/llvm.unittests-Phase$Phase-$Flavor.log ) ; then
+ deferred_error $Phase $Flavor "unittests failed"
+ fi
+ fi
+
cd $BuildDir
}
@@ -321,10 +402,12 @@ function clean_RPATH() {
local InstallPath="$1"
for Candidate in `find $InstallPath/{bin,lib} -type f`; do
if file $Candidate | grep ELF | egrep 'executable|shared object' > /dev/null 2>&1 ; then
- rpath=`objdump -x $Candidate | grep 'RPATH' | sed -e's/^ *RPATH *//'`
- if [ -n "$rpath" ]; then
- newrpath=`echo $rpath | sed -e's/.*\(\$ORIGIN[^:]*\).*/\1/'`
- chrpath -r $newrpath $Candidate 2>&1 > /dev/null 2>&1
+ if rpath=`objdump -x $Candidate | grep 'RPATH'` ; then
+ rpath=`echo $rpath | sed -e's/^ *RPATH *//'`
+ if [ -n "$rpath" ]; then
+ newrpath=`echo $rpath | sed -e's/.*\(\$ORIGIN[^:]*\).*/\1/'`
+ chrpath -r $newrpath $Candidate 2>&1 > /dev/null 2>&1
+ fi
fi
fi
done
@@ -334,13 +417,53 @@ function clean_RPATH() {
function package_release() {
cwd=`pwd`
cd $BuildDir/Phase3/Release
- mv llvmCore-$Release-$RC.install $Package
+ mv llvmCore-$Release-$RC.install/usr/local $Package
if [ "$use_gzip" = "yes" ]; then
tar cfz $BuildDir/$Package.tar.gz $Package
else
tar cfJ $BuildDir/$Package.tar.xz $Package
fi
- mv $Package llvmCore-$Release-$RC.install
+ mv $Package llvmCore-$Release-$RC.install/usr/local
+ cd $cwd
+}
+
+# Build and package the OpenMP run-time. This is still experimental and not
+# meant for official testing in the release, but as a way for providing
+# binaries as a convenience to those who want to try it out.
+function build_OpenMP() {
+ cwd=`pwd`
+
+ rm -rf $BuildDir/Phase3/openmp
+ rm -rf $BuildDir/Phase3/openmp.install
+ mkdir -p $BuildDir/Phase3/openmp
+ cd $BuildDir/Phase3/openmp
+ clang=$BuildDir/Phase3/Release/llvmCore-$Release-$RC.install/usr/local/bin/clang
+
+ echo "#" cmake -DCMAKE_C_COMPILER=${clang} -DCMAKE_CXX_COMPILER=${clang}++ \
+ -DCMAKE_BUILD_TYPE=Release -DLIBOMP_MICRO_TESTS=on \
+ $BuildDir/openmp.src/runtime
+ cmake -DCMAKE_C_COMPILER=${clang} -DCMAKE_CXX_COMPILER=${clang}++ \
+ -DCMAKE_BUILD_TYPE=Release -DLIBOMP_MICRO_TESTS=on \
+ $BuildDir/openmp.src/runtime
+
+ echo "# Building OpenMP run-time"
+ echo "# ${MAKE} -j $NumJobs VERBOSE=1"
+ ${MAKE} -j $NumJobs VERBOSE=1
+ echo "# ${MAKE} libomp-micro-tests VERBOSE=1"
+ ${MAKE} libomp-micro-tests VERBOSE=1
+ echo "# ${MAKE} install DESTDIR=$BuildDir/Phase3/openmp.install"
+ ${MAKE} install DESTDIR=$BuildDir/Phase3/openmp.install
+
+ OpenMPPackage=OpenMP-$Release
+ if [ $RC != "final" ]; then
+ OpenMPPackage=$OpenMPPackage-$RC
+ fi
+ OpenMPPackage=$OpenMPPackage-$Triple
+
+ mv $BuildDir/Phase3/openmp.install/usr/local $BuildDir/$OpenMPPackage
+ cd $BuildDir
+ tar cvfJ $BuildDir/$OpenMPPackage.tar.xz $OpenMPPackage
+ mv $OpenMPPackage $BuildDir/Phase3/openmp.install/usr/local
cd $cwd
}
@@ -362,9 +485,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 ""
@@ -379,7 +499,6 @@ for Flavor in $Flavors ; do
c_compiler="$CC"
cxx_compiler="$CXX"
-
llvmCore_phase1_objdir=$BuildDir/Phase1/$Flavor/llvmCore-$Release-$RC.obj
llvmCore_phase1_destdir=$BuildDir/Phase1/$Flavor/llvmCore-$Release-$RC.install
@@ -446,14 +565,23 @@ 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. On some systems,
+ # sed adds a newline to the output, so pass $p3 through sed too.
+ if ! cmp -s <(sed -e 's,Phase2,Phase3,g' $p2) <(sed -e '' $p3) \
+ 16 16 ; then
+ echo "file `basename $p2` differs between phase 2 and phase 3"
fi
done
fi
done
+
+if [ $do_openmp = "yes" ]; then
+ build_OpenMP
+fi
+
) 2>&1 | tee $LogDir/testing.$Release-$RC.log
package_release
@@ -468,4 +596,13 @@ else
echo "### Package: $Package.tar.xz"
fi
echo "### Logs: $LogDir"
+
+echo "### Errors:"
+if [ -s "$LogDir/deferred_errors.log" ]; then
+ cat "$LogDir/deferred_errors.log"
+ exit 1
+else
+ echo "None."
+fi
+
exit 0
diff --git a/utils/unittest/googletest/README.LLVM b/utils/unittest/googletest/README.LLVM
index 16bfffd8d5e5..5f7fffe26a43 100644
--- a/utils/unittest/googletest/README.LLVM
+++ b/utils/unittest/googletest/README.LLVM
@@ -20,4 +20,4 @@ Modified as follows:
* To GTestStreamToHelper in include/gtest/internal/gtest-internal.h,
added the ability to stream with raw_os_ostream.
* To refresh Haiku support in include/gtest/internal/gtest-port.h,
- see http://lists.cs.uiuc.edu/pipermail/llvm-commits/Week-of-Mon-20100621/102898.html
+ see http://lists.llvm.org/pipermail/llvm-commits/Week-of-Mon-20100621/102898.html
diff --git a/utils/vim/README b/utils/vim/README
index 1fe00992b0ab..8aea87924eb2 100644
--- a/utils/vim/README
+++ b/utils/vim/README
@@ -9,7 +9,7 @@ To install copy all subdirectories to your $HOME/.vim or if you prefer create
symlinks to the files here. Do not copy the vimrc file here it is only meant as an inspiration and starting point for those working on llvm c++ code.
Note: If you notice missing or incorrect syntax highlighting, please contact
-<llvmbugs [at] cs.uiuc.edu>; if you wish to provide a patch to improve the
+<llvm-bugs [at] lists.llvm.org>; if you wish to provide a patch to improve the
functionality, it will be most appreciated. Thank you.
If you find yourself working with LLVM Makefiles often, but you don't get syntax