From patchwork Thu Mar 22 04:11:13 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Simon Marchi X-Patchwork-Id: 26415 Received: (qmail 122352 invoked by alias); 22 Mar 2018 04:11:32 -0000 Mailing-List: contact gdb-patches-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Unsubscribe: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sourceware.org Delivered-To: mailing list gdb-patches@sourceware.org Received: (qmail 122285 invoked by uid 89); 22 Mar 2018 04:11:32 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-26.9 required=5.0 tests=BAYES_00, GIT_PATCH_0, GIT_PATCH_1, GIT_PATCH_2, GIT_PATCH_3, KAM_SHORT, SPF_PASS autolearn=ham version=3.3.2 spammy= X-HELO: sesbmg22.ericsson.net Received: from sesbmg22.ericsson.net (HELO sesbmg22.ericsson.net) (193.180.251.48) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Thu, 22 Mar 2018 04:11:30 +0000 Received: from ESESSHC017.ericsson.se (Unknown_Domain [153.88.183.69]) by sesbmg22.ericsson.net (Symantec Mail Security) with SMTP id 04.AE.02394.FEC23BA5; Thu, 22 Mar 2018 05:11:27 +0100 (CET) Received: from ESESSMR501.ericsson.se (153.88.183.108) by ESESSHC017.ericsson.se (153.88.183.69) with Microsoft SMTP Server (TLS) id 14.3.382.0; Thu, 22 Mar 2018 05:11:26 +0100 Received: from ESESSMB502.ericsson.se (153.88.183.163) by ESESSMR501.ericsson.se (153.88.183.108) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.1034.26; Thu, 22 Mar 2018 05:11:26 +0100 Received: from NAM03-CO1-obe.outbound.protection.outlook.com (153.88.183.157) by ESESSMB502.ericsson.se (153.88.183.163) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.1034.26 via Frontend Transport; Thu, 22 Mar 2018 05:11:26 +0100 Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=simon.marchi@ericsson.com; Received: from elxacz23q12.lan (192.222.164.54) by BL0PR1501MB2003.namprd15.prod.outlook.com (2603:10b6:207:31::33) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.609.10; Thu, 22 Mar 2018 04:11:25 +0000 From: Simon Marchi To: CC: Simon Marchi Subject: [PATCH 2/2] Fix generation of x86-64 gdbarch with osabi none Date: Thu, 22 Mar 2018 00:11:13 -0400 Message-ID: <1521691873-25338-2-git-send-email-simon.marchi@ericsson.com> In-Reply-To: <1521691873-25338-1-git-send-email-simon.marchi@ericsson.com> References: <1521691873-25338-1-git-send-email-simon.marchi@ericsson.com> MIME-Version: 1.0 X-ClientProxiedBy: YTXPR0101CA0050.CANPRD01.PROD.OUTLOOK.COM (2603:10b6:b00:1::27) To BL0PR1501MB2003.namprd15.prod.outlook.com (2603:10b6:207:31::33) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 8a6af20a-c35e-4790-bf1a-08d58faafa9a X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(7020095)(4652020)(5600026)(4604075)(4534165)(4627221)(201703031133081)(201702281549075)(2017052603328)(7153060)(7193020); SRVR:BL0PR1501MB2003; X-Microsoft-Exchange-Diagnostics: 1; BL0PR1501MB2003; 3:KCWpnl4ito1J53oUDslsV1Tr4QhoQQHJdxdsSbh82JGgXZdYYF/iAfteouhReEC2eF9JB3WhCeBZcMFiXKAzmSkGBMPubgEMpVT19LcqprOmPe8mWjzQNV+6DU4D4II2/onE2QKX2SK/SpaTzCWG0kDRW5aM8CnZBRK8OpGz9njz2uXp+f2+ZC37ShqN8vNHAXw7F6rpcXKg8U2/6f8wI5xCweDFxyWXYq9c6b+A9w72n98WaZrGhXQsH51WezCb; 25:Ua/m+VlNW5CMB7RoMuh1FPEG4iWpICWSnn2EWV3OTk7OYhi4W3aBMklFlcnN+5v3pa1umALNPK4O/Bc15BfHqB7gPmXobFWJinzxwtQQy4M7Tg5zZWRXXu0tRM6ey4HyGWkviXgi7wweBxz8SV8OPSb0ei2Go6VygyxLlaLyM1++DfejAe/WVeRX/rLIHLVh5b74+TIlmmO72I4raqrikUUdqsd7lwJ+DGz5Y7kKf3Z/GQ+umbfjgEFYKSDA+i31kUngEQ5pP3r1mCshF1WwySj3Nj0HeUj3cPUPf6qpDxLHVlgfeUv3Gti6Bxo3B3bIERuW7aGtVDl6hDD1J1IIYA==; 31:hgwtPHchqmweALQTJyWfr2yOxglh0PmIbJdN6G+WaTTiyegX6pl1QkgaVJV+H4TRkMC7GyuMrE5GdE1TYIChxqJ5qRuK7GfQZVxUato+sjDvoE4nF+eNtpJNokdB8omYCoQeSHbeZIkpS73E3wTjqQvqV7gpdV6a0XKJZwldG9ivJTmEIetM1VdryHx1Olh9Mg2BbZjhIx1DDfWjejIgOYuiLucRGaKdhSJh75l86ek= X-MS-TrafficTypeDiagnostic: BL0PR1501MB2003: X-Microsoft-Exchange-Diagnostics: 1; BL0PR1501MB2003; 20:zoV/qrr28u2Yu3vNwrLsI0spub4P1HHpEGucRUBhmdyR5c99ztKt+U7O12KdyZG7bq+zUc2MiTxCcaWtQKUkVrvtconMrQkv1lozCq49f4yug0hh8E+ZwnTkI3sUzVKG/zyvhANquNytkCt80HsU7PJyEDlULR+CxTvyjriYWtXFudKSSprVoUMKlLFuastit0Fqkps3jlIPs0OHTj44tCDfgWGGWOPa32hybUIDow7QTPHfwrZxbigHQA2en7bSfqxxwfKasmIe+qpMYHopd6s+rIRYjATxrZjI5IWlTZYv3XjAHwg/zR4jNbQv5I9lN+gvscMiM90Fo/eunxBE0K4o9aTjhmeYteL6QrauJfaJUSxzoaXgdBRzDCejRqELO9Q5YpZ31wVlJGJ7p6/O1f78ohEuhMflnkwmb4xttm1fD6Mv41jSZseVyAVc0MVnZwqoyr2I99bBycMwxeY6XXs+kJrO1iOQiZ2JM8+7A3ghRVoaGSvk3rjq97g7BxfC; 4:jnsrnk3FK5etMrnlOoW9FhjFlJjkFn2o1aRUppeQebWtY5/Z2f/QmQ5aGkghVsP81De+0dkFrpHcuFKIdOWlzWwTe+KIpJ5auJ4heGnV8OXXTLLl+ENEQ9y32SoelftyEX+vVcka00+3SCB6z8S7BkJOjLddp46eHFlIIFLDEpAJZzNlZN6FvX7BttlxQvmrC/wqyQXZg6EGDnnJtl9x14a4X7GbgCSEL9P/re+51ZUboyWA3/x0GA81DyAq/13uNsiaX9VzC+Ti3XyS9zKO31q1Wn4pqQfOIw7yP0zg+bQNUTI8tNVHgf2RzVvKJ3WI3kWe39/5NdvDuofFza+oiMt3Na+suN2pqmCwKgvydEM= X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(250305191791016)(22074186197030); X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(8211001083)(6040522)(2401047)(5005006)(8121501046)(93006095)(93001095)(3231221)(944501327)(52105095)(10201501046)(3002001)(6041310)(20161123560045)(20161123564045)(20161123558120)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123562045)(6072148)(201708071742011); SRVR:BL0PR1501MB2003; BCL:0; PCL:0; RULEID:; SRVR:BL0PR1501MB2003; X-Forefront-PRVS: 0619D53754 X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(346002)(366004)(39860400002)(396003)(39380400002)(376002)(54534003)(199004)(189003)(50466002)(6916009)(2950100002)(81166006)(97736004)(86362001)(16526019)(3846002)(107886003)(7736002)(6116002)(6306002)(186003)(6512007)(6486002)(26005)(2361001)(446003)(59450400001)(6666003)(76176011)(316002)(53936002)(51416003)(52116002)(6506007)(69596002)(48376002)(386003)(2351001)(8676002)(305945005)(66066001)(50226002)(47776003)(106356001)(16586007)(105586002)(36756003)(4326008)(8936002)(25786009)(21086003)(68736007)(81156014)(478600001)(5660300001)(2906002)(2004002); DIR:OUT; SFP:1101; SCL:1; SRVR:BL0PR1501MB2003; H:elxacz23q12.lan; FPR:; SPF:None; PTR:InfoNoRecords; A:1; MX:1; LANG:en; Received-SPF: None (protection.outlook.com: ericsson.com does not designate permitted sender hosts) X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; BL0PR1501MB2003; 23:7CVx0msbjDYtF+m24b2x7UxRT4dd2nOkju4yCGb?= =?us-ascii?Q?lfCnU+/rihHGU/kpLsC23yhwJofYLBTaRWdr0JA/E89vwaN8JjO+2wr1I7D0?= =?us-ascii?Q?+qU2Azjv9P/iRC5xKiMRtjgb1dZGVI3QoO276appoZH/YSeGALflhAv2Fo3E?= =?us-ascii?Q?B9GmqqEasHI6jywnMRPFiXp4bwgh7OmfQzwgyzwUiAtaI9671lIvyI/IotOb?= =?us-ascii?Q?sgjALlAeJbS8c1ghA4J7Tf34YFuS7Gb2NEkXXi+UtJDt7T7dOcx7ohmPClbp?= =?us-ascii?Q?zQNvvtOVQvRifIqpuSQdRpaNfuEPNZD7Et878plywnWy4otbnhAgvs51vz1R?= =?us-ascii?Q?mU3UiqFWmx40yoIUIH9O5AzmTbQc4b39LbDSRhX/f/xn7AaKgWHJWT7dxns1?= =?us-ascii?Q?eWQXCcEgl+ACFLU4xD7Wqu8HR3ZWuyE9rOG4PooNwtXE6OdRBvyr2oArcwCt?= =?us-ascii?Q?9vKnJpiftx2Rh113uJjUV7qxV5XTsCAnk5Grjmu12utQ+6KtHZ+/kyA/ga0h?= =?us-ascii?Q?G3o4vqDc9NRxl8dBp0tMhkof/Op6Zkch1iWuATNkr8is/h1tQ+d0oVzFmCSC?= =?us-ascii?Q?gxii2+Jxg4TQWHC8YDVnLkfg7QKIkgKr1O80HtV8C1t6ObiJWSkozW7Zo2rK?= =?us-ascii?Q?5/sphgjJlI9l1CPrjXW6B9rEVkWLbDEr7ATMKWSABqDJUszt+v6MaxcbxTx3?= =?us-ascii?Q?ahv35aRUyP9Smz3xK2WUxGaoN9CF/69f1IG0dESbBHhKxORRxwc7HSupZYTd?= =?us-ascii?Q?YX3t/ub9SEZjy0D0lP9KkKUQQaWmT2QUvi7Md7gZDIhOIiDDNpTjsziBfeIS?= =?us-ascii?Q?1Fo2y/y8/3EdC/aHW7gu1ViVX67VsT+vSeD6wt+C7xpgFAWaEm5Yk+EwF+Yy?= =?us-ascii?Q?gfXUbGzY/vrSmO6aMftVST2BVS7dxDwxF/qhBh87I7rO+45ezJkT56AIsVqR?= =?us-ascii?Q?taZsNrRoPHld+8NLHXBn24tCnezxYD/XNsh1hyjpXim3wVi29T7o2bHGXRWB?= =?us-ascii?Q?pJKCNu+gD0E7mo/ulMZDC8fJ33DiNwqh9hR849QE3leQLWrNEbWbkRwpy2jL?= =?us-ascii?Q?lP+VtLVvTqb97aYTfKG3LByZGLOURbYMDTUUzdpXrh1KtFzxRpJq676k/Cr0?= =?us-ascii?Q?BOqh9SnFrkrJ/a91YJFhLCPAF1+g2besGwyCaPHUTBJWGeiP8/juip3vYEVa?= =?us-ascii?Q?sCQNMt+/3yMvEn9zIwvPzTOqWH0WbIuEwrUTKfTq4qL0KkSqCA/aK2myBkK3?= =?us-ascii?Q?IvUFBApFc0ljD3vmaLKyNkEq/n7q2mcNXpfR2byoasb6Qu2XTMJi7IAEpc8n?= =?us-ascii?Q?P6BasWFmRBP7Sr5K5vjZOnKk=3D?= X-Microsoft-Antispam-Message-Info: wGQh0jh3T7cG3DzzoJ1bIsfuIpbMCryAwnTTcgK54UsArvljnAC64KMUMDpB7EYPtXCYzP/iQkUYjQtVsF5AvIgOt5P4O5+KsKSVbY2MBI895we/iYGjGrSqKzPpP91yL2GHbB6nLvLD08r1+OZm34BP9cHqeXc4FZE48B3oNSI837kmQEpLCkdIdeSJ6KSA X-Microsoft-Exchange-Diagnostics: 1; BL0PR1501MB2003; 6:K8zJAa/BOE2DvhZGFadf0ASkDZGa27l0HYUuEcTM4yuhYJeOec7ssZHXVV9Mv+OwguW19mMhKqZ6DfInJnwHigvfvpbDA8QRDXwN1xcpU3dj66ZfC2RXwPV6izJIf9Aldw7y29VEwpmtKE5SaHgtMOhflqlETM8vkODlzSJEgyVQymNzuwThAh8FWFx8eG2a4vHjGlgrEaBvLIVzMClEDaqZ9fjvl1zqIcHyOeDwVQYXuSrm/I9BTjwDe/z7gEO9XYHWQZR+Pia3HJhkHXrOXdYkjaVExMkdkmDh4wB1T0MtB7EJ7TqYe12T2HqGw7QroUFiZZ8N8DrIniHcLM/t9D473zToj4hASNYeT/sA3r3darcAZHR5bV3gKVzpqj2bEqcmSx1uYgIri/MfBmd/EUm8jVlg3gcP1GQ8BixpEtxN5npvIXCSq+7QdxYdy6BQkjrsmmmUbcdCCXzSxy8Sxw==; 5:SGahH0tO5q7BRNDVJiaaGVGvTOwkncPPNn3dKAfQvrgXvqG54kJDjVsWpkt4ibJdZG0BB6QFmaXIuSoYqsTNB2b/kueCF55kwHvI3Epzyu78sHkYCwbFYxKCmtrVltHPpJppQPMxmyoWB/SyP59OW3x2V+epXaK0npp8JnIKaGQ=; 24:vO63m9kOPXcTjJV5x4qQSmi0eDTO5kxAvF81BT5cYpQuWZ/kmCI+4gSAUS25lZLLvJACPygXJGPdNl/I0+tbagqLuC6a9J4BwncDnoSbnHI= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; BL0PR1501MB2003; 7:N0Drhkn2jZwAbY33DUN2IGpXs43ujXotE7fAGAW5IqjbSc+4iLZ/ICipIGDKPzC6J2T+ZnSKPKb2YR9Pmvw6cU+ts+RJzEPWycpKdXVP9niD5QSZqWO1Oq4BqStDktfdxyUIXVsiLpzqtAIZR3TVsOmWCcQTIYhLkKohdnUJl4RYsKBucyINu5sNDb6DMBmBVgIu6MPjSOvqV3Z5EsKeBSvfH1A5AD5XqNXMfqwpFdIOcS0Fj6HK817uu108uqks X-MS-Exchange-CrossTenant-OriginalArrivalTime: 22 Mar 2018 04:11:25.2732 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 8a6af20a-c35e-4790-bf1a-08d58faafa9a X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 92e84ceb-fbfd-47ab-be52-080c6b87953f X-MS-Exchange-Transport-CrossTenantHeadersStamped: BL0PR1501MB2003 X-OriginatorOrg: ericsson.com X-IsSubscribed: yes When a 64-bits (x86-64) gdbarch is created, it is first born as a 32-bits gdbarch in i386_gdbarch_init. The call gdbarch_init_osabi will call the handler register for the selected (arch, osabi) pair, such as amd64_linux_init_abi. The various amd64 handlers call amd64_init_abi, which turns the gdbarch into a 64-bits one. When selecting the i386:x86-64 architecture with no osabi, no such handler is ever called, so the gdbarch stays (wrongfully) a 32-bits one. My first idea was to manually call amd64_init_abi & al in i386_gdbarch_init when the osabi is GDB_OSABI_NONE. However, this doesn't work in a build of GDB where i386 is included as a target but not amd64. My next option (implemented in this patch), is to allow registering handlers for GDB_OSABI_NONE. I added two such handlers in amd64-tdep.c, so now it works the same as for the "normal" osabis. It required re-ordering things in gdbarch_init_osabi to allow running handlers for GDB_OSABI_NONE. Without this patch applied (but with the previous one*) : (gdb) set osabi none (gdb) set architecture i386:x86-64 The target architecture is assumed to be i386:x86-64 (gdb) p sizeof(void*) $1 = 4 and now: (gdb) set osabi none (gdb) set architecture i386:x86-64 The target architecture is assumed to be i386:x86-64 (gdb) p sizeof(void*) $1 = 8 * Before the previous patch, which fixed "set osabi none", this bug was hidden because we didn't actually try to generate a gdbarch for no osabi, it would always fall back on Linux. Generating the gdbarch for amd64/linux did work. gdb/ChangeLog: PR gdb/22979 * amd64-tdep.c (amd64_none_init_abi): New function. (amd64_x32_none_init_abi): New function. (_initialize_amd64_tdep): Register handlers for x86-64 and x64_32 with GDB_OSABI_NONE. * osabi.c (gdbarch_init_osabi): Allow running handlers for the GDB_OSABI_NONE osabi. gdb/testsuite/ChangeLog: PR gdb/22979 * gdb.arch/amd64-osabi.exp: New file. --- gdb/amd64-tdep.c | 24 ++++++++++++++++++- gdb/osabi.c | 14 +++++------ gdb/testsuite/gdb.arch/amd64-osabi.exp | 43 ++++++++++++++++++++++++++++++++++ 3 files changed, 73 insertions(+), 8 deletions(-) create mode 100644 gdb/testsuite/gdb.arch/amd64-osabi.exp diff --git a/gdb/amd64-tdep.c b/gdb/amd64-tdep.c index 07eef5e..bceb6e1 100644 --- a/gdb/amd64-tdep.c +++ b/gdb/amd64-tdep.c @@ -47,6 +47,7 @@ #include "ax.h" #include "ax-gdb.h" #include "common/byte-vector.h" +#include "osabi.h" /* Note that the AMD64 architecture was previously known as x86-64. The latter is (forever) engraved into the canonical system name as @@ -3206,7 +3207,14 @@ amd64_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch, set_gdbarch_insn_is_ret (gdbarch, amd64_insn_is_ret); set_gdbarch_insn_is_jump (gdbarch, amd64_insn_is_jump); } - + +/* Initialize ARCH for x86-64, no osabi. */ + +static void +amd64_none_init_abi (gdbarch_info info, gdbarch *arch) +{ + amd64_init_abi (info, arch, amd64_target_description (X86_XSTATE_SSE_MASK)); +} static struct type * amd64_x32_pseudo_register_type (struct gdbarch *gdbarch, int regnum) @@ -3240,6 +3248,15 @@ amd64_x32_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch, set_gdbarch_ptr_bit (gdbarch, 32); } +/* Initialize ARCH for x64-32, no osabi. */ + +static void +amd64_x32_none_init_abi (gdbarch_info info, gdbarch *arch) +{ + amd64_x32_init_abi (info, arch, + amd64_target_description (X86_XSTATE_SSE_MASK)); +} + /* Return the target description for a specified XSAVE feature mask. */ const struct target_desc * @@ -3263,6 +3280,11 @@ amd64_target_description (uint64_t xcr0) void _initialize_amd64_tdep (void) { + gdbarch_register_osabi (bfd_arch_i386, bfd_mach_x86_64, GDB_OSABI_NONE, + amd64_none_init_abi); + gdbarch_register_osabi (bfd_arch_i386, bfd_mach_x64_32, GDB_OSABI_NONE, + amd64_x32_none_init_abi); + #if GDB_SELF_TEST struct { diff --git a/gdb/osabi.c b/gdb/osabi.c index ef1d993..7d0540b 100644 --- a/gdb/osabi.c +++ b/gdb/osabi.c @@ -338,13 +338,6 @@ gdbarch_init_osabi (struct gdbarch_info info, struct gdbarch *gdbarch) gdb_assert (info.osabi != GDB_OSABI_UNKNOWN); - if (info.osabi == GDB_OSABI_NONE) - { - /* Don't complain about no OSABI. Assume the user knows - what they are doing. */ - return; - } - for (handler = gdb_osabi_handler_list; handler != NULL; handler = handler->next) { @@ -378,6 +371,13 @@ gdbarch_init_osabi (struct gdbarch_info info, struct gdbarch *gdbarch) } } + if (info.osabi == GDB_OSABI_NONE) + { + /* Don't complain about no OSABI. Assume the user knows + what they are doing. */ + return; + } + warning ("A handler for the OS ABI \"%s\" is not built into this configuration\n" "of GDB. Attempting to continue with the default %s settings.\n", diff --git a/gdb/testsuite/gdb.arch/amd64-osabi.exp b/gdb/testsuite/gdb.arch/amd64-osabi.exp new file mode 100644 index 0000000..9705797 --- /dev/null +++ b/gdb/testsuite/gdb.arch/amd64-osabi.exp @@ -0,0 +1,43 @@ +# Copyright 2018 Free Software Foundation, Inc. + +# 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 . + +# Verify that gdbarches for i386 variants and osabi none are properly created. + +if { ![istarget x86_64-*-* ] } { + untested "skipping x86-64 specific test" + return +} + + +proc_with_prefix test_osabi_none { arch void_ptr_size long_double_size } { + clean_restart + + gdb_test "set architecture i386:x86-64" "The target architecture is assumed to be i386:x86-64" + gdb_test_no_output "set osabi none" "set osabi none" + gdb_test "print sizeof (void*)" " = 8" + gdb_test "print sizeof (long double)" " = 16" +} + +set infos { \ + { "i386:x86-64" 8 16 } \ + { "i386:x64-32" 4 16 } \ + { "i386" 4 12 } } + +foreach info $infos { + lassign $info arch void_ptr_size long_double_size + with_test_prefix "arch=$arch" { + test_osabi_none $arch $void_ptr_size $long_double_size + } +}