* [Committed, PATCH] Update HOWTO_MERGE file for libsanitizer.
@ 2015-10-23 8:48 Maxim Ostapenko
0 siblings, 0 replies; only message in thread
From: Maxim Ostapenko @ 2015-10-23 8:48 UTC (permalink / raw)
To: GCC Patches; +Cc: Yury Gribov, Slava Garbuzov
[-- Attachment #1: Type: text/plain, Size: 205 bytes --]
This patch updates libsanitizer/HOWTO_MERGE file according to Yura's
nits here: https://gcc.gnu.org/ml/gcc-patches/2015-10/msg02039.html.
Just a documentation patch, no changes in functionality.
-Maxim
[-- Attachment #2: HOWTO_MERGE.diff --]
[-- Type: text/x-patch, Size: 3907 bytes --]
Index: libsanitizer/HOWTO_MERGE
===================================================================
--- libsanitizer/HOWTO_MERGE (revision 229212)
+++ libsanitizer/HOWTO_MERGE (working copy)
@@ -2,25 +2,38 @@
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
+* 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
+ needed and update DEFS with new defined variables. You can find these changes
+ in corresponding CMakeLists.txt and config-ix.cmake files from compiler-rt source
+ directory.
+* 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
+* Apply all necessary compiler changes. Be especially careful here, you must
+ not break ABI between compiler and library. You can reveal these changes by
+ inspecting the history of AddressSanitizer.cpp and ThreadSanitizer.cpp files
+ from LLVM source tree.
+* 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.
+* 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.
+* Add new target platforms in configure.tgt script if needed.
+* Bump SONAME for sanitizer libraries in asan/tsan/ubsan libtool-version files
+ if ABI has changed.
+* Regenerate configure script and all Makefiles by autoreconf. You should use
+ exactly the same autoconf and automake versions as for other GCC directories (current
+ versions are written in Makefile.in and configure files).
+* Run regression testing on at least three platforms (e.g. x86-linux-gnu, x86_64-linux-gnu,
+ aarch64-linux-gnu, arm-linux-gnueabi).
+* Run {A, UB}San bootstrap on at least three platforms.
+* Compare ABI of corresponding libclang_rt-asan and newly build libasan libraries.
+ 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,
+ e.g. because libasan currently does not include UBSan runtime.
+* Split your changes into logical parts (e.g. raw merge, compiler changes, GCC-specific changes
+ in libasan, configure/Makefile changes). The review process has O(N^2) complexity, so you
+ would simplify and probably speed up the review process by doing this.
+* Send your patches for review to GCC Patches Mailing List (gcc-patches@gcc.gnu.org).
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2015-10-23 8:46 UTC | newest]
Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2015-10-23 8:48 [Committed, PATCH] Update HOWTO_MERGE file for libsanitizer Maxim Ostapenko
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).