From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from simark.ca by simark.ca with LMTP id unrEAgjn6GkC5TMAWB0awg (envelope-from ) for ; Wed, 22 Apr 2026 11:19:36 -0400 Authentication-Results: simark.ca; dkim=pass (1024-bit key; unprotected) header.d=oarcorp.com header.i=@oarcorp.com header.a=rsa-sha256 header.s=selector2 header.b=OtdWDxWy; dkim-atps=neutral Received: by simark.ca (Postfix, from userid 112) id EF0491E0C3; Wed, 22 Apr 2026 11:19:35 -0400 (EDT) X-Spam-Checker-Version: SpamAssassin 4.0.1 (2024-03-25) on simark.ca X-Spam-Level: X-Spam-Status: No, score=-2.4 required=5.0 tests=ARC_SIGNED,ARC_VALID,BAYES_00, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,MAILING_LIST_MULTI, RCVD_IN_DNSWL_MED,RCVD_IN_VALIDITY_CERTIFIED_BLOCKED, RCVD_IN_VALIDITY_RPBL_BLOCKED,RCVD_IN_VALIDITY_SAFE_BLOCKED autolearn=ham autolearn_force=no version=4.0.1 Received: from vm01.sourceware.org (vm01.sourceware.org [38.145.34.32]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange x25519 server-signature ECDSA (prime256v1) server-digest SHA256) (No client certificate requested) by simark.ca (Postfix) with ESMTPS id 256BC1E067 for ; Wed, 22 Apr 2026 11:19:32 -0400 (EDT) Received: from vm01.sourceware.org (localhost [127.0.0.1]) by sourceware.org (Postfix) with ESMTP id E15F04BB592F for ; Wed, 22 Apr 2026 15:19:29 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org E15F04BB592F Authentication-Results: sourceware.org; dkim=pass (1024-bit key, unprotected) header.d=oarcorp.com header.i=@oarcorp.com header.a=rsa-sha256 header.s=selector2 header.b=OtdWDxWy Received: from PH0PR06CU001.outbound.protection.outlook.com (mail-westus3azlp170110003.outbound.protection.outlook.com [IPv6:2a01:111:f403:c107::3]) by sourceware.org (Postfix) with ESMTPS id 6B4894BB3BE1 for ; Wed, 22 Apr 2026 15:19:01 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 6B4894BB3BE1 Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=oarcorp.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=oarcorp.com ARC-Filter: OpenARC Filter v1.0.0 sourceware.org 6B4894BB3BE1 Authentication-Results: server2.sourceware.org; arc=pass smtp.remote-ip=2a01:111:f403:c107::3 ARC-Seal: i=2; a=rsa-sha256; d=sourceware.org; s=key; t=1776871141; cv=pass; b=xn17SdApz0YP2IbfNlL0JWhUsevULRF4stHq55GSGjlZ19DVPOLk45hdOqR9FsJUqMxijlA6N2rfhc/mjcqFIKrRdci7bgeDorv7sRqW3HEh5kCW0ao3VS2hNPVs/709n/Zcnca4p7GnTR0aw+kHGrpgdYfc4C65J0pqDPpqq/Q= ARC-Message-Signature: i=2; a=rsa-sha256; d=sourceware.org; s=key; t=1776871141; c=relaxed/simple; bh=P2E+Hlvnygd83LMhVLDI2zqMZaB2+KpxYapRhKaAYLU=; h=DKIM-Signature:From:To:Subject:Date:Message-ID:MIME-Version; b=cE8/YTMxvqCXEAmwzvJ9b3rUiwtNwkdR8W6XSYiNLFe/ICrLSRolyjU3HXYpd3RAqGthePrfzB25sG5vO/xRfu5AkTfv2UBI+n55oBVj9aBtOroH6JqK1hmK272f59vSc0kpJiF9Fcj9FI5I4F+GiG5CZbnzM3Bf9JyhoPZi8nk= ARC-Authentication-Results: i=2; server2.sourceware.org DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 6B4894BB3BE1 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=NtSJ+8LGFF5hrVSAH27JrOVTQ68lQjBEf2ykexTJmxjPszMO6NTk5vtBEixC6yGQ6DQefC2vjYGUtk4nbOEWIL/MGiMzj8sAgOxqWnhTEToYZaWDEpZ3R/OS1b48Y/WvMFcJK5po9nf9ciV3cadWFE+d05+e3ghkUcTM4bxyLKIB0r4U2fUQPa3P3f5Ib6Q2OQPPsJe0/WRbBBbzG1QnwX1E0vqXTvTHf4TkZ8thvcRTYZh0ZAfsgYooP4FEkuDNchJy6FKG0o2cRp3JDLwS6PolQKv1SGozBQqSV3q+Og8ULlrNGPrShm4D4II32RGR7SIJYO96dI7Y/3vh8aXVdA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=nx6CRK/t1LArm2MREu8Gi7gfz2nwm7jiB0Jtq3ksFpY=; b=sUrANZJfL8vLGrK41yQZovFpP9JXS77lEFiacmDlXM/Qw7AM2JgPSyVFPZ1+vbxir9n/gL8SQj5zo6kEqtXrG//JFNfXHrMTIw+RPDM/UOpUrJ+MWm+Kd6U6SdsPP1wcMXcjh1rtCELsu5YlA2qfYNg2loB6sJTE+71EUa0UyYQQu0/gUATNqET20hdEwOp0GjS8k9UBMb2i3VZSPV+fp67cWvjFh3qxMiEhNpGzcowQ2NFyFftusnvVKLkO+B0fG7gbpshUsB1OjEXzBy8ImCcKprCVYP51SpVnbAw79HQhvWJPEhA+E1UNsuX7npmkKO8LarUlfpcEjrzyPPJfKg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=oarcorp.com; dmarc=pass action=none header.from=oarcorp.com; dkim=pass header.d=oarcorp.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oarcorp.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=nx6CRK/t1LArm2MREu8Gi7gfz2nwm7jiB0Jtq3ksFpY=; b=OtdWDxWynheWUuRKbMFbHE36+aLo2bQStTAeLZSR3Q04vCxez/xixOTPTu9ors6M+qimL1iR1iOAnPGnGbwcWD7yh6C/x31t+oCYCB9v0Ei9I78wrMz0tGBEGluD1D452PRSPUAqvCn/VcTTisI5TH/pUpCNR1tX76EJ4QdjlDc= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=oarcorp.com; Received: from LV3PR19MB8278.namprd19.prod.outlook.com (2603:10b6:408:1a5::17) by DS0PR19MB8413.namprd19.prod.outlook.com (2603:10b6:8:1b8::5) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9818.33; Wed, 22 Apr 2026 15:18:50 +0000 Received: from LV3PR19MB8278.namprd19.prod.outlook.com ([fe80::a4f2:4267:7c79:4fb]) by LV3PR19MB8278.namprd19.prod.outlook.com ([fe80::a4f2:4267:7c79:4fb%4]) with mapi id 15.20.9846.016; Wed, 22 Apr 2026 15:18:49 +0000 From: Kinsey Moore To: gdb-patches@sourceware.org Cc: Kinsey Moore Subject: [PATCH] gdb: Add support for TLS under RTEMS Date: Wed, 22 Apr 2026 10:18:40 -0500 Message-ID: <20260422151840.661343-1-kinsey.moore@oarcorp.com> X-Mailer: git-send-email 2.47.3 Content-Transfer-Encoding: 8bit Content-Type: text/plain X-ClientProxiedBy: BN8PR04CA0041.namprd04.prod.outlook.com (2603:10b6:408:d4::15) To LV3PR19MB8278.namprd19.prod.outlook.com (2603:10b6:408:1a5::17) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: LV3PR19MB8278:EE_|DS0PR19MB8413:EE_ X-MS-Office365-Filtering-Correlation-Id: eb8acd86-9cd3-4008-ce21-08dea08274b0 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; ARA:13230040|376014|52116014|366016|1800799024|38350700014|56012099003|18002099003; X-Microsoft-Antispam-Message-Info: FS22BDODKbNpntqNtrvkF/bDIuJXsi9ZlIeVvC2Dgo/muK4fhkHP8fZCUIwoic1kF0dU7CJBvoFm1vmu2hzrtShjY9ES6x5fP9jpyzGJSrN6Xd5Wvi1eB8Koczu1B5tyibGq7SQ7ggkNr9btZ8uX7lpjLFQXljccISh8S2MuX5X7KEqBC7Pru7aX5AuQoRKPlcnPSOrBi4SU87qpu/PvUmloYvvk63HdTCF4p9xr6/KghE/qlWL/LhrzCfcxIG/SKryusMTCxG4FRmvdJ2V2eUO6FCpdQzLE96flJzM0eKKgM6sxAdR1zKQIQ+/Aea+gpf5M52A36Tc/U/V9WXe4xVNn6Xgg5/PD8XSUjJgkOhbjD/5FG7nryd9Ih7yulkIj9N+lo7sjLEWVcO+zLKF6bm1Vw8x/qMESxpiApJghqqYXURkSM+hg5h3wCiKcghz1hHiVRXWCO5J4tx7HsHdJmt6ur7DVJS9K2HwGcJuEMlj4HkaD0mux+L7GKM5w47SJK8kuHYbr7d+cpm3H5KEjGRBAPw/nx5XDtgjMnwpK7KBNARjSk8mMmiZpevKsBS4E53ZJTAJPT9+sISVCdj+5MhNUFj9xnqjZx38JXm4Z6lFk7yeC1/GnsihXVgm5ja5bvPG0RGYJZd+SGP5fc6wAI6Szr0m8S/IRJYJuSNv69L21hrF/LJyMNPX4APfMpJwPUo7lLOGG+woATgh45Cf1WkaDZ+FPvdJ7GZoame3GCSeP0hNDMoL9M3vxlxsmnzh5f0BA7idQMyTJyhSeNIcFhanYmCmQvFgLENYWCzLEB3A= X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:LV3PR19MB8278.namprd19.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230040)(376014)(52116014)(366016)(1800799024)(38350700014)(56012099003)(18002099003); DIR:OUT; SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?SqlTJTMEbnR5NHh2ajTki3mJuH+7xgZeZLe+RO+CrOlQfJ3fvvPZ6OKYrfIo?= =?us-ascii?Q?Ebdz1t9R8V5KU0LdrI44SN5+GvtEVtGdGqkNygicDp2TCsrQHPmdaewecLXx?= =?us-ascii?Q?vi8kqPSP3atnOpfADZWNrLeej8nhIVz/k1KS0pmUTbfVe0xO91sJb4wOwFkb?= =?us-ascii?Q?LYt4B8l2V2hcsMs5rnhtXf50TINa7R222VSDMtYvR2b59ZidTrs+VtyAeedF?= =?us-ascii?Q?eRDcfG9Kk7X5irTXQ3hiNSIsMAUQQOUAs3mZzGensgta5v7jS5VmOa7x90HS?= =?us-ascii?Q?H5uTuORAfCc8+Z5LAw45K6vM9lYvZ2nPjSpmWaW7JaPxdSBcTCCLKdcsBSuY?= =?us-ascii?Q?JIVb0RcOgjZXFGdWXTmkkGuF5YQ7Np/4doqv4r4snkirLalo/A0q0nBhtQhg?= =?us-ascii?Q?id50eMDHET1Z1GlrIVLI+synOtgaTv3gjxSYt26/gi4tYgYarRvCNM0CNEYi?= =?us-ascii?Q?dhoPM2oOdWM4eM84WiATWT2Mc5KOcyMMXRdIL9pQ1GkZI5zXnZFu3f43Bo+v?= =?us-ascii?Q?Mu/+xtJNjqlACxpN5tYq0FzbFC7xJnA5wE1O6kIpeDFV1euxCxWdJj8kLjZ1?= =?us-ascii?Q?+HVmRCLgGE1BPqrTo4EKVywSAakVB9OmIutjqU/HayAz0gzORfCLpWTwaain?= =?us-ascii?Q?xf+d6cZAEvBwlRCVk1ugCI6ykUrbGA44tKzKYid89b/SEUM1bEH6gXGVciO9?= =?us-ascii?Q?9A+Mv4GWbbww/gmwePozFWpp15OQaehN7WaqwyH79JUBL+z9iDrNnXWy7pac?= =?us-ascii?Q?hdIIztB+Ehau574S+SZh1SufuPRB5oFMMBbl5h3Tl+HVTf9/co8eS04C9Yuo?= =?us-ascii?Q?hmpbCQBd4YmpVUrFCE2HatG9R2TqMAY+PKCZq/QTNp77a9NXrB5IHv2DoQ9y?= =?us-ascii?Q?pmxctGxSsY2z+7VoN3i9c0mvooU9KHzj8N847ZxZQYS86GmONgFZQgnbFDdq?= =?us-ascii?Q?EXlZ2Zj9+DicXHNEkxIiAGHIU3DWqoFyCrRScE+gcb6JamOJ0gkNnok62MJx?= =?us-ascii?Q?JPZ2l29S7ezKKkRPHPnL++TOuqROKq9g11+XXB+ToVolysCmhnfnjALmUR88?= =?us-ascii?Q?21N4YZKZLjhAb00C6mvsxWizroZUxZzmdKiWsGyXbQTtucgqvp0zJDScPWcQ?= =?us-ascii?Q?cythHl4TkB6AKoYYgn8jJFVGYy8L+Qlxf/cTRWD4hOUo/XeF1v21LIBK0Q+G?= =?us-ascii?Q?ecsdD63IjEcoUbNO9+FUxHDxOf8Ydg7ase1XL+rgXHUs901rPujA4xC0q/PA?= =?us-ascii?Q?0xDKr0hWdvOIQemkGCLd4TfzELynPMtmqLQ1Kj1sCGIG/vJxD702AWoJ2kPg?= =?us-ascii?Q?Zzw4dvFNS+VPgvT5k40GxrCYJppLyxsOrH2aYUtYnVB6PxVXcesxd5TVzHUh?= =?us-ascii?Q?TZnnQVb0jwg05Y8xWDhnRNnvYNO2XqJtvj6ZTGSFEIpkmKDtcH2WrS06Vijy?= =?us-ascii?Q?xAnOouOYJnNFhy21xyaJ8f4QT+I2eEzKaOsdTMuI3AXSFFfLbLTwC7DwHyyZ?= =?us-ascii?Q?/u6eekXIwAmZC8EkuIcdRjm8uR6AHIyZ82NXjb0iXm1rLAlvnzte0tOK6kzf?= =?us-ascii?Q?LmSyTN1/YQF9ZBi8fEsxq6FRi/LQkahNpteR2GiO4bsTfjwDdLo7F7NqjwHY?= =?us-ascii?Q?s1FNTO9LJXsLlmIKZosrvjSokEctMxrOesLpIuKzwK9Wu23Sz1SD03aqEz8C?= =?us-ascii?Q?IsgfqwY5S6Ki52gv08jNPUg7cbALUIJdtYr5hYS3spX9aLwj9XE/IwAcZSe0?= =?us-ascii?Q?JtwW8C1V6w=3D=3D?= X-OriginatorOrg: oarcorp.com X-MS-Exchange-CrossTenant-Network-Message-Id: eb8acd86-9cd3-4008-ce21-08dea08274b0 X-MS-Exchange-CrossTenant-AuthSource: LV3PR19MB8278.namprd19.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 22 Apr 2026 15:18:49.8488 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 7bdf32a6-03de-4c70-a71b-8665ba1294e3 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: h+1T3+HYUcgQailHV7BCmvO6ZYMXczQDjPuIvBtVkMY4522TQDNQPtWUrnybmP7/x3XdK72102PbDIGdt6t0Vw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS0PR19MB8413 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~public-inbox=simark.ca@sourceware.org This support uses the presence of the ".rtemsroset" section to detect whether an ELF was created using RTEMS. This works for current RTEMS development (7) branch, 6 branch, 5 branch, and 4.11 branch. This registers the TLS callback for architectures under which RTEMS is known to support TLS. The RTEMS self-hosted GDB server is only expected to support TLS in RTEMS 6 branch and the current development branch and will only respond without error to qGetTLSAddr request in those versions. Other GDB servers will respond with TLS information if available. --- gdb/Makefile.in | 2 ++ gdb/configure.tgt | 2 ++ gdb/rtems-tdep.c | 82 ++++++++++++++++++++++++++++++++++++++++++++ gdbsupport/osabi.def | 1 + 4 files changed, 87 insertions(+) create mode 100644 gdb/rtems-tdep.c diff --git a/gdb/Makefile.in b/gdb/Makefile.in index e38ba95eebd..b7a2c9c777d 100644 --- a/gdb/Makefile.in +++ b/gdb/Makefile.in @@ -874,6 +874,7 @@ ALL_TARGET_OBS = \ rs6000-aix-tdep.o \ rs6000-lynx178-tdep.o \ rs6000-tdep.o \ + rtems-tdep.o \ rx-tdep.o \ s12z-tdep.o \ s390-linux-tdep.o \ @@ -1938,6 +1939,7 @@ ALLDEPFILES = \ rs6000-aix-nat.c \ rs6000-lynx178-tdep.c \ rs6000-tdep.c \ + rtems-tdep.c \ rx-tdep.c \ s390-linux-nat.c \ s390-linux-tdep.c \ diff --git a/gdb/configure.tgt b/gdb/configure.tgt index ba418653e86..05160714069 100644 --- a/gdb/configure.tgt +++ b/gdb/configure.tgt @@ -128,6 +128,8 @@ case "${targ}" in os_obs="netbsd-tdep.o solib-svr4.o";; *-*-openbsd*) os_obs="obsd-tdep.o solib-svr4.o";; +*-rtems*) + os_obs="rtems-tdep.o solib-svr4.o";; esac # 3. Get the rest of objects. diff --git a/gdb/rtems-tdep.c b/gdb/rtems-tdep.c new file mode 100644 index 00000000000..b384352ffea --- /dev/null +++ b/gdb/rtems-tdep.c @@ -0,0 +1,82 @@ +/* Target-dependent code for RTEMS, architecture independent. + + Copyright (C) 2026 Kinsey Moore + + This file is part of GDB. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . */ + +#include "arch-utils.h" +#include "gdbarch-gen.h" +#include "osabi.h" +#include "solib-svr4.h" + +/* Sniffer to detect RTEMS via section names. */ + +static enum gdb_osabi +rtems_osabi_sniffer (bfd *abfd) +{ + for (asection *sect : gdb_bfd_sections (abfd)) { + if (strcmp(bfd_section_name (sect), ".rtemsroset") == 0) { + return GDB_OSABI_RTEMS; + } + } + + return GDB_OSABI_UNKNOWN; +} + +/* Configure TLS ABI for RTEMS. */ + +static void +rtems_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch) +{ + set_gdbarch_fetch_tls_load_module_address (gdbarch, + svr4_fetch_objfile_link_map); +} + +/* Register OSABI components for RTEMS. */ + +static void +register_osabi (enum bfd_architecture arch, unsigned long machine) +{ + const struct bfd_arch_info *arch_info = bfd_lookup_arch (arch, machine); + + if (arch_info == NULL) { + return; + } + + gdbarch_register_osabi_sniffer (arch, bfd_target_elf_flavour, + rtems_osabi_sniffer); + gdbarch_register_osabi (arch, machine, GDB_OSABI_RTEMS, rtems_init_abi); +} + +/* Initializer for RTEMS TLS support across all relevant architectures. */ + +void _initialize_rtems_tdep (); +void +_initialize_rtems_tdep () +{ + /* mips, moxie, and or1k are supported by RTEMS, but omitted here since they + do not have TLS support in RTEMS. */ + + register_osabi (bfd_arch_arm, 0); + register_osabi (bfd_arch_aarch64, 0); + register_osabi (bfd_arch_i386, 0); + register_osabi (bfd_arch_m68k, 0); + register_osabi (bfd_arch_microblaze, 0); + register_osabi (bfd_arch_powerpc, 0); + register_osabi (bfd_arch_riscv, 0); + register_osabi (bfd_arch_sparc, 0); + register_osabi (bfd_arch_i386, bfd_mach_x86_64); +} diff --git a/gdbsupport/osabi.def b/gdbsupport/osabi.def index 230c21f0236..1b518887eff 100644 --- a/gdbsupport/osabi.def +++ b/gdbsupport/osabi.def @@ -53,5 +53,6 @@ GDB_OSABI_DEF (LYNXOS178, "LynxOS178", nullptr) GDB_OSABI_DEF (NEWLIB, "Newlib", nullptr) GDB_OSABI_DEF (SDE, "SDE", nullptr) GDB_OSABI_DEF (PIKEOS, "PikeOS", nullptr) +GDB_OSABI_DEF (RTEMS, "RTEMS", ".*-rtems.*") GDB_OSABI_DEF_LAST (INVALID, "", nullptr) -- 2.47.3