]> git.ipfire.org Git - thirdparty/gcc.git/blame - libsanitizer/HOWTO_MERGE
libsanitizer/
[thirdparty/gcc.git] / libsanitizer / HOWTO_MERGE
CommitLineData
e18652ec 1In general, merging process should not be very difficult, but we need to
2track various ABI changes and GCC-specific patches carefully. Here is a
3general list of actions required to perform the merge:
4
5- Checkout recent GCC tree.
6- Run merge.sh script from libsanitizer directory.
7- Modify Makefile.am files into asan/tsan/lsan/ubsan/sanitizer_common/interception
8 directories if needed. In particular, you may need to add new source files
9 and remove old ones in source files list, add new flags to {C, CXX}FLAGS if
10 needed and update DEFS with new defined variables.
11- Apply all needed GCC-specific patches to libsanitizer (note that some of
12 them might be already included to upstream).
13- Apply all necessary compiler changes. Be especially careful here, you must
14 not break ABI between compiler and library.
15- Modify configure.ac file if needed (e.g. if you need to add link against new
16 library for sanitizer lilbs).
17- Remove unused (deleted by merge) files from all source and include
18 directories. Be especially careful with headers, because they aren't listed
19 in Makefiles explicitly.
20- Regenerate configure script and all Makefiles by autoreconf. You should use
21 exactly the same autotools version as for other GCC directories (current
22 version is 2.64, https://www.gnu.org/software/automake/faq/autotools-faq.html
23 for details how to install/use it).
24- Run regression testing on at least three platforms (e.g. x86-linux-gnu,
25 x86_64-linux-gnu, aarch64-linux-gnu).
26- Run {A, UB}San bootstrap on at least three platforms.