HOWTO_MERGE: New file.
authorMax Ostapenko <m.ostapenko@partner.samsung.com>
Wed, 21 Oct 2015 07:53:22 +0000 (10:53 +0300)
committerMaxim Ostapenko <chefmax@gcc.gnu.org>
Wed, 21 Oct 2015 07:53:22 +0000 (10:53 +0300)
libsanitizer/

* HOWTO_MERGE: New file.

From-SVN: r229116

libsanitizer/ChangeLog
libsanitizer/HOWTO_MERGE [new file with mode: 0644]

index 2ed4cc321913f0dea1d811323c5b88c90cadc9be..cead59d6ebb635c33d61b2242650a4b70b35c7ef 100644 (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
diff --git a/libsanitizer/HOWTO_MERGE b/libsanitizer/HOWTO_MERGE
new file mode 100644 (file)
index 0000000..5d68e06
--- /dev/null
@@ -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.