From 95fba530b6f68f336090abb5699ae9f24d1e22e6 Mon Sep 17 00:00:00 2001 From: Martin Liska Date: Wed, 31 Oct 2018 12:09:26 +0100 Subject: [PATCH] Update merge script and HOWTO_MERGE documentation. 2018-10-31 Martin Liska * HOWTO_MERGE: Enhance documentation. * merge.sh: Add support for git as well. From-SVN: r265664 --- libsanitizer/ChangeLog | 5 +++++ libsanitizer/HOWTO_MERGE | 9 ++++++--- libsanitizer/merge.sh | 6 ++++-- 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 + + * HOWTO_MERGE: Enhance documentation. + * merge.sh: Add support for git as well. + 2018-08-02 Martin Liska 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