On Tue, Oct 20, 2015 at 02:29:44PM +0300, Maxim Ostapenko wrote: > In this patch, I'm trying to add a general instruction how to perform the > merge. This is just a documentation patch, any suggestions and opinions are > welcome.
I'd add a line that the diff in lib/asan/tests tests since the last merge to those tests (looking at gcc/testsuite/ChangeLog*, the 2014-05-30 entry mentions r209283) should be incorporated into the gcc testsuite too (if possible). Otherwise, LGTM. > Index: libsanitizer/HOWTO_MERGE > =================================================================== > --- libsanitizer/HOWTO_MERGE (revision 0) > +++ libsanitizer/HOWTO_MERGE (working copy) > @@ -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. Jakub