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