Commit 95fba530 by Martin Liska Committed by Martin Liska

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
parent 2e71b571
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> 2018-08-02 Martin Liska <mliska@suse.cz>
PR sanitizer/86022 PR sanitizer/86022
......
...@@ -3,7 +3,8 @@ track various ABI changes and GCC-specific patches carefully. Here is a ...@@ -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: general list of actions required to perform the merge:
* Checkout recent GCC tree. * 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 * 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 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 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: ...@@ -20,7 +21,7 @@ general list of actions required to perform the merge:
* Update ASan testsuite with corresponding tests from lib/asan/tests directory. * 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. 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 * 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. * Add new target platforms in configure.tgt script if needed.
* Bump SONAME for sanitizer libraries in asan/tsan/ubsan libtool-version files * Bump SONAME for sanitizer libraries in asan/tsan/ubsan libtool-version files
if ABI has changed. if ABI has changed.
...@@ -30,7 +31,9 @@ general list of actions required to perform the merge: ...@@ -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, * Run regression testing on at least three platforms (e.g. x86-linux-gnu, x86_64-linux-gnu,
aarch64-linux-gnu, arm-linux-gnueabi). aarch64-linux-gnu, arm-linux-gnueabi).
* Run {A, UB}San bootstrap on at least three platforms. * 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) 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, to perform such a comparision. Note, that the list of exported symbols may differ,
e.g. because libasan currently does not include UBSan runtime. e.g. because libasan currently does not include UBSan runtime.
......
...@@ -4,6 +4,8 @@ ...@@ -4,6 +4,8 @@
# This script merges libsanitizer sources from upstream. # This script merges libsanitizer sources from upstream.
VCS=${1:-svn}
get_upstream() { get_upstream() {
rm -rf upstream rm -rf upstream
#cp -rf orig upstream #cp -rf orig upstream
...@@ -46,10 +48,10 @@ merge() { ...@@ -46,10 +48,10 @@ merge() {
elif [ -f $upstream_path/$f ]; then elif [ -f $upstream_path/$f ]; then
echo "FOUND IN UPSTREAM :" $f echo "FOUND IN UPSTREAM :" $f
cp -v $upstream_path/$f $local_path cp -v $upstream_path/$f $local_path
svn add $local_path/$f $VCS add $local_path/$f
elif [ -f $local_path/$f ]; then elif [ -f $local_path/$f ]; then
echo "FOUND IN LOCAL :" $f echo "FOUND IN LOCAL :" $f
svn remove $local_path/$f $VCS rm $local_path/$f
fi fi
done done
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment