Received: by 2002:ac0:bc90:0:0:0:0:0 with SMTP id a16csp5417358img; Wed, 27 Mar 2019 08:09:50 -0700 (PDT) X-Google-Smtp-Source: APXvYqxnGpQ5vRNRsPnHMl0X3IPS7XvPiPvt4p+5y41qCmh15ktMIfeWL4ZwZQSdq4SwXGnY25s+ X-Received: by 2002:a63:6805:: with SMTP id d5mr1368543pgc.416.1553699390483; Wed, 27 Mar 2019 08:09:50 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1553699390; cv=none; d=google.com; s=arc-20160816; b=oIf7oAxNGWVYnGMLxF5jdoN/17vIcrrSNu6Cq2ETnrX2tnnVrYDkBwJ1iXgVXVLm0C 8EGkm52EV1WTY5jU54tqw6h2uLdPedDCcPtvGG3IZ4zuHdvhV/3ls6OKDsefL0MYuNCK AI5dUHgCvXgLCQClaVXaY2WIDPVU1vsi0soq0+t9S7HtOgaNXZEwr9W/q88ZToI5VY0k 28/keBGVWuyNnf2kVTDEdLg7I32lvDVE0jaS6OLkS3ug141Ftpn6PcSQA6j9i2WW9CRP LMrWWC1cCreFhZXJ8wIGPODP7E8vBImO7clvVTa6Wb1FpRt2Mla/4rcXcrA8xFIrEQJ2 HmlA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:mime-version:user-agent:references :message-id:in-reply-to:subject:cc:to:from:date; bh=2kosxEcCEJIT4EiqCa83nLGjhsvB/OH3GDJle/DU8WY=; b=0x8k7aj2EWLzrTCR0IZOJNxDkmueWiV/BnBmjJQEjFBd3OCwUQKfFWnv4ffRpFPkBX StiBkzXPrhjGrQd6p0y1x/tLHKJHQv3GrjRKXIM702P05u0yxXV5zE8M7Hdn4ioM2EBn Yt/J8xHJ5+WXcJKnpHr9vbQYOxX6nkL69Lz0ZyYEqG7aydpIcU62IHPy5Ol0v5RPKz3T kOabbByEsyWku31oSXIUyo37/en40S6v8kbxTGOi8voibjF3jx50P7EUTLH4DT+keyw0 kues5YTVsMPZ4gNgIUGWQ6+MScGG4qiej+aEF/87qzTewDfwWDtRR3bq8kNwpMdaB/KI WI3w== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id v21si9953564pfe.119.2019.03.27.08.09.34; Wed, 27 Mar 2019 08:09:50 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728213AbfC0PIr (ORCPT + 99 others); Wed, 27 Mar 2019 11:08:47 -0400 Received: from Galois.linutronix.de ([146.0.238.70]:50981 "EHLO Galois.linutronix.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726469AbfC0PIq (ORCPT ); Wed, 27 Mar 2019 11:08:46 -0400 Received: from p5492e2fc.dip0.t-ipconnect.de ([84.146.226.252] helo=nanos) by Galois.linutronix.de with esmtpsa (TLS1.2:DHE_RSA_AES_256_CBC_SHA256:256) (Exim 4.80) (envelope-from ) id 1h9AAS-0005gU-TJ; Wed, 27 Mar 2019 16:08:41 +0100 Date: Wed, 27 Mar 2019 16:08:40 +0100 (CET) From: Thomas Gleixner To: Andi Kleen cc: Andi Kleen , x86@kernel.org, Andrew Morton , LKML , Josh Poimboeuf Subject: Re: [PATCH 02/17] x86, lto: Mark all top level asm statements as .text In-Reply-To: <20190327145918.GU18020@tassilo.jf.intel.com> Message-ID: References: <20190321220009.29334-1-andi@firstfloor.org> <20190321220009.29334-3-andi@firstfloor.org> <20190326213803.GN18020@tassilo.jf.intel.com> <20190327005523.bbxxittqf4d5bdz5@two.firstfloor.org> <20190327145918.GU18020@tassilo.jf.intel.com> User-Agent: Alpine 2.21 (DEB 202 2017-01-01) MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII X-Linutronix-Spam-Score: -1.0 X-Linutronix-Spam-Level: - X-Linutronix-Spam-Status: No , -1.0 points, 5.0 required, ALL_TRUSTED=-1,SHORTCIRCUIT=-0.0001 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Wed, 27 Mar 2019, Andi Kleen wrote: > On Wed, Mar 27, 2019 at 03:20:08PM +0100, Thomas Gleixner wrote: > > /* Simple instruction patching code. */ > > -#define NATIVE_LABEL(a,x,b) "\n\t.globl " a #x "_" #b "\n" a #x "_" #b ":\n\t" > > +#define NATIVE_LABEL(a,x,b) "\n" a #x "_" #b ":\n\t" > > > > #define DEF_NATIVE(ops, name, code) \ > > - __visible extern const char start_##ops##_##name[], end_##ops##_##name[]; \ > > - asm(NATIVE_LABEL("start_", ops, name) code NATIVE_LABEL("end_", ops, name)) > > + static const char start_##ops##_##name[], end_##ops##_##name[]; \ > > Please don't apply the static/__visible removal hunk, I will just need to > revert it again for LTO. Why on earth is this needed for LTO? From the GCC manual: "This attribute, attached to a global variable or function, nullifies the effect of the -fw hole-program command-line option, so the object remains visible outside the current compilation unit." Neither the variable nor the data generated are global anymore. This data is only used inside this compilation unit and I don't see why LTO needs a reference outside of it. If so, then I really want to understand WHY exactly. Thanks, tglx