Received: by 2002:a05:6a10:2785:0:0:0:0 with SMTP id ia5csp1594032pxb; Sun, 10 Jan 2021 03:59:13 -0800 (PST) X-Google-Smtp-Source: ABdhPJyV1tYF6XAUfInyx1QYb3bSy2ve8Dgx+3xxTMgvbQFF5nk40CB8LdM85K6YtDvUzAtqiBab X-Received: by 2002:a17:907:961d:: with SMTP id gb29mr7945504ejc.460.1610279953100; Sun, 10 Jan 2021 03:59:13 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1610279953; cv=none; d=google.com; s=arc-20160816; b=Ww6jmqJI5uQglxrl8JsT7TzXCNTyoB05QciyfFoeip32epzO/8uvhfm+wmLlSEwFpJ 2odezF5ZlPNJNsSwdVUwL72j2t+GSkXhuO3ETci05SOzRZXHfd4budkaQPQOcD88Glf9 iv/FzOR8DXvIbrXOfBSTE6d/I+hpiyxRwra3yCG00sQ9f/aoseOn7ZBw3fdoxOeMi/P2 hwb11fBvghPSGsDrvizW1pDGnHGWn5qLYl8ZcvqOjarsWMKm5JAnDt4UqGmT5w/H9iiB +6sXTI/1CZgPbSnblNKD6x93ibfrotXexjVJ8adJisk8U6dltRx0qzYVfC3Bk/vwSL48 STOA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:subject:reply-to:cc:from:to :dkim-signature:date; bh=NTGpJ7pXsbGsFYQgxGiOz3p29EZ/v0kLX/q+gBWkQ8E=; b=1F+AKIZWKnuM4UfTboBkPD4D9+N1xkyRWUt4fACCar88oqi0Nl069OhjE8fStiSLnq /Eh4a0mKnpklvTxIkldSNDVAFbtt5O6fi4YWLnx6gxQsGd5t2X/KlMygoG6ve2goDm5K 9ONa8fbQkN5+oK6gb/k3NxeVzQwdBGOoZVMjryRRDMwy57880X0RVEin8moGsWiAKo5u gE0BS4aOepzCqvR2dujQ6KjHPMZDBJaETyLP5SmnMcQbKWrIpP9NYzJiqCnRc/L1s6jF 7V3WwlCP1E72jKv4EwzMtedV9j1VaONOEGuR8om4axcZN6CQ2b9pen4KQjFOL3GPVM1j /SAA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@pm.me header.s=protonmail header.b=EFriee+m; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=pm.me Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id zm13si5467223ejb.351.2021.01.10.03.58.49; Sun, 10 Jan 2021 03:59:13 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@pm.me header.s=protonmail header.b=EFriee+m; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=pm.me Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726708AbhAJL5Q (ORCPT + 99 others); Sun, 10 Jan 2021 06:57:16 -0500 Received: from mail1.protonmail.ch ([185.70.40.18]:20833 "EHLO mail1.protonmail.ch" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726608AbhAJL5P (ORCPT ); Sun, 10 Jan 2021 06:57:15 -0500 Date: Sun, 10 Jan 2021 11:56:28 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=pm.me; s=protonmail; t=1610279792; bh=NTGpJ7pXsbGsFYQgxGiOz3p29EZ/v0kLX/q+gBWkQ8E=; h=Date:To:From:Cc:Reply-To:Subject:In-Reply-To:References:From; b=EFriee+mgjrIzBkdETTflo54Fup3O5BQZmijK0J+zZwNqSgiY5ZXSo+6rYMH72p03 w+5YUXEwRODn36pdgvMgCHzqm7efrpXt+knwnJ0/AotK9IgY9q3QYdUbl0brZHUfTP RhWO9aqlZrvDHNQ6Z+jWK7AaiIdtNz/pFwGFPFJkMVQoF5yDeelqwqoRmrv9jbcYl2 SOxCxHurTbFCqkb8Kmrnvi45xBNsXDOUCVnsgr/oi1kOUWG/GsZlkEDNinbmH5O/s/ PUtwYpYw+yPXpwbyDFX/l84nVe4sZ/T49UuAFlGP/UVEh5wIt2T4fmKhtIYgkW5wsG CQjqidf5niw6Q== To: Thomas Bogendoerfer From: Alexander Lobakin Cc: Arnd Bergmann , Nathan Chancellor , Nick Desaulniers , Huacai Chen , Pei Huang , Kees Cook , Alexander Lobakin , Fangrui Song , Jiaxun Yang , Ralf Baechle , Corey Minyard , linux-mips@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arch@vger.kernel.org, stable@vger.kernel.org, clang-built-linux@googlegroups.com Reply-To: Alexander Lobakin Subject: [PATCH v5 mips-next 4/9] MIPS: properly stop .eh_frame generation Message-ID: <20210110115546.30970-4-alobakin@pm.me> In-Reply-To: <20210110115546.30970-1-alobakin@pm.me> References: <20210110115245.30762-1-alobakin@pm.me> <20210110115546.30970-1-alobakin@pm.me> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Spam-Status: No, score=-1.2 required=10.0 tests=ALL_TRUSTED,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF shortcircuit=no autolearn=disabled version=3.4.4 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on mailout.protonmail.ch Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Commit 866b6a89c6d1 ("MIPS: Add DWARF unwinding to assembly") added -fno-asynchronous-unwind-tables to KBUILD_CFLAGS to prevent compiler from emitting .eh_frame symbols. However, as MIPS heavily uses CFI, that's not enough. Use the approach taken for x86 (as it also uses CFI) and explicitly put CFI symbols into the .debug_frame section (except for VDSO). This allows us to drop .eh_frame from DISCARDS as it's no longer being generated. Fixes: 866b6a89c6d1 ("MIPS: Add DWARF unwinding to assembly") Suggested-by: Kees Cook Signed-off-by: Alexander Lobakin Reviewed-by: Kees Cook Reviewed-by: Nathan Chancellor --- arch/mips/include/asm/asm.h | 18 ++++++++++++++++++ arch/mips/kernel/vmlinux.lds.S | 1 - 2 files changed, 18 insertions(+), 1 deletion(-) diff --git a/arch/mips/include/asm/asm.h b/arch/mips/include/asm/asm.h index 3682d1a0bb80..ea4b62ece336 100644 --- a/arch/mips/include/asm/asm.h +++ b/arch/mips/include/asm/asm.h @@ -20,10 +20,27 @@ #include #include =20 +#ifndef __VDSO__ +/* + * Emit CFI data in .debug_frame sections, not .eh_frame sections. + * We don't do DWARF unwinding at runtime, so only the offline DWARF + * information is useful to anyone. Note we should change this if we + * ever decide to enable DWARF unwinding at runtime. + */ +#define CFI_SECTIONS=09.cfi_sections .debug_frame +#else + /* + * For the vDSO, emit both runtime unwind information and debug + * symbols for the .dbg file. + */ +#define CFI_SECTIONS +#endif + /* * LEAF - declare leaf routine */ #define LEAF(symbol)=09=09=09=09=09\ +=09=09CFI_SECTIONS;=09=09=09=09\ =09=09.globl=09symbol;=09=09=09=09\ =09=09.align=092;=09=09=09=09\ =09=09.type=09symbol, @function;=09=09\ @@ -36,6 +53,7 @@ symbol:=09=09.frame=09sp, 0, ra;=09=09=09\ * NESTED - declare nested routine entry point */ #define NESTED(symbol, framesize, rpc)=09=09=09\ +=09=09CFI_SECTIONS;=09=09=09=09\ =09=09.globl=09symbol;=09=09=09=09\ =09=09.align=092;=09=09=09=09\ =09=09.type=09symbol, @function;=09=09\ diff --git a/arch/mips/kernel/vmlinux.lds.S b/arch/mips/kernel/vmlinux.lds.= S index 09669a8fddec..10d8f0dcb76b 100644 --- a/arch/mips/kernel/vmlinux.lds.S +++ b/arch/mips/kernel/vmlinux.lds.S @@ -224,6 +224,5 @@ SECTIONS =09=09*(.options) =09=09*(.pdr) =09=09*(.reginfo) -=09=09*(.eh_frame) =09} } --=20 2.30.0