From patchwork Wed May 2 19:47:47 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Steve Ellcey X-Patchwork-Id: 907674 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (mailfrom) smtp.mailfrom=gcc.gnu.org (client-ip=209.132.180.131; helo=sourceware.org; envelope-from=gcc-patches-return-477139-incoming=patchwork.ozlabs.org@gcc.gnu.org; receiver=) Authentication-Results: ozlabs.org; dmarc=none (p=none dis=none) header.from=cavium.com Authentication-Results: ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=gcc.gnu.org header.i=@gcc.gnu.org header.b="R2xDeSRB"; dkim-atps=neutral Received: from sourceware.org (server1.sourceware.org [209.132.180.131]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 40bpjR6sYwz9s02 for ; Thu, 3 May 2018 05:48:06 +1000 (AEST) DomainKey-Signature: a=rsa-sha1; c=nofws; d=gcc.gnu.org; h=list-id :list-unsubscribe:list-archive:list-post:list-help:sender :message-id:subject:from:reply-to:to:date:content-type :mime-version:content-transfer-encoding; q=dns; s=default; b=Foq Mb+B43kWhCypn0UYvnO8h6Ju9HaksdGO15n9mM7R/NG3AY4ZpwBmCxOXiOqcFRIu wnZsRGyN88+LEi0Xxt2D9katL5pLH6iadIEHV5bBt+9hzzICJukQTVGaVWoos2DM PSUPoLlLCDnXIQDpOgxvMkcY/Mfk0z5JarNPl1IA= DKIM-Signature: v=1; a=rsa-sha1; c=relaxed; d=gcc.gnu.org; h=list-id :list-unsubscribe:list-archive:list-post:list-help:sender :message-id:subject:from:reply-to:to:date:content-type :mime-version:content-transfer-encoding; s=default; bh=hE8z3wjN1 i3utbRins3akG8CICg=; b=R2xDeSRBrWbB39/7QqB3mDAqVegZnBQuNobMr63t9 SHOlqDoYosGDJi1FV6SeDS0n/y8TU+6VWhGF2OZd7KCr/XTpMQYFihBEsUbD0rQ0 UmWGjyxMUdMRiBvI2K3Jxr5Rzm6okBMK4AV2FXyndM5f/4r+5g6wLvOhTh6ERzzu 44= Received: (qmail 78435 invoked by alias); 2 May 2018 19:47:57 -0000 Mailing-List: contact gcc-patches-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Unsubscribe: List-Archive: List-Post: List-Help: Sender: gcc-patches-owner@gcc.gnu.org Delivered-To: mailing list gcc-patches@gcc.gnu.org Received: (qmail 78418 invoked by uid 89); 2 May 2018 19:47:57 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-25.2 required=5.0 tests=AWL, BAYES_00, GIT_PATCH_0, GIT_PATCH_1, GIT_PATCH_2, GIT_PATCH_3, RCVD_IN_DNSWL_NONE, SPF_HELO_PASS, SPF_PASS autolearn=ham version=3.3.2 spammy=supplied, sees, H*r:2603, checkin X-HELO: NAM03-CO1-obe.outbound.protection.outlook.com Received: from mail-co1nam03on0042.outbound.protection.outlook.com (HELO NAM03-CO1-obe.outbound.protection.outlook.com) (104.47.40.42) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Wed, 02 May 2018 19:47:55 +0000 Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=Steve.Ellcey@cavium.com; Received: from sellcey-dt.caveonetworks.com (50.233.148.156) by DM6PR07MB4569.namprd07.prod.outlook.com (2603:10b6:5:c1::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.715.18; Wed, 2 May 2018 19:47:51 +0000 Message-ID: <1525290467.28825.24.camel@cavium.com> Subject: [Patch] Do not call the linker if we are creating precompiled header files From: Steve Ellcey Reply-To: sellcey@cavium.com To: gcc-patches Date: Wed, 02 May 2018 12:47:47 -0700 Mime-Version: 1.0 X-ClientProxiedBy: BN6PR1001CA0007.namprd10.prod.outlook.com (2603:10b6:405:28::20) To DM6PR07MB4569.namprd07.prod.outlook.com (2603:10b6:5:c1::19) X-MS-PublicTrafficType: Email X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(7020095)(4652020)(5600026)(4534165)(4627221)(201703031133081)(201702281549075)(2017052603328)(7153060)(7193020); SRVR:DM6PR07MB4569; X-Microsoft-Exchange-Diagnostics: 1; DM6PR07MB4569; 3:NQERyLm8EqQ/GBFkSziuG88ZzGiEit6615N2deiHf/oTSX40r96F7fx3BpX4bPEqCcR0pN24qUkmWd7JSVgM9n+/lzubg2e9yqyLBkIwKHBh1pxPibXBMhPJWhbliZVUzbLMwe8sdbxbRmrpwz3qXQ8khmaWLrR1n507Z4bPutV/DCF2WfWdt1ltis3z+2jlPzFysxOlCMSQ0CaSL/+bYRg3F2VSkg+qOn68vIodaQtToiJaz22UmZdle660X8yD; 25:hFBm/lrOnvqAjCJcjjvf2RB7G+4FONJyjCNkNqGWqCsUCFvZMgn/E3sbX9bYD7WmYSCCMZatAtsEWz/bgqVhpQqfxuGNElZwMGihEtPPlctLTSzJkXG4g/Tc78dSQooiaqD8kgVnx1ogZ29kRZNgThJCEiRUsc7v/IoGgN44/7jUAqwAomhH/ClsCsG+KPQ36bPZMgUe7JcHjBeVO3OgeLfJB7Nbg1W7l5QsK6iwPRNsO/9IKSliv6Z+38yN7usivZQlYeBhmJeQuMmIHr5R/Q+MzdVkdjgA3mF7wCsWjA7fJfBM6zvUS6Z9wjHyzEwqIuy9aUlJizvGdlgaJpqlqw==; 31:uWH59GJlbplmsnLX9+JV2DKIJu/WzlckVSrS5rqW37nhSiCStWlo755+i7Ujxuj6X5ObfNu7ps+s2rVyoUEAVgg2OFl1dJDPG1E3OD5xqsNl1t9wrH+lhSgu5hccyO6KKaQ2U08nsxjMQc7AH+aW4o6kmfi1JTBWt/+DuVcdk3ySMn9eqGPfTXI+29aTYFHJHhbrAsnOohD4vRJOsvATyW03lzU/v0lPbxnE52AaWtw= X-MS-TrafficTypeDiagnostic: DM6PR07MB4569: X-Microsoft-Exchange-Diagnostics: 1; DM6PR07MB4569; 20:nOvamJ+6RdZcTiVjGzGg4KE6X44duapsureDMAfGqcjyeGFL8CNflw8hAsAdm3dGwySK1Uju7HEGuiZeMDBrJPLBeYgOC6/eZxzFZASE4UwFhLy3f/S53gD4rgsoREj16JvkwaeJmFv9i5uuh6GNtMTIXWyWQywLZ6FYBkWIiV4e/2iu0w+8FHBBw9cBSGQ9hrMz/x/IwAPgAqzvf5KhdrugetvVW8KSu775RnlAO9KFyb/bTjzQKpisX8Wd6dvdujNR8/NY70ft6YVQvGljIMWgDQkDmBpsmL/jbFlKbnVZxrcEek3wlPK3mMVC2tIyhKqRugGhB5mNYRDI5AiWuHfh63K1K1eO310ddGmC893VuuOPDV/qRbKJGO3rFzbEPqKi6zHQwmxnJDCNBY6tLTLZ7CpyMxgPit+GBywTIgUrAtFCc+bZP38DojVydNHQqHXqDtj4IddaKwoaKx2PeucKiCrb5y+3YTwqAmBC/iRQt0EIYKrWT8nYX5HZ9+Te; 4:uqz8LHA1KFq+tEV3lizxFLcscwuNJM2RwE0f+6AvXYSc9rQPPIay+nTlYQBrY3UeSD4nNiIB0VAbSVqz9H6oHdvkWlrH+zT19DZ6jPlWQelVVRpwk0L70OJd/WKl2UO0oOzg7WVqT2JetImNPfejckyQMP8+t4cQgOjXRBr+VXrk86VnzbCTnPwSJbP50iA+KXlwC3T+J2siN6x07seSICJ8gOLGvvI8WUAGSDjGbZg750qXKha99VA8U8fK9wr8x1TT4M+uRB5dtIfEkXX85g== X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(8211001083)(6040522)(2401047)(5005006)(8121501046)(3002001)(10201501046)(3231254)(944501410)(52105095)(93006095)(93001095)(6041310)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123558120)(20161123564045)(20161123560045)(20161123562045)(6072148)(201708071742011); SRVR:DM6PR07MB4569; BCL:0; PCL:0; RULEID:; SRVR:DM6PR07MB4569; X-Forefront-PRVS: 06607E485E X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(366004)(346002)(376002)(396003)(39380400002)(39860400002)(199004)(189003)(377424004)(6916009)(6506007)(2870700001)(69596002)(26005)(1857600001)(43066004)(486006)(476003)(53936002)(2616005)(106356001)(186003)(3450700001)(305945005)(956004)(105586002)(53416004)(7736002)(2906002)(81166006)(8676002)(50466002)(6512007)(23676004)(8936002)(16526019)(81156014)(386003)(50226002)(52116002)(97736004)(6486002)(5820100001)(478600001)(72206003)(103116003)(6116002)(66066001)(3846002)(47776003)(5660300001)(36756003)(25786009)(6666003)(316002)(68736007)(99106002); DIR:OUT; SFP:1101; SCL:1; SRVR:DM6PR07MB4569; H:sellcey-dt.caveonetworks.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; A:1; MX:1; Received-SPF: None (protection.outlook.com: cavium.com does not designate permitted sender hosts) X-Microsoft-Exchange-Diagnostics: =?utf-8?q?1=3BDM6PR07MB4569=3B23=3AWsvL?= =?utf-8?q?TGODvBK3L/lFJn2grcZ3p5G7Gtsy+CxdFmYwX9w7sEEMxKQ4s0SAj+ut?= =?utf-8?q?rvrtvHD8Qr3LwQjOKZi53y5oW0lRi0Jzu8+3Rn6Aei40CsLknqF191O5?= =?utf-8?q?SypYqwUBqMCm7x6wIf2jWflzxkD29r1Pjov9NOXUNJZ4hEPRZqGHJR6v?= =?utf-8?q?p7kVb/aWYsDF2YWGSX7gq4mRO9u3TQO7b3CUfcXHsV6o0IHRQwHx3u6D?= =?utf-8?q?fLcFJN2FgOKXYHYWZLHbCNP2utM8LFaNHYHmVLCoyVXfAh16Ps64TWcs?= =?utf-8?q?m5G9luyYXv89yUIpIdAohkQEpjbG7g3Xry5nYcyAoc7H0NRNDtrfaV4I?= =?utf-8?q?A9Ntst3iqWUH/78Z0AcYbSaM/BLkjG/+w0FzE82BdhYK3PWr6cCAl+9I?= =?utf-8?q?LzzICdsKGAQc5x++hQhvJ7mnjH2saj1gKd56FhibkYabUho2ldrsZYXg?= =?utf-8?q?niLLyx7e61RrpnS8xDfhooCctJPTB2kVKJeJKrkHZAei8/PH3YR+XeUA?= =?utf-8?q?mwUvUJYnF4s1/aeiapXnGpbWRRP2Pu73M6Wrfx1norm0v+4CPFbZIA6E?= =?utf-8?q?ByF9oC2UMOUfY4FeTepiRq03jOV4RLdE0D2EzQrCFWHIbuWOdh+qp25l?= =?utf-8?q?p8zPM14CjH/dM4sADDUmaCTa0v1j6QGI/ZYSHhhcO2Oa811H9IROiVmi?= =?utf-8?q?ibFgUo0SLMPmp4Bkvhujk/s+zmqea3/KRGADAx5jW8VXo10DjhJA44t3?= =?utf-8?q?I337Z9PvlWivuuQLnWnqwLx2zBjnDdl8WHGzjAGytuTNI22nEy0evEXj?= =?utf-8?q?nHkPnK6bOfMe9mI0n7C7IQhZSe2UQT5yjCcQjj4Ax4fEytt1O0yYH5JN?= =?utf-8?q?TSk+n8ydHAE72f69rg/BlL71Hl8Hx6NIeuwM9fC/4U34sWtzSU2lYiml?= =?utf-8?q?6ggmWzjbUNxS5zkrLGd1FaavNutSQKBwNEFf7Ky2+HJfKoigAPkjOk8L?= =?utf-8?q?u5fNMrSnOmJMhknMA+zEkI9WHI+B/0mTllD7VIKkp2kqAtg5iIzILU58?= =?utf-8?q?IwW6xi0Q7g7+Gt0W+2NV29mqNBMX5FAk5n79ksC5WwdUNKsI1q/L0oaz?= =?utf-8?q?ty1d3h9vjCo1H6erO6hYrm3AprW+qien83TkD89FvGuDoOjUCAJkqtm5?= =?utf-8?q?Aeg5Iho3n40bMBGqAWY3bIKy00AdZhUCOmh8KnvAFWPOcaZTH4N/trAz?= =?utf-8?q?wBKMYowf2b43ecuiuiAWhUoW5BL01OWAUqWcRW50B2EKm7Gh/MzQe0m6?= =?utf-8?q?nL7xX3Z6d8xn6ytCaRuoG/jFmiGy27h1Te/tW9dmZSxNK0rQ7hfOSm8P?= =?utf-8?q?8Q4ANaTTVQ=3D=3D?= X-Microsoft-Antispam-Message-Info: JvTz0dVOW+t33jU4Z0gpOX7+dHnnVuYldrUVR6gUterjTDczdhu73vfKLKCEJXGrWigvZj7RVdq5rJzySc9k9xNfVSu2gSiQzdJbBNUHTJRkQtvvXPqD6U40FZAj0GXZMmVfok48Uh11ergl1jgBqIwO3dXB2SjcPswCMKOp+3ya5DRzNxoS273mIHEKkvZ6 X-Microsoft-Exchange-Diagnostics: 1; DM6PR07MB4569; 6:7MOtl2cRxr2Q0e+b5ipyt2W8zwoTk/M/4wF9xxAGHaa86UoAp8+0HR7H+WlHTGXilc1MiFxf+CCR6qpS4hqNsvAx810EY/DHQ4TDJYa2dIeqI6G2w6JDiOae/BsleBtY9J0Ym0eDMq1vRfkisX8vNUKVO6yTMyQNC57NwS5JLnCLSk+oShYriwxR7yiDffCfIrT3AihO3DFcHgyGLfqhxhJt+S+zv3ad2tRilwfnOBoZD6FMLw+fUvSnd4yhb2K2lK/SAxfgLyhWiyOPfM4Alhy6REr49Oh9O8eitXASJ1Cn4N3yYkKonipizg1AR6L64tQJKN37PHidNz2gAZ/zZnmvjGd2NaukNtMmTlybXHdUbDATcuhIUY8a63S7+cJWgQ0TMdybbdlVbLGHnYuXRUXkeYQLy7p5nnHwuxB1DoF4xwuk1noUCb5cVQu5RmwKIH/vt22gmxcv2GOmwve09w==; 5:/zWh7nl1cUHRbiDqPTVKYNHJs+Fc8qRMu+qdnJe7hs6eFIwPyFcINi0/+vnHwoEsoFSNioQWN/PXUyWWBdEUEPHHMiuEYwIU+I3GEaosyv1vdo/zqPTJ/JaUVhJWapA0/6h/bgINEnJtQuhF5c4XRSrbNhukAwvpbirWTkp6Xbk=; 24:7fcG+ok/GWH4LRX/jH3j1/m62qRtpsiEdEeTEyXukt531+CmpPXBwrSIH1zYFndjtG0WU5INRmCQ4sFMjrfCFixSB1/8Xmu/65dAZGTUHwY= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; DM6PR07MB4569; 7:olJuaWyo4NipU7qIrBlHi1wLy69IkvaKpXKxZKQPYZT3LpNTMVOOEBzVCYAng9LxU3IP7B3qF58ki0ZFMe/esxTVGN214tqJH43Yz585ijXj9nmSYHlYHCKGReMtVp08L+iv3OzzcWS4YIbbyS+wwG5CV+7k0NYMq4KDM61FXWcq2eMFaII2e2bkYEu7ADw7ezvkkYI80N41r80p6cdYzx3jW5sLYJyV00EI9ibUshhWDXFDVhi/S7LI8phcIoVh X-MS-Office365-Filtering-Correlation-Id: 79077d14-8fd7-468c-20a7-08d5b0659740 X-OriginatorOrg: cavium.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 02 May 2018 19:47:51.4634 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 79077d14-8fd7-468c-20a7-08d5b0659740 X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 711e4ccf-2e9b-4bcf-a551-4094005b6194 X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR07MB4569 This is a new version of a patch I sent out last year to stop gcc from trying to do a link when creating precompiled headers and a linker flag is also given. When I build and test GCC I also build glibc and then I run the GCC tests with -Wl,-rpath and -Wl,--dynamic-linker so that I don't have to install glibc and the compiler in the default locations.  When I do this some precompiled header tests fail because the existance of the linker flags causes the compiler to try and call the linker when we really just want to create pch files. I tracked this down to driver::maybe_run_linker where it sees the linker flags and increments num_linker_inputs, this causes the routine to call the linker.   This patch checks to see if we are creating precompiled header files and avoids calling the linker in that case. I tested this with the GCC testsuite and got no regressions, OK to checkin? Steve Ellcey sellcey@cavium.com 2018-05-02  Steve Ellcey   * gcc.c (create_pch_flag): New variable. (driver::prepare_infiles): Set create_pch_flag when we are creating precompiled headers. (driver::maybe_run_linker): Do not link if create_pch_flag is set. (driver::finalize): Reset create_pch_flag. diff --git a/gcc/gcc.c b/gcc/gcc.c index a716f70..ca986cf 100644 --- a/gcc/gcc.c +++ b/gcc/gcc.c @@ -208,6 +208,9 @@ int is_cpp_driver;  /* Flag set to nonzero if an @file argument has been supplied to gcc.  */  static bool at_file_supplied;   +/* Flag set to nonzero if we are generating a precompiled header.  */ +static bool create_pch_flag; +  /* Definition of string containing the arguments given to configure.  */  #include "configargs.h"   @@ -8095,8 +8098,15 @@ driver::prepare_infiles ()      strlen (name),      infiles[i].language);   -      if (compiler && !(compiler->combinable)) - combine_inputs = false; +      if (compiler) + { +   if (!(compiler->combinable)) +     combine_inputs = false; + +   if ((strcmp(compiler->suffix, "@c-header") == 0) +       || (strcmp(compiler->suffix, "@c++-header") == 0)) +     create_pch_flag = true; + }          if (lang_n_infiles > 0 && compiler != input_file_compiler     && infiles[i].language && infiles[i].language[0] != '*') @@ -8282,6 +8292,10 @@ driver::maybe_run_linker (const char *argv0) const    int linker_was_run = 0;    int num_linker_inputs;   +  /* If we are creating a precompiled header, do not run the linker.  */ +  if (create_pch_flag) +    return; +    /* Determine if there are any linker input files.  */    num_linker_inputs = 0;    for (i = 0; (int) i < n_infiles; i++) @@ -10052,6 +10066,7 @@ driver::finalize ()      is_cpp_driver = 0;    at_file_supplied = 0; +  create_pch_flag = 0;    print_help_list = 0;    print_version = 0;    verbose_only_flag = 0;