From patchwork Sun Jun 22 01:18:06 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Thiago Jung Bauermann X-Patchwork-Id: 899063 Delivered-To: patch@linaro.org Received: by 2002:adf:e506:0:b0:3a6:d909:26ce with SMTP id j6csp370196wrm; Sat, 21 Jun 2025 21:05:45 -0700 (PDT) X-Forwarded-Encrypted: i=3; AJvYcCWNUSwb2IqkdCEGfNBp0xZ0+ymCyDEYFrIS47ONC1YutbgQpm5pVbrzsY7fpj0ucXLfng23dg==@linaro.org X-Google-Smtp-Source: AGHT+IH1qwha/YOfrJS6Hs3NWkMkqHYa9v+zCgpizmE8UNaiswz9VSquJ3OS8KXYjqHxIMcwoe+b X-Received: by 2002:a05:6214:cc1:b0:6fb:f00:48a9 with SMTP id 6a1803df08f44-6fd0a4df6c6mr154932106d6.19.1750565145738; Sat, 21 Jun 2025 21:05:45 -0700 (PDT) ARC-Seal: i=2; a=rsa-sha256; t=1750565145; cv=pass; d=google.com; s=arc-20240605; b=MRFYLeezg0AYCjPp4ix4jCTO7/PDnXBSv5CPgh7c5/0zVS7D7LfYbeQ62vDVbyrLjc HcF9fgeakzefdb8fdOzqh3TBXwxrUrxFAeyuJ7BK3Wj8vTfUEN60eW00tXdQp7xMdyKo F1U7P6VYkag2d81EesVVecwdCW33E+OLTJHZDDrSYCsjOIRX55uF2EIQLHQspGbjnD/Y s5uU/96FfDHyxYAGmWKEq9B8PPzSlAP1YbzM4okEuVYRsrQkI/2zqpuLMttltylolfkK f5z1C7sbz5gVnhsZbBYthPCVXtlkv80/wZ/J7+/IR7FwUlLPdoo/o6gNWbqO9HAan8be 9RGw== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=errors-to:list-subscribe:list-help:list-post:list-archive :list-unsubscribe:list-id:precedence:content-transfer-encoding :mime-version:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature:dkim-filter:arc-filter:dmarc-filter :delivered-to:dkim-filter; bh=vOPhD0D/bMLgPjWIKIuVayCsZl9PqcdurBKbh8k74Vw=; fh=v0Swrqm/HGzmFfs2Lyn4KGEK39u4NVWMm4qGXeDZh/s=; b=QokGbHrHFtFOUrnhqZpQc6RE8sE1V2U/wJW7LVXzodk5vaqtYqIsciNITapy29dV/q uJ16qZlqh+uTGNwAbky1ire9nmwlzKy0GPsTkWPOBo11pWlG/e1jIqnzMpHq8XDezJlP Sh/ZKEFrjyY5k0yR7/qEXdh3ugOAspDajCWWSh+VHp0GyvS5Ljbxd0jWPMz27AsN/cI2 lj56+4SdrX3wcuMe9vWhKksl504rdtaCK2IEjRSr44glTLyBA9H41SczNLnFosKCayUN t7eWRb9T1xN9D5LAWmxbXc2uRR+haXlmpNun7b8sQzK68v+v4L3H2tStlaYZjtoO/Gyw ZwGA==; dara=google.com ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=dz8Jg0XP; arc=pass (i=1); spf=pass (google.com: domain of gdb-patches-bounces~patch=linaro.org@sourceware.org designates 8.43.85.97 as permitted sender) smtp.mailfrom="gdb-patches-bounces~patch=linaro.org@sourceware.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Return-Path: Received: from server2.sourceware.org (server2.sourceware.org. [8.43.85.97]) by mx.google.com with ESMTPS id 6a1803df08f44-6fd09530fcfsi59212206d6.231.2025.06.21.21.05.45 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 21 Jun 2025 21:05:45 -0700 (PDT) Received-SPF: pass (google.com: domain of gdb-patches-bounces~patch=linaro.org@sourceware.org designates 8.43.85.97 as permitted sender) client-ip=8.43.85.97; Authentication-Results: mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=dz8Jg0XP; arc=pass (i=1); spf=pass (google.com: domain of gdb-patches-bounces~patch=linaro.org@sourceware.org designates 8.43.85.97 as permitted sender) smtp.mailfrom="gdb-patches-bounces~patch=linaro.org@sourceware.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 6109038D3D61 for ; Sun, 22 Jun 2025 02:59:37 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 6109038D3D61 Authentication-Results: sourceware.org; dkim=pass (2048-bit key, unprotected) header.d=linaro.org header.i=@linaro.org header.a=rsa-sha256 header.s=google header.b=dz8Jg0XP X-Original-To: gdb-patches@sourceware.org Delivered-To: gdb-patches@sourceware.org Received: from mail-pf1-x432.google.com (mail-pf1-x432.google.com [IPv6:2607:f8b0:4864:20::432]) by sourceware.org (Postfix) with ESMTPS id CBBE5381ACC9 for ; Sun, 22 Jun 2025 01:18:26 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org CBBE5381ACC9 Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=linaro.org Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=linaro.org ARC-Filter: OpenARC Filter v1.0.0 sourceware.org CBBE5381ACC9 Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=2607:f8b0:4864:20::432 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1750555107; cv=none; b=QEcfcYIAJVfNd/xTD/N3FQPivrwjse6jRCkZqCSepaEdnk6AuBoLh0W+t0BwAbpfTGU+aSuyZv9TcCHPbEjQjiG00RIJ46cbYyYuXGMCotCJ3ZMAIdFcHMj/V9P3HYqkUU/n0QLwTE5Akksiox2L+3SrfrbYH2Jjms0caegPv/4= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1750555107; c=relaxed/simple; bh=7Slopi9RHSZgBAuipO+2uNyuokpnU7jNrcmapSQtUz4=; h=DKIM-Signature:From:To:Subject:Date:Message-ID:MIME-Version; b=i/HRD8gjBJsgddJVieQrzmmA8Gb2y6HZn41Wp/ZSq16thI5U72fv87vCfG/BAu4IHhf3gpLb2Itf5V7Nxy4l2uyTQw1rBqFQmpCjibisluJMZjSXc7SwaYzoY9IZ+tpve5h44vBnqlNzc5D3rDJM+5y3Gh88jxgFUqr/zHtvqcI= ARC-Authentication-Results: i=1; server2.sourceware.org DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org CBBE5381ACC9 Received: by mail-pf1-x432.google.com with SMTP id d2e1a72fcca58-749068b9b63so1407744b3a.0 for ; Sat, 21 Jun 2025 18:18:26 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1750555106; x=1751159906; darn=sourceware.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=vOPhD0D/bMLgPjWIKIuVayCsZl9PqcdurBKbh8k74Vw=; b=dz8Jg0XPh38zNyZ+xw1TKtjEtlN82b5gLpt0Kow34UEqM4yqO3XD/KNqBYih8Rwa6a YgX9l7kdAS1hHYq6fdTYZIRSDXBb2avRtalK4wGxzQ+SDIuV3O84F4hAVaz+4X08l6eJ lhtRKEJCQbtbhu9+a9VVE5NhWQE1QtGCVpRfshEMmUtI1+J0jkldAvQ+8JcW+7HWP0Cf dmLgEEWCoXxCy3mGoJtGGg7PsSBTi84BI5s/jaovvUTd7X+igVO2WvE0+JejtLUA/l3d RypA/BIfbWleSqedUzSVS3r1mMtFl8D9RNJcmb9CVqnN3iDX+BoB4fMliXIjEdJCwRVc PjDw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1750555106; x=1751159906; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=vOPhD0D/bMLgPjWIKIuVayCsZl9PqcdurBKbh8k74Vw=; b=ecn4FNXzuxnK7qSmRZhydsdgesWMRrBEraYY5iltZRSkoScpnvSKV5+rs4DKJdWY95 cLQUORSURaudxPoQWQKTNJttfLDFSY/tHj3jhjljPITNvQCgYcAtBio34gd9TFFHfkLL J8lJePSo+qPXrsprFGkHS06u9DAwK+JzC0L7fC/l+wjKU1xoCraeYesYWgcJsj+o2FYB Fl9QUl3Af13xx2sZSVcM94LxH/PRjzXfENBoW/VVfkUcR2ytKI678z+xct6vMaNKZuf+ LYemg4BdxWEeE8ll/dpNTeIRksAVd/lZParVj4gyZIncQSFD3NTJf1X6+QS4J9E9CDvI 3UXg== X-Gm-Message-State: AOJu0YxYGn6oK7ebxMS3jm4Wa1shl1xDx7NFNky1DwM3PAdnbNsC7y9n rGcHLB/lOSrZVoTHcKp+tCFiFOxwiJeDMs4WWqvdPPp2fPECKZDk+hYeC4JZLjKw38oujhX7rVz f1ByM X-Gm-Gg: ASbGncvm25fxfHoRoczmMsVAe333KktMIMsBFO2YZ8bQrGvL4URdHUJUIPg6qoqkU8F tZP5nojDcvz7SjfG+RsfK8AEm/0kNPcE0AUz1jdAOkmdW1vci9kaU/FMNp+tkv98/fw9bPaPTvO UOfnMDXYUPlUWIwD8RgPIjfGv6y529oKsCJyyHk+NZ+VdpF9q5TCRjSjqBOn44CQjiQN6VAFSxU WSa36UOLklBl0nA0GtLwihtzqqjs+u8W6L5ry8SiVXv0OA7Mq+9X9qKR9SKnzlJUQS8YopcS915 0dRhbk5B+j1hSIQQ1ls6kVGORo2rWY+VapKrWPwWQN9wGrTolRVLhGm1Jk7/ynkhUnYPH9bY X-Received: by 2002:a05:6a00:2d08:b0:742:3fe0:8289 with SMTP id d2e1a72fcca58-7490d6f23f2mr11575883b3a.20.1750555105825; Sat, 21 Jun 2025 18:18:25 -0700 (PDT) Received: from localhost ([2804:14d:7e39:88d6:79ae:7a30:10f3:dfed]) by smtp.gmail.com with ESMTPSA id d2e1a72fcca58-7490a49efbcsm5154079b3a.56.2025.06.21.18.18.24 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 21 Jun 2025 18:18:25 -0700 (PDT) From: Thiago Jung Bauermann To: gdb-patches@sourceware.org Cc: Eli Zaretskii , "Schimpe, Christina" , Luis Machado Subject: [PATCH v3 4/9] bfd/aarch64-linux: Support reading and writing the GCS core file note Date: Sat, 21 Jun 2025 22:18:06 -0300 Message-ID: <20250622011811.371949-5-thiago.bauermann@linaro.org> X-Mailer: git-send-email 2.49.0 In-Reply-To: <20250622011811.371949-1-thiago.bauermann@linaro.org> References: <20250622011811.371949-1-thiago.bauermann@linaro.org> MIME-Version: 1.0 X-BeenThere: gdb-patches@sourceware.org X-Mailman-Version: 2.1.30 Precedence: list List-Id: Gdb-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: gdb-patches-bounces~patch=linaro.org@sourceware.org Reviewed-By: Luis Machado --- No change from v1 and from what was posted to the Binutils mailing list. bfd/elf.c | 31 +++++++++++++++++++++++++++++++ include/elf/common.h | 3 +++ 2 files changed, 34 insertions(+) diff --git a/bfd/elf.c b/bfd/elf.c index 14ce15c72545..f943cc489ba3 100644 --- a/bfd/elf.c +++ b/bfd/elf.c @@ -10661,6 +10661,15 @@ elfcore_grok_aarch_zt (bfd *abfd, Elf_Internal_Note *note) return elfcore_make_note_pseudosection (abfd, ".reg-aarch-zt", note); } +/* Convert NOTE into a bfd_section called ".reg-aarch-gcs". Return TRUE if + successful, otherwise return FALSE. */ + +static bool +elfcore_grok_aarch_gcs (bfd *abfd, Elf_Internal_Note *note) +{ + return elfcore_make_note_pseudosection (abfd, ".reg-aarch-gcs", note); +} + static bool elfcore_grok_arc_v2 (bfd *abfd, Elf_Internal_Note *note) { @@ -11404,6 +11413,12 @@ elfcore_grok_note (bfd *abfd, Elf_Internal_Note *note) else return true; + case NT_ARM_GCS: + if (note->namesz == 6 && strcmp (note->namedata, "LINUX") == 0) + return elfcore_grok_aarch_gcs (abfd, note); + else + return true; + case NT_GDB_TDESC: if (note->namesz == 4 && strcmp (note->namedata, "GDB") == 0) @@ -13074,6 +13089,20 @@ elfcore_write_aarch_zt (bfd *abfd, size); } +/* Write the buffer of GCS register values in AARCH_GCS (length SIZE) into + the note buffer BUF and update *BUFSIZ. ABFD is the bfd the note is being + written into. Return a pointer to the new start of the note buffer, to + replace BUF which may no longer be valid. */ + +static char * +elfcore_write_aarch_gcs (bfd *abfd, char *buf, int *bufsiz, + const void *aarch_gcs, int size) +{ + const char *note_name = "LINUX"; + return elfcore_write_note (abfd, buf, bufsiz, note_name, NT_ARM_GCS, + aarch_gcs, size); +} + char * elfcore_write_arc_v2 (bfd *abfd, char *buf, @@ -13263,6 +13292,8 @@ elfcore_write_register_note (bfd *abfd, return elfcore_write_aarch_za (abfd, buf, bufsiz, data, size); if (strcmp (section, ".reg-aarch-zt") == 0) return elfcore_write_aarch_zt (abfd, buf, bufsiz, data, size); + if (strcmp (section, ".reg-aarch-gcs") == 0) + return elfcore_write_aarch_gcs (abfd, buf, bufsiz, data, size); if (strcmp (section, ".reg-arc-v2") == 0) return elfcore_write_arc_v2 (abfd, buf, bufsiz, data, size); if (strcmp (section, ".gdb-tdesc") == 0) diff --git a/include/elf/common.h b/include/elf/common.h index fd032d1e03ed..f4b543b353ac 100644 --- a/include/elf/common.h +++ b/include/elf/common.h @@ -740,6 +740,9 @@ /* Note: name must be "LINUX". */ #define NT_ARM_ZT 0x40d /* AArch64 SME2 ZT registers. */ /* Note: name must be "LINUX". */ +#define NT_ARM_GCS 0x410 /* AArch64 Guarded Control Stack + registers. */ + /* Note name must be "LINUX". */ #define NT_ARC_V2 0x600 /* ARC HS accumulator/extra registers. */ /* note name must be "LINUX". */ #define NT_LARCH_CPUCFG 0xa00 /* LoongArch CPU config registers */