summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMartin Liska <mliska@suse.cz>2018-10-31 12:09:26 +0100
committerMartin Liska <marxin@gcc.gnu.org>2018-10-31 11:09:26 +0000
commit95fba530b6f68f336090abb5699ae9f24d1e22e6 (patch)
treebc35e5b87241ba2aa2a43ad602eac7c6bf9940ff
parent2e71b5714df37470cbfa44eb1faefd4e1bc22648 (diff)
Update merge script and HOWTO_MERGE documentation.
2018-10-31 Martin Liska <mliska@suse.cz> * HOWTO_MERGE: Enhance documentation. * merge.sh: Add support for git as well. From-SVN: r265664
-rw-r--r--libsanitizer/ChangeLog5
-rw-r--r--libsanitizer/HOWTO_MERGE9
-rwxr-xr-xlibsanitizer/merge.sh6
3 files changed, 15 insertions, 5 deletions
diff --git a/libsanitizer/ChangeLog b/libsanitizer/ChangeLog
index 37104d0ec6a..d93e7db9ee1 100644
--- a/libsanitizer/ChangeLog
+++ b/libsanitizer/ChangeLog
@@ -1,3 +1,8 @@
+2018-10-31 Martin Liska <mliska@suse.cz>
+
+ * HOWTO_MERGE: Enhance documentation.
+ * merge.sh: Add support for git as well.
+
2018-08-02 Martin Liska <mliska@suse.cz>
PR sanitizer/86022
diff --git a/libsanitizer/HOWTO_MERGE b/libsanitizer/HOWTO_MERGE
index 81121aa385f..a47a26a4a74 100644
--- a/libsanitizer/HOWTO_MERGE
+++ b/libsanitizer/HOWTO_MERGE
@@ -3,7 +3,8 @@ track various ABI changes and GCC-specific patches carefully. Here is a
general list of actions required to perform the merge:
* Checkout recent GCC tree.
-* Run merge.sh script from libsanitizer directory.
+* Run merge.sh script from libsanitizer directory. The script accepts one
+ argument that is control version system (svn or git).
* Modify Makefile.am files into asan/tsan/lsan/ubsan/sanitizer_common/interception
directories if needed. In particular, you may need to add new source files
and remove old ones in source files list, add new flags to {C, CXX}FLAGS if
@@ -20,7 +21,7 @@ general list of actions required to perform the merge:
* Update ASan testsuite with corresponding tests from lib/asan/tests directory.
Not all tests can be migrated easily, so you don't need them all to be adapted.
* Modify configure.ac file if needed (e.g. if you need to add link against new
- library for sanitizer lilbs).
+ library for sanitizer libs).
* Add new target platforms in configure.tgt script if needed.
* Bump SONAME for sanitizer libraries in asan/tsan/ubsan libtool-version files
if ABI has changed.
@@ -30,7 +31,9 @@ general list of actions required to perform the merge:
* Run regression testing on at least three platforms (e.g. x86-linux-gnu, x86_64-linux-gnu,
aarch64-linux-gnu, arm-linux-gnueabi).
* Run {A, UB}San bootstrap on at least three platforms.
-* Compare ABI of corresponding libclang_rt-asan and newly build libasan libraries.
+* Compare ABI of corresponding libclang_rt.asan and newly build libasan libraries.
+ Similarly you can compare latest GCC release with the newly built libraries
+ (libasan.so.*, libubsan.so.*, libtsan.so*).
You can use a pretty good libabigail tool (https://sourceware.org/libabigail/index.html)
to perform such a comparision. Note, that the list of exported symbols may differ,
e.g. because libasan currently does not include UBSan runtime.
diff --git a/libsanitizer/merge.sh b/libsanitizer/merge.sh
index 2e5ec2527b8..fa340bedbac 100755
--- a/libsanitizer/merge.sh
+++ b/libsanitizer/merge.sh
@@ -4,6 +4,8 @@
# This script merges libsanitizer sources from upstream.
+VCS=${1:-svn}
+
get_upstream() {
rm -rf upstream
#cp -rf orig upstream
@@ -46,10 +48,10 @@ merge() {
elif [ -f $upstream_path/$f ]; then
echo "FOUND IN UPSTREAM :" $f
cp -v $upstream_path/$f $local_path
- svn add $local_path/$f
+ $VCS add $local_path/$f
elif [ -f $local_path/$f ]; then
echo "FOUND IN LOCAL :" $f
- svn remove $local_path/$f
+ $VCS rm $local_path/$f
fi
done