From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from simark.ca by simark.ca with LMTP id 8QvmNp3Z0GokkhEAWB0awg (envelope-from ) for ; Thu, 15 Oct 2026 09:48:13 -0400 Authentication-Results: simark.ca; dkim=pass (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.a=rsa-sha256 header.s=20251104 header.b=hes2+4BK; dkim-atps=neutral Received: by simark.ca (Postfix, from userid 112) id D7AC31E050; Thu, 15 Oct 2026 09:48:13 -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.1 required=5.0 tests=ARC_SIGNED,ARC_VALID,BAYES_00, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FROM,MAILING_LIST_MULTI, RCVD_IN_DNSWL_MED,RCVD_IN_SBL_CSS autolearn=ham autolearn_force=no version=4.0.1 Received: from vm01.sourceware.org (vm01.sourceware.org [IPv6:2620:52:6:3111::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 DA7001E04E for ; Thu, 15 Oct 2026 09:48:12 -0400 (EDT) Received: from vm01.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id A4CD34BA23D3 for ; Thu, 15 Oct 2026 13:48:11 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org A4CD34BA23D3 Authentication-Results: sourceware.org; dkim=pass (2048-bit key, unprotected) header.d=gmail.com header.i=@gmail.com header.a=rsa-sha256 header.s=20251104 header.b=hes2+4BK Received: from mail-dy1-x1333.google.com (mail-dy1-x1333.google.com [IPv6:2607:f8b0:4864:20::1333]) by sourceware.org (Postfix) with ESMTPS id 11D064BA2E33 for ; Thu, 15 Oct 2026 13:47:47 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 11D064BA2E33 Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=gmail.com ARC-Filter: OpenARC Filter v1.0.0 sourceware.org 11D064BA2E33 Authentication-Results: sourceware.org; arc=none smtp.remote-ip=2607:f8b0:4864:20::1333 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1792072067; cv=none; b=KFkQLMzIRWwgfSSjFi+tz8rKo/xRQwO06AcWphQGe63c9vDomyH5cfizYE3Ko/CBXDwUjD9wYPEaFLRhuDnIiFl+WasLgkqwmIJW1+EJj6ia3oSdmYPDns0SDUepJVvii5ZQyL64xfABDtUQ5yi4PeoOydGjE80W7HS7Cla0i30= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1792072067; c=relaxed/simple; bh=IQ+VWW5c4KkfTiY4CSkG1EryNwMnRYkMoe02hPWDHbQ=; h=DKIM-Signature:From:To:Subject:Date:Message-ID:MIME-Version; b=ranguPtSv9Yc5VmWnK4kiWnAU84+4UTyZYNw8kF0r5gEH3Oh4htXEMbUCbTXWg58oIoSMoV8XAQm0BGi4oRu7Nqqcf68R01V3t+0w0mvopZzl/Tc/iurGE2mdSlfM/n4IEykAkFlAIcBymKHwXNzvngUMVNOe8TDnB79kmR08jY= ARC-Authentication-Results: i=1; sourceware.org; dkim=pass (2048-bit key, unprotected) header.d=gmail.com header.i=@gmail.com header.a=rsa-sha256 header.s=20251104 header.b=hes2+4BK DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 11D064BA2E33 Received: by mail-dy1-x1333.google.com with SMTP id 5a478bee46e88-353804b591eso9322539eec.0 for ; Thu, 15 Oct 2026 06:47:47 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1792072066; x=1792676866; darn=sourceware.org; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:from:to:cc:subject:date:message-id:reply-to:content-type; bh=p4TUMPq9z9q51KYXtt918D8J5FIJVF6vi5sHuljuDoo=; b=hes2+4BKWQ8DO1dOXrbYOXAecS4aAIB/DeDmkacMf4dF1R0tmYZ/qmXqcNymXByAjP k0Hq/GAZxZ46xPgZ8wVu9JxgsQGg5H2XfRgc7qIRqMr2vUNxK9TWit3d0KT7+CNwKjj3 kI/bXT6Z7FBTvp1gb+3az6Y9FGfR03+iUBNDQBO+rnsvXBwAZhN0/n00xXmGspJ9KiqD LC9hRLXGviWbbeMS3mHlS4P9ENGn8aQvbmcsrjEQp1rDrdZ5Crj68y6Uj7HsVnxWcfuS lgpejhFpRbrhPP96l9UQGv1GQYylnLsqLDGXvTGuefMHSn2NGkozGLcciEI0wIZQqYpt olXQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20260707; t=1792072066; x=1792676866; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:x-gm-gg:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to:content-type; bh=p4TUMPq9z9q51KYXtt918D8J5FIJVF6vi5sHuljuDoo=; b=ps4fWC4uzUbGRalrw7F4f7yJESdg/e4VkmwfZTJa0LoQABk4RzuelQKIZZLpBIb/O5 bxFEtiVs9vC/UklBcagz+6pjjDqA/TfrjYpnAouE9KNtL56I3l4Y59YFJsi1llB/xuP0 WkKJVjbsreONhvWg+0WuFUNaO1/L+D/iIlpZGGPNLcenvBo2rdE+clm/eLn6m0/2vBUz iT+mcNkC0XqvLY7JsRigJVkAdjzw110pM9QO/a7eeWy5gNo+9uP0idnRvAgBIlfQSM09 SsuBy6ITWIw2AXzAjraC8BBxc7sVo1TurHp1wymFi/1r7WQHiJp+AWx/1UEDoDHZzbuc IMVg== X-Gm-Message-State: AFq9FYIV1XoeQQu6ictkyPCjPvqH62bhfeouliUi9/LWUTb8TAmtpOI7 S4Tqu5hALvGBmw18o6p4Z+b6fbCrwW2ZiUCR35BDWTe4yJhAyxZuL1J7 X-Gm-Gg: AYBFou3wMNkTjQDxkUIQHiOMULCQ3HC6VVVxtv/w0/NayR12CaV9vii+wCKYoU7uS6p E6dIUOXoQqEgKO04gHK4IUB3S29hrsYt91bq/aGftQQjFqDKLVlJ4zopRtdwyCvNjhzxB0fhXq7 +b5I3t4/x3gpyLTv9DOuQGtoKGDbrDjyqG7FqC4ubu+0LmwZsi++B5w3PVF/KU2U7zWuhbdiQGV U4mDBz+wqDOiR1VC5UecRXVEgP3AZCDOClIeMLUQ5sy+9QHKpdEkEpc8hR13PGFRIZkY/bp0MSP 3hY4aKcIo5RqwVGXNNill1TpHOGMpKXj3QtqbyThy6OnG3S13Uhhhulq4ni8Fg4gqzEV72XxOFe TISbMh90rJ3KKedNErCnlgTL/wtXFkRCBXWrg63XnzBvbNRWKvAmt0JJWo5e7t+yjyJ8jX5+i4U To/DXJ+GFKlS6hDajLhN975duHfwhCGzLqM9teY5jmSNHdpiGYVAn1agu+M+IAA2kChERM/4asA ETEoRos7Hvz7nWN0k2sJdskYIM= X-Received: by 2002:a05:7301:9a93:b0:35b:2d66:942b with SMTP id 5a478bee46e88-35b2d6697d3mr15381569eec.13.1792072065671; Thu, 15 Oct 2026 06:47:45 -0700 (PDT) Received: from localhost.localdomain ([122.171.22.226]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-35ea672d82esm10961417eec.9.2026.10.15.06.47.42 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256); Thu, 15 Oct 2026 06:47:45 -0700 (PDT) From: Aditya Vidyadhar Kamath To: ulrich.weigand@de.ibm.com, simon.marchi@polymtl.ca, tom@tromey.com Cc: gdb-patches@sourceware.org, Aditya.Kamath1@ibm.com, sangamesh.swamy@in.ibm.com, Aditya Vidyadhar Kamath Subject: [PATCH] Use UTF-32 as the wide charset for 64-bit Date: Thu, 15 Oct 2026 19:17:23 +0530 Message-ID: <20261015134722.81702-2-akamath996@gmail.com> X-Mailer: git-send-email 2.43.0 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit 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 From: Aditya Vidyadhar Kamath On AIX, wchar_t is 4 bytes in 64-bit mode and 2 bytes in 32-bit mode, and rs6000_aix_init_osabi sets wchar_bit accordingly. The auto_wide_charset method however always returned "UTF-16", so a 64-bit inferior's wide strings were decoded as 2-byte units. This printed L'\000\000a' for L'a', and GDB crashed with SIGSEGV on the following print in gdb.base/wchar.exp. Return "UTF-32" for 64-bit and keep "UTF-16" for 32-bit. wchar.exp now passes in 64-bit mode. --- gdb/rs6000-aix-tdep.c | 25 ++++++++++++++++++++----- 1 file changed, 20 insertions(+), 5 deletions(-) diff --git a/gdb/rs6000-aix-tdep.c b/gdb/rs6000-aix-tdep.c index d823fea5645..a80caa9dc18 100644 --- a/gdb/rs6000-aix-tdep.c +++ b/gdb/rs6000-aix-tdep.c @@ -1052,14 +1052,22 @@ rs6000_software_single_step (struct regcache *regcache) return next_pcs; } -/* Implement the "auto_wide_charset" gdbarch method for this platform. */ +/* Implement the "auto_wide_charset" gdbarch method for this platform. + wchar_t is 2 bytes in 32-bit mode and 4 bytes in 64-bit mode, see + the set_gdbarch_wchar_bit calls in rs6000_aix_init_osabi. */ static const char * -rs6000_aix_auto_wide_charset (void) +rs6000_aix_auto_wide_charset_32 (void) { return "UTF-16"; } +static const char * +rs6000_aix_auto_wide_charset_64 (void) +{ + return "UTF-32"; +} + /* Implement an osabi sniffer for RS6000/AIX. This function assumes that ABFD's flavour is XCOFF. In other words, @@ -1404,11 +1412,18 @@ rs6000_aix_init_osabi (struct gdbarch_info info, struct gdbarch *gdbarch) set_gdbarch_frame_red_zone_size (gdbarch, 288); if (tdep->wordsize == 8) - set_gdbarch_wchar_bit (gdbarch, 32); + { + set_gdbarch_wchar_bit (gdbarch, 32); + set_gdbarch_auto_wide_charset (gdbarch, + rs6000_aix_auto_wide_charset_64); + } else - set_gdbarch_wchar_bit (gdbarch, 16); + { + set_gdbarch_wchar_bit (gdbarch, 16); + set_gdbarch_auto_wide_charset (gdbarch, + rs6000_aix_auto_wide_charset_32); + } set_gdbarch_wchar_signed (gdbarch, false); - set_gdbarch_auto_wide_charset (gdbarch, rs6000_aix_auto_wide_charset); set_gdbarch_make_solib_ops (gdbarch, make_aix_solib_ops); frame_unwind_append_unwinder (gdbarch, &aix_sighandle_frame_unwind); -- 2.51.2