mirror of
https://github.com/Zenithsiz/ftmemsim-valgrind.git
synced 2026-02-04 02:18:37 +00:00
Add script to assist in updating the C++ demangler from GCC trunk.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@12282
This commit is contained in:
parent
34d5fb61d7
commit
8dbb84b825
@ -7,6 +7,7 @@ dist_noinst_SCRIPTS = \
|
||||
gsl16test \
|
||||
gsl19test \
|
||||
nightly-build-summary \
|
||||
update-demangler \
|
||||
posixtestsuite-1.5.1-diff-results
|
||||
|
||||
EXTRA_DIST = \
|
||||
|
||||
106
auxprogs/update-demangler
Executable file
106
auxprogs/update-demangler
Executable file
@ -0,0 +1,106 @@
|
||||
#!/bin/sh
|
||||
|
||||
set -e
|
||||
|
||||
#---------------------------------------------------------------------
|
||||
# This quick and dirty script assists in updating the C++ demangler
|
||||
# machinery in coregrind/m_demangle.
|
||||
# The script will check out
|
||||
# - old and new revisions of the C++ demangler related files from GCC
|
||||
# - m_demangle from valgrind's trunk.
|
||||
# It will assemble
|
||||
# - a patch file with local changes that were applied to the C++
|
||||
# demangler to make it work within valgrind
|
||||
# - a directory new_m_demangle whose contexts should be copied to
|
||||
# m_demangle in valgrind trunk
|
||||
# The patch will *not* be applied automacially.
|
||||
#---------------------------------------------------------------------
|
||||
|
||||
# You need to modify these revision numbers for your update.
|
||||
old_gcc_revision=r141363 # the revision of the previous update
|
||||
new_gcc_revision=r181975 # the revision for this update
|
||||
|
||||
# Unless the organization of demangler related files has changed, no
|
||||
# changes below this line should be necessary.
|
||||
|
||||
# Setup a temp directory
|
||||
DIR=/tmp/demangle
|
||||
|
||||
rm -rf $DIR
|
||||
mkdir -p $DIR
|
||||
|
||||
cd $DIR
|
||||
|
||||
echo "Updating the demangler in $DIR"
|
||||
|
||||
# 1) Check out files from old GCC revision
|
||||
echo "Checking out GCC files @ $old_gcc_revision"
|
||||
|
||||
mkdir gcc-$old_gcc_revision
|
||||
cd gcc-$old_gcc_revision
|
||||
svn co -$old_gcc_revision svn://gcc.gnu.org/svn/gcc/trunk/libiberty libiberty > /dev/null
|
||||
svn co -$old_gcc_revision svn://gcc.gnu.org/svn/gcc/trunk/include include > /dev/null
|
||||
rm -rf libiberty/.svn
|
||||
rm -rf include/.svn
|
||||
cd ..
|
||||
|
||||
# 2) Assemble the ones we need in $DIR/$old_gcc_revision
|
||||
mkdir $old_gcc_revision
|
||||
cd $old_gcc_revision
|
||||
cp ../gcc-$old_gcc_revision/include/ansidecl.h .
|
||||
cp ../gcc-$old_gcc_revision/include/demangle.h .
|
||||
cp ../gcc-$old_gcc_revision/include/dyn-string.h .
|
||||
cp ../gcc-$old_gcc_revision/include/safe-ctype.h .
|
||||
cp ../gcc-$old_gcc_revision/libiberty/cp-demangle.c .
|
||||
cp ../gcc-$old_gcc_revision/libiberty/cp-demangle.h .
|
||||
cp ../gcc-$old_gcc_revision/libiberty/cplus-dem.c .
|
||||
cp ../gcc-$old_gcc_revision/libiberty/dyn-string.c .
|
||||
cp ../gcc-$old_gcc_revision/libiberty/safe-ctype.c .
|
||||
cd ..
|
||||
|
||||
# 3) Check out files from new GCC revision
|
||||
|
||||
echo "Checking out GCC files @ $new_gcc_revision"
|
||||
mkdir gcc-$new_gcc_revision
|
||||
cd gcc-$new_gcc_revision
|
||||
svn co -$new_gcc_revision svn://gcc.gnu.org/svn/gcc/trunk/libiberty libiberty > /dev/null
|
||||
svn co -$new_gcc_revision svn://gcc.gnu.org/svn/gcc/trunk/include include > /dev/null
|
||||
rm -rf libiberty/.svn
|
||||
rm -rf include/.svn
|
||||
cd ..
|
||||
|
||||
# 4) Assemble the ones we need in $DIR/$new_gcc_revision
|
||||
|
||||
mkdir $new_gcc_revision
|
||||
cd $new_gcc_revision
|
||||
cp ../gcc-$new_gcc_revision/include/ansidecl.h .
|
||||
cp ../gcc-$new_gcc_revision/include/demangle.h .
|
||||
cp ../gcc-$new_gcc_revision/include/dyn-string.h .
|
||||
cp ../gcc-$new_gcc_revision/include/safe-ctype.h .
|
||||
cp ../gcc-$new_gcc_revision/libiberty/cp-demangle.c .
|
||||
cp ../gcc-$new_gcc_revision/libiberty/cp-demangle.h .
|
||||
cp ../gcc-$new_gcc_revision/libiberty/cplus-dem.c .
|
||||
cp ../gcc-$new_gcc_revision/libiberty/dyn-string.c .
|
||||
cp ../gcc-$new_gcc_revision/libiberty/safe-ctype.c .
|
||||
cd ..
|
||||
|
||||
# 5) Check out valgrind coregrind/m_demangle into old_m_demangle
|
||||
echo "Checking out coregrind/m_demangle"
|
||||
svn co svn://svn.valgrind.org/valgrind/trunk/coregrind/m_demangle old_m_demangle > /dev/null
|
||||
rm -rf old_m_demangle/.svn
|
||||
|
||||
# 6) Create new_m_demangle
|
||||
cp -rp old_m_demangle new_m_demangle
|
||||
cp -rp $new_gcc_revision/*.[ch] new_m_demangle
|
||||
|
||||
# 7) Compare files from previous GCC revision against old_m_demangle
|
||||
# (This gets us the changes we made to the demangler).
|
||||
echo "Creating patch"
|
||||
set +e
|
||||
diff -r -u $old_gcc_revision old_m_demangle > our-changes
|
||||
echo "Patch file 'our-changes' created"
|
||||
|
||||
# 7) See how the patch would apply
|
||||
echo "Attempting to apply the patch (but not actualy doing it)."
|
||||
cd new_m_demangle
|
||||
patch --dry -p1 < ../our-changes
|
||||
Loading…
x
Reference in New Issue
Block a user