]>
Commit | Line | Data |
---|---|---|
e18652ec | 1 | In general, merging process should not be very difficult, but we need to |
2 | track various ABI changes and GCC-specific patches carefully. Here is a | |
3 | general 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. |