HOWTO_MERGE: New file.

libsanitizer/

	* HOWTO_MERGE: New file.

From-SVN: r229116
This commit is contained in:
Max Ostapenko 2015-10-21 10:53:22 +03:00 committed by Maxim Ostapenko
parent 21d6106320
commit 7047bc9c16
2 changed files with 30 additions and 0 deletions

View File

@ -1,3 +1,7 @@
2015-10-21 Maxim Ostapenko <m.ostapenko@partner.samsung.com>
* HOWTO_MERGE: New file.
2015-10-21 Maxim Ostapenko <m.ostapenko@partner.samsung.com>
* sanitizer_common/sanitizer_stacktrace.cc (GetCanonicFrame): Assume we

26
libsanitizer/HOWTO_MERGE Normal file
View File

@ -0,0 +1,26 @@
In general, merging process should not be very difficult, but we need to
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.
- 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
needed and update DEFS with new defined variables.
- Apply all needed GCC-specific patches to libsanitizer (note that some of
them might be already included to upstream).
- Apply all necessary compiler changes. Be especially careful here, you must
not break ABI between compiler and library.
- Modify configure.ac file if needed (e.g. if you need to add link against new
library for sanitizer lilbs).
- Remove unused (deleted by merge) files from all source and include
directories. Be especially careful with headers, because they aren't listed
in Makefiles explicitly.
- Regenerate configure script and all Makefiles by autoreconf. You should use
exactly the same autotools version as for other GCC directories (current
version is 2.64, https://www.gnu.org/software/automake/faq/autotools-faq.html
for details how to install/use it).
- Run regression testing on at least three platforms (e.g. x86-linux-gnu,
x86_64-linux-gnu, aarch64-linux-gnu).
- Run {A, UB}San bootstrap on at least three platforms.