From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 74399 invoked by alias); 20 Oct 2015 11:30:14 -0000 Mailing-List: contact gcc-patches-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Archive: List-Post: List-Help: Sender: gcc-patches-owner@gcc.gnu.org Received: (qmail 74142 invoked by uid 89); 20 Oct 2015 11:30:13 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=1.1 required=5.0 tests=AWL,BAYES_00,KAM_LAZY_DOMAIN_SECURITY,RP_MATCHES_RCVD,SPF_HELO_PASS,URIBL_BLACK autolearn=no version=3.3.2 X-HELO: mailout1.w1.samsung.com Received: from mailout1.w1.samsung.com (HELO mailout1.w1.samsung.com) (210.118.77.11) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with (AES128-SHA encrypted) ESMTPS; Tue, 20 Oct 2015 11:30:11 +0000 Received: from eucpsbgm2.samsung.com (unknown [203.254.199.245]) by mailout1.w1.samsung.com (Oracle Communications Messaging Server 7.0.5.31.0 64bit (built May 5 2014)) with ESMTP id <0NWI0091BNY6J530@mailout1.w1.samsung.com> for gcc-patches@gcc.gnu.org; Tue, 20 Oct 2015 12:30:06 +0100 (BST) Received: from eusync4.samsung.com ( [203.254.199.214]) by eucpsbgm2.samsung.com (EUCPMTA) with SMTP id 72.96.05269.EB526265; Tue, 20 Oct 2015 12:30:06 +0100 (BST) Received: from [106.109.128.167] by eusync4.samsung.com (Oracle Communications Messaging Server 7.0.5.31.0 64bit (built May 5 2014)) with ESMTPA id <0NWI0090NNY53Y70@eusync4.samsung.com>; Tue, 20 Oct 2015 12:30:06 +0100 (BST) Subject: [PATCH v2 6/6] Libsanitizer merge from upstream r250806 (was r249633). To: Jakub Jelinek , Kostya Serebryany , GCC Patches References: <56262292.3030803@partner.samsung.com> Cc: Dmitry Vyukov , Marek Polacek , Yury Gribov , Slava Garbuzov , Vyacheslav Barinov From: Maxim Ostapenko Message-id: <562625A8.3030007@partner.samsung.com> Date: Tue, 20 Oct 2015 11:45:00 -0000 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Thunderbird/38.2.0 MIME-version: 1.0 In-reply-to: <56262292.3030803@partner.samsung.com> Content-type: multipart/mixed; boundary=------------070407000708000406090805 X-IsSubscribed: yes X-SW-Source: 2015-10/txt/msg01859.txt.bz2 This is a multi-part message in MIME format. --------------070407000708000406090805 Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit Content-length: 161 In this patch, I'm trying to add a general instruction how to perform the merge. This is just a documentation patch, any suggestions and opinions are welcome. --------------070407000708000406090805 Content-Type: text/x-patch; name="6.diff" Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename="6.diff" Content-length: 1776 Index: libsanitizer/HOWTO_MERGE =================================================================== --- libsanitizer/HOWTO_MERGE (revision 0) +++ libsanitizer/HOWTO_MERGE (working copy) @@ -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. --------------070407000708000406090805--