From patchwork Mon Jun 15 15:29:03 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Matthias Klose X-Patchwork-Id: 1309591 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=gcc.gnu.org (client-ip=8.43.85.97; helo=sourceware.org; envelope-from=gcc-patches-bounces@gcc.gnu.org; receiver=) Authentication-Results: ozlabs.org; dmarc=none (p=none dis=none) header.from=ubuntu.com Received: from sourceware.org (server2.sourceware.org [8.43.85.97]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 49lwHD3w9fz9sRW for ; Tue, 16 Jun 2020 01:29:26 +1000 (AEST) Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 02518383F861; Mon, 15 Jun 2020 15:29:23 +0000 (GMT) X-Original-To: gcc-patches@gcc.gnu.org Delivered-To: gcc-patches@gcc.gnu.org Received: from einhorn-mail.in-berlin.de (einhorn-mail.in-berlin.de [217.197.80.20]) by sourceware.org (Postfix) with ESMTPS id C7D49383F849 for ; Mon, 15 Jun 2020 15:29:05 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.3.2 sourceware.org C7D49383F849 Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=ubuntu.com Authentication-Results: sourceware.org; spf=none smtp.mailfrom=doko@ubuntu.com X-Envelope-From: doko@ubuntu.com Received: from authenticated.user (localhost [127.0.0.1]) by einhorn.in-berlin.de with ESMTPSA id 05FFT3T9014110 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NOT); Mon, 15 Jun 2020 17:29:03 +0200 To: GCC Patches From: Matthias Klose Subject: [patch] fix PR lto/95604, -flto and -fcf-protection Autocrypt: addr=doko@ubuntu.com; prefer-encrypt=mutual; keydata= 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 Message-ID: Date: Mon, 15 Jun 2020 17:29:03 +0200 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.7.0 MIME-Version: 1.0 Content-Language: en-US X-Spam-Status: No, score=-4.5 required=5.0 tests=BAYES_00, KAM_DMARC_STATUS, KAM_LAZY_DOMAIN_SECURITY, RCVD_IN_DNSWL_LOW, SPF_HELO_NONE, SPF_NONE, TXREP autolearn=no autolearn_force=no version=3.4.2 X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on server2.sourceware.org X-BeenThere: gcc-patches@gcc.gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Gcc-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Richard Guenther Errors-To: gcc-patches-bounces@gcc.gnu.org Sender: "Gcc-patches" PR lto/95604 was seen when checking for binaries without having CET support in a distro archive, for binaries built with LTO optimization. The hardening flag -fcf-protection=full is passed in CFLAGS, and maybe should be passed in LDFLAGS as well. However to make it work when not passed to the link step, it should be extracted from the options found in the lto opts section. Richard suggested two solutions offline. I checked that both fix the test case. Which one to install? Also ok for the 9 and 10 branches? Thanks, Matthias * common.opt (fcf-protection, fcf-protection=): Mark as optimization. --- a/src/gcc/common.opt +++ b/src/gcc/common.opt @@ -1739,10 +1739,10 @@ Inline __atomic operations when a lock free instruction sequence is available. fcf-protection -Common RejectNegative Alias(fcf-protection=,full) +Common Optimization RejectNegative Alias(fcf-protection=,full) fcf-protection= -Common Report Joined RejectNegative Enum(cf_protection_level) Var(flag_cf_protection) Init(CF_NONE) +Common Optimization Report Joined RejectNegative Enum(cf_protection_level) Var(flag_cf_protection) Init(CF_NONE) -fcf-protection=[full|branch|return|none] Instrument functions with checks to verify jump/call/return control-flow transfer instructions have valid targets.