From nobody Mon Sep 16 19:38:33 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of groups.io designates 66.175.222.108 as permitted sender) client-ip=66.175.222.108; envelope-from=bounce+27952+101925+1787277+3901457@groups.io; helo=mail02.groups.io; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of groups.io designates 66.175.222.108 as permitted sender) smtp.mailfrom=bounce+27952+101925+1787277+3901457@groups.io; dmarc=fail(p=none dis=none) header.from=kernel.org ARC-Seal: i=1; a=rsa-sha256; t=1679914897; cv=none; d=zohomail.com; s=zohoarc; b=Pheqjp39XBqFMQurytgho0CI4suExTHCHjKO5M0nUj9OBk0MiCN8SyPO6KxOOIKZseL3dxjLUxcLOoC3W4Ben0HA3PcW/qN3gJVPq5X3/k7mm7phXN6AyxRpAxu0zJ46sw2hObhj8B221kWMGsKQBzGPsRw6v6LJkjOHWpKAMLU= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1679914897; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Id:List-Help:List-Unsubscribe:MIME-Version:Message-ID:Reply-To:References:Sender:Subject:To; bh=QJqD/LzCGuO5UMb5oHBz8T9wTvUp3Db22pLGh8DAcnY=; b=n3o2JXR4IQ9mqTcqGsoFI2gY2YMF1G/DNYQ5zz3sC5MZ60w1W983cmH2tKhda/tFKPHFTeMQ/jpddZaOqxJGI4OOXNvSEvwExMZIYkzZgfgYaQZyAR7vtE0GmFSVz6UIkezwK36Yz4t93718JUtsuV8Y6WtkoQepCxHZ79+rSyo= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of groups.io designates 66.175.222.108 as permitted sender) smtp.mailfrom=bounce+27952+101925+1787277+3901457@groups.io; dmarc=fail header.from= (p=none dis=none) Received: from mail02.groups.io (mail02.groups.io [66.175.222.108]) by mx.zohomail.com with SMTPS id 1679914897211884.1323336476394; Mon, 27 Mar 2023 04:01:37 -0700 (PDT) Return-Path: X-Received: by 127.0.0.2 with SMTP id DFF2YY1788612xoltKk6Oqva; Mon, 27 Mar 2023 04:01:36 -0700 X-Received: from dfw.source.kernel.org (dfw.source.kernel.org [139.178.84.217]) by mx.groups.io with SMTP id smtpd.web10.31886.1679914896025099230 for ; Mon, 27 Mar 2023 04:01:36 -0700 X-Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by dfw.source.kernel.org (Postfix) with ESMTPS id 8E25861043; Mon, 27 Mar 2023 11:01:35 +0000 (UTC) X-Received: by smtp.kernel.org (Postfix) with ESMTPSA id 73019C433D2; Mon, 27 Mar 2023 11:01:32 +0000 (UTC) From: "Ard Biesheuvel" To: devel@edk2.groups.io Cc: Ard Biesheuvel , Michael Kinney , Liming Gao , Jiewen Yao , Michael Kubacki , Sean Brogan , Rebecca Cran , Leif Lindholm , Sami Mujawar , Taylor Beebe , =?UTF-8?q?Marvin=20H=C3=A4user?= , Bob Feng Subject: [edk2-devel] [PATCH v2 01/17] MdePkg/ProcessorBind AARCH64: Add asm macro to emit GNU BTI note Date: Mon, 27 Mar 2023 13:00:56 +0200 Message-Id: <20230327110112.262503-2-ardb@kernel.org> In-Reply-To: <20230327110112.262503-1-ardb@kernel.org> References: <20230327110112.262503-1-ardb@kernel.org> MIME-Version: 1.0 Precedence: Bulk List-Unsubscribe: List-Subscribe: List-Help: Sender: devel@edk2.groups.io List-Id: Mailing-List: list devel@edk2.groups.io; contact devel+owner@edk2.groups.io Reply-To: devel@edk2.groups.io,ardb@kernel.org X-Gm-Message-State: TpbPxUlWUupo9thU6WQuJBXhx1787277AA= Content-Transfer-Encoding: quoted-printable DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=groups.io; q=dns/txt; s=20140610; t=1679914896; bh=mi1+2vcKNJL4z9FIfkKkTx85NaXVtnP9cOUb6Grjxdg=; h=Cc:Date:From:Reply-To:Subject:To; b=N5WodeSQDePNIy1e9xKIrlc5kCUgjy5euMJjJx2rp6krspriOdL6Ii0LW54tWH5vGCz diWiSPxp9m0wWWit8noYaqPGta4c7bQO36/o4yH4mxvjfNpwJjcwlFKIdu15UMfzy7v84 rAnmoi+yC6AFqJfPXnxPYs8Fjwq7Nv8/MUQ= X-ZohoMail-DKIM: pass (identity @groups.io) X-ZM-MESSAGEID: 1679914899115100002 Content-Type: text/plain; charset="utf-8" Implement a CPP macro that can be called from .S files to emit the .note section carrying the annotation that informs the linker that the object file is compatible with BTI control flow integrity checks. Signed-off-by: Ard Biesheuvel --- MdePkg/Include/AArch64/ProcessorBind.h | 31 ++++++++++++++++++++ 1 file changed, 31 insertions(+) diff --git a/MdePkg/Include/AArch64/ProcessorBind.h b/MdePkg/Include/AArch6= 4/ProcessorBind.h index abe2571245c665f3..11814f1ffaef698a 100644 --- a/MdePkg/Include/AArch64/ProcessorBind.h +++ b/MdePkg/Include/AArch64/ProcessorBind.h @@ -186,6 +186,37 @@ typedef INT64 INTN; #define GCC_ASM_IMPORT(func__) \ .extern _CONCATENATE (__USER_LABEL_PREFIX__, func__) =20 +#if defined(__ARM_FEATURE_BTI_DEFAULT) && __ARM_FEATURE_BTI_DEFAULT =3D=3D= 1 +#define AARCH64_BTI(__type) \ + .ifnc __type, ;\ + bti __type ;\ + .endif ;\ + .ifndef .Lgnu_bti_notesize ;\ + .pushsection .note.gnu.property, "a" ;\ + .set NT_GNU_PROPERTY_TYPE_0, 0x5 ;\ + .set GNU_PROPERTY_AARCH64_FEATURE_1_AND, 0xc0000000 ;\ + .set GNU_PROPERTY_AARCH64_FEATURE_1_BTI, 0x1 ;\ + .align 3 ;\ + .long .Lnamesize ;\ + .long .Lgnu_bti_notesize ;\ + .long NT_GNU_PROPERTY_TYPE_0 ;\ +0: .asciz "GNU" ;\ + .set .Lnamesize, . - 0b ;\ + .align 3 ;\ +1: .long GNU_PROPERTY_AARCH64_FEATURE_1_AND ;\ + .long .Lvalsize ;\ +2: .long GNU_PROPERTY_AARCH64_FEATURE_1_BTI ;\ + .set .Lvalsize, . - 2b ;\ + .align 3 ;\ + .set .Lgnu_bti_notesize, . - 1b ;\ + .popsection ;\ + .endif +#endif + +#endif + +#ifndef AARCH64_BTI +#define AARCH64_BTI(__type) #endif =20 /** --=20 2.39.2 -=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#101925): https://edk2.groups.io/g/devel/message/101925 Mute This Topic: https://groups.io/mt/97879282/1787277 Group Owner: devel+owner@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [importer@patchew.org] -=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-