mirror of
git://gcc.gnu.org/git/gcc.git
synced 2025-03-04 02:45:30 +08:00
27 lines
1.5 KiB
Plaintext
27 lines
1.5 KiB
Plaintext
|
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.
|