aboutsummaryrefslogtreecommitdiff
path: root/contrib
diff options
context:
space:
mode:
authorJan Hubicka <jh@suse.cz>2010-06-30 23:35:37 +0000
committerJan Hubicka <jh@suse.cz>2010-06-30 23:35:37 +0000
commitae76f6b33f74dba4216d2927fa768e095bc196de (patch)
treed78c22c285918a79b675750633c5ad580b95bd17 /contrib
parent0e4df37882ec2a25153a5dc96b79a67f77d4175a (diff)
Merge from mainline.
git-svn-id: https://gcc.gnu.org/svn/gcc/branches/pretty-ipa@161647 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'contrib')
-rw-r--r--contrib/ChangeLog17
-rwxr-xr-xcontrib/compare-debug24
-rwxr-xr-xcontrib/download_prerequisites38
-rwxr-xr-xcontrib/gcc_update31
-rwxr-xr-xcontrib/test_summary6
5 files changed, 104 insertions, 12 deletions
diff --git a/contrib/ChangeLog b/contrib/ChangeLog
index 60afb708be4..12271531ddf 100644
--- a/contrib/ChangeLog
+++ b/contrib/ChangeLog
@@ -1,3 +1,20 @@
+2010-06-20 Alexandre Oliva <aoliva@redhat.com>
+
+ * compare-debug: Drop LTO sections.
+
+2010-06-15 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
+
+ * gcc_update: Support updating a git clone.
+
+2010-06-04 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
+
+ * test_summary: Don't use diff -u.
+ Adapt egrep regex.
+
+2010-06-02 Andrew Haley <aph@redhat.com>
+
+ * download_prerequisites: New script.
+
2010-05-25 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
* dg-extract-results.sh: Redirect grep output to /dev/null instead
diff --git a/contrib/compare-debug b/contrib/compare-debug
index 98c80f93e98..820721cd971 100755
--- a/contrib/compare-debug
+++ b/contrib/compare-debug
@@ -100,9 +100,11 @@ else
done
# If we found .eh_frame in one but not the other, or if we could not
- # find a command to tell, try to strip off the .eh_frame section
- # from both.
- if test "x$cmp1" != "x$cmp2" || test "x$cmd" = "x"; then
+ # find a command to tell, or if there are LTO sections, try to strip
+ # off the .eh_frame and LTO sections from both.
+ if test "x$cmp1" != "x$cmp2" || test "x$cmd" = "x" ||
+ $cmd --section-headers "$1.$suf1" | grep '.gnu.lto_' > /dev/null ||
+ $cmd --section-headers "$2.$suf2" | grep '.gnu.lto_' > /dev/null ; then
suf3=$suf1.
while test -f "$1.$suf3"; do
suf3=$suf3.
@@ -115,21 +117,27 @@ else
trap 'rm -f "$1.$suf1" "$2.$suf2" "$1.$suf3" "$2.$suf4"' 0 1 2 15
- echo stripping off .eh_frame, then retrying >&2
+ echo stripping off .eh_frame and LTO sections, then retrying >&2
+
+ seclist=".eh_frame .rel.eh_frame .rela.eh_frame"
+ if test "x$cmd" != "x"; then
+ seclist="$seclist "`{ $cmd --section-headers "$1.$suf1"; $cmd --section-headers "$2.$suf2"; } | sed -n 's,.* \(\.gnu\.lto_[^ ]*\).*,\1,p' | sort -u`
+ fi
+ rsopts=`for sec in $seclist; do echo " --remove-section $sec"; done`
if (objcopy -v) 2>&1 | grep ' --remove-section' > /dev/null; then
- objcopy --remove-section .eh_frame --remove-section .rel.eh_frame --remove-section .rela.eh_frame "$1.$suf1" "$1.$suf3"
+ objcopy $rsopts "$1.$suf1" "$1.$suf3"
mv "$1.$suf3" "$1.$suf1"
- objcopy --remove-section .eh_frame --remove-section .rel.eh_frame --remove-section .rela.eh_frame "$2.$suf2" "$2.$suf4"
+ objcopy $rsopts "$2.$suf2" "$2.$suf4"
mv "$2.$suf4" "$2.$suf2"
elif (strip --help) 2>&1 | grep ' --remove-section' > /dev/null; then
cp "$1.$suf1" "$1.$suf3"
- strip --remove-section .eh_frame --remove-section .rel.eh_frame --remove-section .rela.eh_frame "$1.$suf3"
+ strip $rsopts "$1.$suf3"
mv "$1.$suf3" "$1.$suf1"
cp "$2.$suf2" "$2.$suf4"
- strip --remove-section .eh_frame --remove-section .rel.eh_frame --remove-section .rela.eh_frame "$2.$suf4"
+ strip $rsopts "$2.$suf4"
mv "$2.$suf4" "$2.$suf2"
else
echo failed to strip off .eh_frame >&2
diff --git a/contrib/download_prerequisites b/contrib/download_prerequisites
new file mode 100755
index 00000000000..f86f5612135
--- /dev/null
+++ b/contrib/download_prerequisites
@@ -0,0 +1,38 @@
+#! /bin/sh
+
+# Download some prerequisites needed by gcc.
+# Run this from the top level of the gcc source tree and the gcc
+# build will do the right thing.
+#
+# (C) 2010 Free Software Foundation
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+# General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see http://www.gnu.org/licenses/.
+
+MPFR=mpfr-2.4.2
+GMP=gmp-4.3.2
+MPC=mpc-0.8.1
+
+wget ftp://gcc.gnu.org/pub/gcc/infrastructure/$MPFR.tar.bz2 || exit 1
+tar xjf $MPFR.tar.bz2 || exit 1
+ln -sf $MPFR mpfr || exit 1
+
+wget ftp://gcc.gnu.org/pub/gcc/infrastructure/$GMP.tar.bz2 || exit 1
+tar xjf $GMP.tar.bz2 || exit 1
+ln -sf $GMP gmp || exit 1
+
+wget ftp://gcc.gnu.org/pub/gcc/infrastructure/$MPC.tar.gz || exit 1
+tar xzf $MPC.tar.gz || exit 1
+ln -sf $MPC mpc || exit 1
+
+rm $MPFR.tar.bz2 $GMP.tar.bz2 $MPC.tar.gz || exit 1
diff --git a/contrib/gcc_update b/contrib/gcc_update
index 37e65af59c4..cfae86a50c6 100755
--- a/contrib/gcc_update
+++ b/contrib/gcc_update
@@ -245,8 +245,13 @@ p
esac
+is_git=0
# Check whether this indeed looks like a local SVN tree.
-if [ ! -d .svn ]; then
+if [ -d .git ]; then
+ GCC_GIT=${GCC_GIT-${GIT-git}}
+ GCC_SVN="true -"
+ is_git=1
+elif [ ! -d .svn ]; then
echo "This does not seem to be a GCC SVN tree!"
exit
fi
@@ -258,6 +263,7 @@ else
set -- $UPDATE_OPTIONS ${1+"$@"}
fi
+if [ $is_git -eq 0 ]; then
chat "Updating SVN tree"
$GCC_SVN ${silent+-q} --non-interactive update ${1+"$@"}
@@ -283,4 +289,27 @@ p
echo "[$branch revision $revision]" > gcc/REVISION
+else
+ chat "Updating GIT tree"
+ $GCC_GIT diff --quiet --exit-code HEAD
+ if [ $? -ne 0 ]; then
+ echo "Attempting to update a dirty git tree!" >&2
+ echo "Commit or stash your changes first and retry." >&2
+ exit 1
+ fi
+ $GCC_GIT pull ${silent+-q} --rebase ${1+"$@"}
+ if [ $? -ne 0 ]; then
+ (touch_files_reexec)
+ echo "git pull of full tree failed." >&2
+ exit 1
+ fi
+ rm -f LAST_UPDATED gcc/REVISION
+ revision=`$GCC_GIT log -n1 --pretty=%p:%t:%H`
+ branch=`$GCC_GIT name-rev --name-only HEAD || :`
+ {
+ date
+ echo "`TZ=UTC date` (revision $revision)"
+ } > LAST_UPDATED
+ echo "[$branch revision $revision]" > gcc/REVISION
+fi
touch_files_reexec
diff --git a/contrib/test_summary b/contrib/test_summary
index c4b3c2c9369..5fc49f52bda 100755
--- a/contrib/test_summary
+++ b/contrib/test_summary
@@ -1,6 +1,6 @@
#! /bin/sh
-# (C) 1998, 1999, 2000, 2002, 2003, 2004, 2007, 2009
+# (C) 1998, 1999, 2000, 2002, 2003, 2004, 2007, 2009, 2010
# Free Software Foundation
# Originally by Alexandre Oliva <oliva@dcc.unicamp.br>
@@ -75,9 +75,9 @@ for file in $files; do
[ -f $file ] &&
anyfile=true &&
{ $anychange ||
- anychange=`diff -u $file.sent $file 2>/dev/null |
+ anychange=`diff $file.sent $file 2>/dev/null |
if test ! -f $file.sent ||
- egrep '^[-+](XPASS|FAIL)' >/dev/null; then
+ egrep '^[<>] (XPASS|FAIL)' >/dev/null; then
echo true
else
echo false