[libsanitizer] a script to help merging asan/tsan from upstream
From-SVN: r193743
This commit is contained in:
parent
b28ece3232
commit
3409d40e47
@ -1,3 +1,7 @@
|
||||
2012-11-23 Kostya Serebryany <kcc@google.com>
|
||||
|
||||
* merge.sh: a script that will help merges from upstream.
|
||||
|
||||
2012-11-23 Jakub Jelinek <jakub@redhat.com>
|
||||
|
||||
* tsan/Makefile.am (AM_CXXFLAGS): Remove -Wno-variadic-macros.
|
||||
|
@ -13,3 +13,6 @@ http://llvm.org/svn/llvm-project/compiler-rt in the following directories:
|
||||
Trivial and urgent fixes (portability, build fixes, etc.) may go directly to the
|
||||
GCC tree. All non-trivial changes, functionality improvements, etc. should go
|
||||
through the upstream tree first and then be merged back to the GCC tree.
|
||||
The merges from upstream should be done with the aid of the merge.sh script;
|
||||
it will also update the file MERGE to contain the upstream revision
|
||||
we merged with.
|
||||
|
79
libsanitizer/merge.sh
Executable file
79
libsanitizer/merge.sh
Executable file
@ -0,0 +1,79 @@
|
||||
#!/bin/bash
|
||||
|
||||
# FIXME: do we need a license (or whatever else) header here?
|
||||
|
||||
# This script merges libsanitizer sources from upstream.
|
||||
|
||||
get_upstream() {
|
||||
rm -rf upstream
|
||||
#cp -rf orig upstream
|
||||
svn co http://llvm.org/svn/llvm-project/compiler-rt/trunk upstream
|
||||
}
|
||||
|
||||
get_current_rev() {
|
||||
cd upstream
|
||||
svn info | grep Revision | grep -o '[0-9]*'
|
||||
}
|
||||
|
||||
list_files() {
|
||||
(cd $1; ls *.{cc,h} 2> /dev/null)
|
||||
|
||||
}
|
||||
|
||||
change_comment_headers() {
|
||||
for f in $(list_files $1); do
|
||||
changed=$(awk 'NR != 2 && NR != 3' < $1/$f)
|
||||
echo "$changed" > $1/$f
|
||||
done
|
||||
}
|
||||
|
||||
# ARGUMENTS: upstream_path local_path
|
||||
# This function merges changes from the directory upstream_path to
|
||||
# the directory local_path.
|
||||
merge() {
|
||||
upstream_path=upstream/$1
|
||||
local_path=$2
|
||||
change_comment_headers $upstream_path
|
||||
echo MERGE: $upstream_path
|
||||
all=$( (list_files $upstream_path; list_files $local_path) | sort | uniq)
|
||||
#echo $all
|
||||
for f in $all; do
|
||||
if [ -f $upstream_path/$f -a -f $local_path/$f ]; then
|
||||
echo "FOUND IN BOTH :" $f
|
||||
# diff -u $local_path/$f $upstream_path/$f
|
||||
cp -v $upstream_path/$f $local_path
|
||||
elif [ -f $upstream_path/$f ]; then
|
||||
echo "FOUND IN UPSTREAM :" $f
|
||||
echo "UNSUPPORTED YET" && exit 1
|
||||
elif [ -f $local_path/$f ]; then
|
||||
echo "FOUND IN LOCAL :" $f
|
||||
echo "UNSUPPORTED YET" && exit 1
|
||||
fi
|
||||
done
|
||||
|
||||
}
|
||||
|
||||
fatal() {
|
||||
echo "$1"
|
||||
exit 1;
|
||||
}
|
||||
|
||||
pwd | grep 'libsanitizer$' || \
|
||||
fatal "Run this script from libsanitizer dir"
|
||||
get_upstream
|
||||
CUR_REV=$(get_current_rev)
|
||||
echo Current upstream revision: $CUR_REV
|
||||
merge include/sanitizer include/sanitizer
|
||||
merge lib/asan asan
|
||||
merge lib/sanitizer_common sanitizer_common
|
||||
merge lib/interception interception
|
||||
|
||||
rm -rf upstream
|
||||
|
||||
# Update the MERGE file.
|
||||
cat << EOF > MERGE
|
||||
$CUR_REV
|
||||
|
||||
The first line of this file holds the svn revision number of the
|
||||
last merge done from the master library sources.
|
||||
EOF
|
Loading…
Reference in New Issue
Block a user