From patchwork Wed Jun 18 05:54:40 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: 897538 Delivered-To: patch@linaro.org Received: by 2002:a5d:5f54:0:b0:3a4:ee3f:8f15 with SMTP id cm20csp135098wrb; Tue, 17 Jun 2025 22:56:57 -0700 (PDT) X-Forwarded-Encrypted: i=3; AJvYcCXYzWxLqaYO+FQuHmsGEdpX4cjMZ1a/kOoY0v4bU6uv8mkO164McLDx4bT+Tk/n1ha09YuSKA==@linaro.org X-Google-Smtp-Source: AGHT+IHyuMlinZNSe/CQ/HFrwivYhisIGnw/JtxyvYUObI+v2xg9D4mq5QkOy9MAzPi3uwfXehu7 X-Received: by 2002:a05:622a:1a29:b0:476:6cd3:d898 with SMTP id d75a77b69052e-4a73c4ca299mr261903141cf.18.1750226217478; Tue, 17 Jun 2025 22:56:57 -0700 (PDT) ARC-Seal: i=2; a=rsa-sha256; t=1750226217; cv=pass; d=google.com; s=arc-20240605; b=O5M3Uu+m6xdVwmvYzT4Vzx8aZx889paoCWCf+l5dXwBcCyf9jUtI5e2HRJ7qDqCyIh z9QmDaMh/v3tM4+YsciO6LIHXL7tJN6UxhJnCPQg7US3i1OPqCNmQ8Ff8dlNrXCxDMf/ I+E8pPdG1cBnlf/t+0WWIt6SOqOw4yHSjSNKQgP2Af2296O6Bmyhx86fbSFCWHayMdKi 1F25XN8tU03J7gtB2pfq841Ts6PlslEdL9R/6/HPqqrD0vZql3/KHNuLFgt+Rd0yn2VN cmH4bPU2w0JGU2pDUvSanSVBEmrG9OYaJACLLbB8Wjb1l4IOZVbHOJJ1HRV9gIZM/CXX +nSg== 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=dC/gdUBYsPBie02kiVh/wPxgse3D0P0UeG9BqAg/Ep0=; fh=v0Swrqm/HGzmFfs2Lyn4KGEK39u4NVWMm4qGXeDZh/s=; b=ORFKGfpO0spfJUAEWcbYyNlMS3zXEtTDQ2FVTMtXde2hubLH+EurTVWdUryaIBgWHZ J+R2hK3JhxwZAV/DsGmS9c9st1/qlsMJ48UULGVP5YCvpogjQwQhSQLlMEjf5dnzNIHQ 6cRx7oaNhuvL+RYujY78HfcBCUnLKrEarp+d7kNl8JOwDZ4KZ2gJl7D1PhxQq4cge1RH t4tChE4idJgB56/U/npDnokr7EEV1iF1BZSI64wm0RZSi+Vi24mJ9kMBB8VoBsS3gq7d SjlIjBAsl0d/WREOGXj6aVekMAbm6fANY0ZbtP7EwxrXJdLnjiks9QbRTp2SbFztX4KU 1jlQ==; dara=google.com ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=xfJ8Kh01; arc=pass (i=1); spf=pass (google.com: domain of gdb-patches-bounces~patch=linaro.org@sourceware.org designates 2620:52:3:1:0:246e:9693:128c 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. [2620:52:3:1:0:246e:9693:128c]) by mx.google.com with ESMTPS id d75a77b69052e-4a72a51fbc8si132524191cf.559.2025.06.17.22.56.57 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 17 Jun 2025 22:56:57 -0700 (PDT) Received-SPF: pass (google.com: domain of gdb-patches-bounces~patch=linaro.org@sourceware.org designates 2620:52:3:1:0:246e:9693:128c as permitted sender) client-ip=2620:52:3:1:0:246e:9693:128c; Authentication-Results: mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=xfJ8Kh01; arc=pass (i=1); spf=pass (google.com: domain of gdb-patches-bounces~patch=linaro.org@sourceware.org designates 2620:52:3:1:0:246e:9693:128c 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 08A44381694D for ; Wed, 18 Jun 2025 05:56:52 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 08A44381694D 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=xfJ8Kh01 X-Original-To: gdb-patches@sourceware.org Delivered-To: gdb-patches@sourceware.org Received: from mail-pl1-x631.google.com (mail-pl1-x631.google.com [IPv6:2607:f8b0:4864:20::631]) by sourceware.org (Postfix) with ESMTPS id 151E1386075B for ; Wed, 18 Jun 2025 05:55:01 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 151E1386075B 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 151E1386075B Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=2607:f8b0:4864:20::631 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1750226101; cv=none; b=AY4vglp6hL66N6SnOAdG2C2cBqNdkvRBdffMC/c2eqUQoW8kxWfkTsE5nBmL+TRodHwPndBUdirMHIzw7nAjGkvGMOMN+qXyyAdSaEkqbgPw3A+cPDue7CQ5Q4rg+uRj2VuttBvLnBsv5KIVkGMqJ5Y5IUqnjOoYdxdDrYj7xUE= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1750226101; c=relaxed/simple; bh=9u6JkoogCVuHj2c7DHklfjGDmftetJxm8e6Lf/2YuMM=; h=DKIM-Signature:From:To:Subject:Date:Message-ID:MIME-Version; b=Ud82C4vRqogScyp6oC10OibkMb+QiMTnMwdvF2yQmjhgEWXHUltIZMOc6I5PdJNwTaroNBMZ8p6T9Ealbof5MbQAHzDENgOsGW7732TT141TyfZFA0XlD+lwoxuxeDjjrI/cs9bbulF8mNFO+pAirGfhbjkeIqyFxjVbY3hATcA= ARC-Authentication-Results: i=1; server2.sourceware.org DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 151E1386075B Received: by mail-pl1-x631.google.com with SMTP id d9443c01a7336-235e1d4cba0so59190875ad.2 for ; Tue, 17 Jun 2025 22:55:01 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1750226100; x=1750830900; 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=dC/gdUBYsPBie02kiVh/wPxgse3D0P0UeG9BqAg/Ep0=; b=xfJ8Kh01BXV6+P40lx16EfTOuh/Bpz3mjB6YHT6IaCXg7LrUd5btT4ocAAupRNxxG4 glXiIyU4/uxHi7tS5DbaepMXezOpQKPU7yXf8xxgt2gwxIhCP2lApP4oPCFzzbwPXCbh FzuyK2OfbUa6RrveTeyJITJ4OXZEWSvEWztTMymRkLs+xap7A7pQ35v4z+bR5aQ0I2h5 tU8gkTNlIL/JKgAvYzff7kKrg22C3VRhMJLsxG7wjfJ5jVPQc8kpqn0AvTI4XNh2WbZO dcWQL9COzswEWeshpMtGd8DXtbybN8rWmRtfaI20djXQwvdnnCbWZodv3Qq3b/dIWKD3 wkvA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1750226100; x=1750830900; 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=dC/gdUBYsPBie02kiVh/wPxgse3D0P0UeG9BqAg/Ep0=; b=vEqKzW0Z2qeCKEv6eEyXfPsoL03UnNUPXrRwge9t7+Ojm+MP+cwJVmpjtZkVbzbPk0 QfLHy16sOztLsGXEsUiIfofU5bUOfwEga1IPxc+wGzYHg/6alzMWFxb51c0CGw9qXGoO DCjTJiafaj7WD1sRQjz1Li/LFH4F423TUDgvhoWqFdfZnBXQhSUN5/iIbnWEEHcNusCb Va09BnH5n7sl63PslL7a8ycFlQnunx9U3wKqcJBasEhgHp5r1y9UuOyaN4XUc0RXl8IN npEeYjLVAwbRh61nfb12ZBJqPsk+y+PZlCnFXbwj+mw11wAWzpwgLJ+4TjHXiPOsfPlu vxkw== X-Gm-Message-State: AOJu0Ywhm5btAWShgkiLV8gnCNdMXIdRwrw2GqVsBp2WXFHP3KtVMcWz 6zcdfBkGAI3bYLRXFE0oGpqe1B14MEZ08/gUayNJjpKqLB8dRVHwLkt6M3gtxyb3R4XJ6aC53vt p96Wl X-Gm-Gg: ASbGnctKeZkjJns/UTLLmzJd8VwNo7FVmeKV4dt67EgAB5h1S9VOU8xjlEZA5X8EV/F 22/h+L2iAxK56dM+Evzwr36QripOKRrQi/QOdLik5x2D8BDl9B4Ysf8nIwdQ3bn/J6NMxv7NDXK YZu99hTk8JaT05FhD8CEAqOYUVASMLvMZWDW8wPubHJcFabkrJXrWhdqe4cB0aS4sPwTixJ9IZY M7Z0DNyvvuith1H3uBSB1AB96zZwOTGoU20y4Rt68r0VCBpSaVUoyROhi1tulxbmsF2ElZKLBrO GX+/1UCzdSql+nGykPSiPw8mpClh/8eD8VPd7WOjtl7W8NWFs1ewrP3JmL19senti+4nuAPx8aa wCeA= X-Received: by 2002:a17:903:94c:b0:235:f70:fd37 with SMTP id d9443c01a7336-2366b006110mr243667455ad.19.1750226099999; Tue, 17 Jun 2025 22:54:59 -0700 (PDT) Received: from localhost ([2804:14d:7e39:88d6:ae12:97ab:a9:43c]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2365dea903dsm90691925ad.158.2025.06.17.22.54.59 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 17 Jun 2025 22:54:59 -0700 (PDT) From: Thiago Jung Bauermann To: gdb-patches@sourceware.org Cc: Eli Zaretskii , "Schimpe, Christina" , Luis Machado Subject: [PATCH v2 4/9] bfd/aarch64-linux: Support reading and writing the GCS core file note Date: Wed, 18 Jun 2025 02:54:40 -0300 Message-ID: <20250618055445.709416-5-thiago.bauermann@linaro.org> X-Mailer: git-send-email 2.49.0 In-Reply-To: <20250618055445.709416-1-thiago.bauermann@linaro.org> References: <20250618055445.709416-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 --- bfd/elf.c | 31 +++++++++++++++++++++++++++++++ include/elf/common.h | 3 +++ 2 files changed, 34 insertions(+) No change from v1 and from what was posted to the Binutils mailing list. 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 */