From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from simark.ca by simark.ca with LMTP id EekbBB7AwmmgSzcAWB0awg (envelope-from ) for ; Tue, 24 Mar 2026 12:47:26 -0400 Authentication-Results: simark.ca; dkim=pass (2048-bit key; unprotected) header.d=windriver.com header.i=@windriver.com header.a=rsa-sha256 header.s=PPS06212021 header.b=o62HiYQN; dkim-atps=neutral Received: by simark.ca (Postfix, from userid 112) id 09FFF1E08C; Tue, 24 Mar 2026 12:47:26 -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_MSPIKE_H2,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 0EFE31E08C for ; Tue, 24 Mar 2026 12:47:25 -0400 (EDT) Received: from vm01.sourceware.org (localhost [127.0.0.1]) by sourceware.org (Postfix) with ESMTP id BD8E24BB58AA for ; Tue, 24 Mar 2026 16:47:23 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org BD8E24BB58AA Authentication-Results: sourceware.org; dkim=pass (2048-bit key, unprotected) header.d=windriver.com header.i=@windriver.com header.a=rsa-sha256 header.s=PPS06212021 header.b=o62HiYQN Received: from mx0a-0064b401.pphosted.com (mx0a-0064b401.pphosted.com [205.220.166.238]) by sourceware.org (Postfix) with ESMTPS id A1D254BB3BF2; Tue, 24 Mar 2026 16:46:31 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org A1D254BB3BF2 Authentication-Results: sourceware.org; dmarc=pass (p=reject dis=none) header.from=windriver.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=windriver.com ARC-Filter: OpenARC Filter v1.0.0 sourceware.org A1D254BB3BF2 Authentication-Results: server2.sourceware.org; arc=fail smtp.remote-ip=205.220.166.238 ARC-Seal: i=2; a=rsa-sha256; d=sourceware.org; s=key; t=1774370796; cv=fail; b=h1/VSRwqSadXAx4HajQeSGg+2ktrFUjwBQwzEmsLz6iPhn41TUh6WB2HmqmZgSL5iymczgEcYVROfdycxWazQroQZYaNn7Ii0QXdQRBjwhsY3ao+ab5QHlxiDUu0KwR4mpDqpmUeqGn4iym++Tk/0oIAmZ5nItoe5sJebntQZkY= ARC-Message-Signature: i=2; a=rsa-sha256; d=sourceware.org; s=key; t=1774370796; c=relaxed/simple; bh=FTVfU6BkbeWQAZ6teT0UXEIi6cbFIwpx9jHxi8jE+8I=; h=DKIM-Signature:From:To:Subject:Date:Message-ID:MIME-Version; b=GzWJ8uZrADL5R4cZZ7zBBg6sZ3QkaaVL/BFHA4zlbLN6jaL/pSnbYNEpI5sknDHirIC7monIi0a8JvbsrXA6xIJGvJw7kFYl8RolRmGIKYxr4ikZbN6gFZiPUx62D5RNpj/Qpot+syU/XjKwjlbiaKszNjt7OcBfP1tkm+823mE= ARC-Authentication-Results: i=2; server2.sourceware.org DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org A1D254BB3BF2 Received: from pps.filterd (m0250809.ppops.net [127.0.0.1]) by mx0a-0064b401.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 62O3vxK91996106; Tue, 24 Mar 2026 09:45:48 -0700 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=windriver.com; h=cc:content-transfer-encoding:content-type:date:from :in-reply-to:message-id:mime-version:references:subject:to; s= PPS06212021; bh=r8KeYxmo1CIVwIKyLcj6YEK4BK+jcBc9/80TNk5XOc0=; b= o62HiYQNEYNud5Owaa0VWr4S2dXiMJjVQO/m5D/5IMAu75Yp7gEkIM6pUAoOTAwY 3NPsq6ZLZYrstqvmAG/SJQ1VWkGCKtDDRPjWXhDR774mzLAwdJwAOw3FL1ECVbjZ hHwJGaXw9iKf5jdVeViBl7DbJ1CB7g9k+bH6w7cEXrNnLQoEWYoWJihIh/2jlbWn MWBV4GfggsiCpA/gEewUeWK25rNmN/lBWiDjd0j1LmEnnXVGXWRCpW5ypaWdB0HZ gLv7gShsVslUsO5RTgPfmfHoI7ecHT9SIT2W0DXORERjqp+/i41SaM7vZQriU/ug Yh8JTL45Kt1iS+KF32J0Hw== Received: from ph8pr06cu001.outbound.protection.outlook.com (mail-westus3azon11012069.outbound.protection.outlook.com [40.107.209.69]) by mx0a-0064b401.pphosted.com (PPS) with ESMTPS id 4d1tucuc0k-3 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NOT); Tue, 24 Mar 2026 09:45:47 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=ELtp6dJ4ivOi0PWSfLs28/pwexFMMm8xreN9qGvGOBNHL4ykWhRKkXKVlFgBD9QjreyyyxFwv0qa4MZR2l0NC60bUvZXhk9r6oJhj+ZZrVVRcSJEYKR6oJKndwuVZuZXo26YVG9U9vr6cxYGcnBfC2sDSyFfHm2j76Ih4BGaw4/VAwnQ0Kepp0nab+mlsMZUrCzB7VzoRpmFzDzTu/wRNYl6Qn/JuI6AYhtbunLdwIpqLEWEWyelHukjSKmIQ823JRasmr89oEdnFm128twOB2tAyneVJp0vUKVLKYtjJwc5sK9MRjKHujx9VxkE/9su1sJpWewv1XKvfCtKH57I9g== 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=r8KeYxmo1CIVwIKyLcj6YEK4BK+jcBc9/80TNk5XOc0=; b=R81A1YwFOG9LsqqOeBoPf0Wap/ZiueOOSBjW1qBlGJgwxeLlY5CNV1V1nA0UdJnz9Ep3iHZGZwoQ1CmaNDv2VvbsC14BSVjhs/kS1bsgwSMzuYQHle6OkqYgRSwuJ+/vMekIjrJiVUMvPPR5AClnylUSeHn1ruaVfT8NlP5jDJL2Cz767XN2xvlUZ7vX6579L0xP5i4vrvAf0EDTC7l07loAtH1XopmVT5wG4fN/fg5pJImQQOaMgAcf4imVfnhZpKWKWD9v6ju2l+bJ3l1TFGR1sP4ukseTElH6sQryHwjgKwOJ6TohWZ6mEJk2Z6nr8h75n9NnHMkcFsRY1vXTvA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=windriver.com; dmarc=pass action=none header.from=windriver.com; dkim=pass header.d=windriver.com; arc=none Received: from DS0PR11MB7901.namprd11.prod.outlook.com (2603:10b6:8:f4::20) by IA0PR11MB7816.namprd11.prod.outlook.com (2603:10b6:208:407::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9745.20; Tue, 24 Mar 2026 16:45:45 +0000 Received: from DS0PR11MB7901.namprd11.prod.outlook.com ([fe80::4293:7c4b:a0b5:eb5f]) by DS0PR11MB7901.namprd11.prod.outlook.com ([fe80::4293:7c4b:a0b5:eb5f%3]) with mapi id 15.20.9745.019; Tue, 24 Mar 2026 16:45:45 +0000 From: sunilkumar.dora@windriver.com To: gdb-patches@sourceware.org Cc: SunilKumar.Dora@windriver.com, kevinb@redhat.com, macro@orcam.me.uk, eliz@gnu.org, Randy.MacLeod@windriver.com, Sundeep.Kokkonda@windriver.com, schwab@linux-m68k.org, tromey@sourceware.org, simark@simark.ca Subject: [PATCH v5 2/2] gdb/ser-unix: add POSIX cfsetispeed/cfsetospeed support for custom baud rates Date: Tue, 24 Mar 2026 09:45:27 -0700 Message-ID: <20260324164527.1446549-3-sunilkumar.dora@windriver.com> X-Mailer: git-send-email 2.49.0 In-Reply-To: <20260324164527.1446549-1-sunilkumar.dora@windriver.com> References: <20260324164527.1446549-1-sunilkumar.dora@windriver.com> Content-Transfer-Encoding: 8bit Content-Type: text/plain X-ClientProxiedBy: BYAPR02CA0034.namprd02.prod.outlook.com (2603:10b6:a02:ee::47) To DS0PR11MB7901.namprd11.prod.outlook.com (2603:10b6:8:f4::20) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DS0PR11MB7901:EE_|IA0PR11MB7816:EE_ X-MS-Office365-Filtering-Correlation-Id: afd4188b-21d9-4dd1-4cea-08de89c4cba3 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; ARA:13230040|376014|52116014|366016|1800799024|38350700014|18002099003|56012099003|22082099003; X-Microsoft-Antispam-Message-Info: SHhkAVsCcrsOB2NWpYTqq447cICPbiXfEzPOMm2q09rJZc2irLGOc+hMvoN2NSamP4MA1f4QWlnsfhRBnfNMveaiRc+K+adL66bZHYidSzRMcJxFtiYk3rojU68rcGuHM0uNZiZymfoOmsqZlefax96Lp8ITZ6Aqfuz/a0MtklvHqeV2iMjeUqWUjoNAWz8Jobwf6TbJMSpQm4DcrxstuT9v52tuh/rzif+AE2T9QL1RnYyV766KQJp5p37E5IcY650gpNqp5xr1FYUussMMcCBFk+XADpqRcbV6NBCOyczNVBb7sXU5+mo7XAHfd7//Lj9AWTxqlV0+ZGi43/ZnCtcWsBOFG+4xEAKJ4o1I4vU3oitoL1ICJKxdxQEeW/Z5Id0vdin2LCLlyxezc43uLqe4MuW8cli3WF6V4vuzyH6rkyWwIJWOzzsm48IyFqwqP1OSXeGYwhNxGXvaYNSF7jLRkWzvYJfZ929HWBlJqvfJnCcXqOcGu2Ya9flcNHGd/9xVtx/lNh0Geu98NtKhuU4iIAG2iAv+2jQsnHDKUmiReOEP5ldfncnNZFQdHI4WjMLO+v3w6xAcqPaW3xC6SFN0gytbZVtfoN9FnToF1VT+ER4qQdeSdixgalbGOP3sxGVFIrNHlaO0h90Be7/E5fMCNQb2iV8AOSmOnwtlTkK2+MdLh0zrnqfNPF1o6eHxMJYMxHZSg1LMX7nVHVaxuBoqmneS5mBlvEMDv5zbMDXM0HvR44OYiHc6S/vF2DKg6gKZhhSkNVUAwEzPB6REo+P9QqR4KBbSCVXCtM7a/bM= X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DS0PR11MB7901.namprd11.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230040)(376014)(52116014)(366016)(1800799024)(38350700014)(18002099003)(56012099003)(22082099003); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?mj0ZYhpp4iLvO8H8xHypzsBiV8xGP3sFY3m4A4uMU5B5aZPXg0c9Rr+iRyqQ?= =?us-ascii?Q?lExAZK+0kBCmqpYG5xqzLn8a4H894t7/SwYGJXHns5J3OZXQIH4/i1TUZtD6?= =?us-ascii?Q?3L6lDkbgU/VOzxs6G9uu85njEjY8oOiZmycC9Wr8yD5/cOcLdMjeFnUER4SO?= =?us-ascii?Q?1/VooGwkZoPXmj2+Yn9p9JarP1QYAzeAJ9O961UBnXGuagalA3AVUwJDmPWn?= =?us-ascii?Q?xmyaPhClq3twsRQilQu1rKiQGibVQ9Q8nl4F+3+lEbnJxgaqK+tlfm8fdnon?= =?us-ascii?Q?99yKGljExie/pJlMmG4UE13Hu+s/iwPWYl0itIKBGYBFpDA2Xn9z7wxsi33U?= =?us-ascii?Q?JRw1CTgLePmFnSQiSxXnkJ7nWzK2l1cr2VUQm/tI2+DkOEWuFgsvTs45yB3z?= =?us-ascii?Q?fah/b2TMVGjOfvXySZxv6J3SF4hFXh4jyUuhryDiRAHAnvH+qvCnxo65jnpS?= =?us-ascii?Q?1tDxd00mKn//HCTyTs8tqKHfW9/9fmk11yXJhu5Qb2F9Z0xFVnx7M0SoXlH2?= =?us-ascii?Q?c4j4wEAKb5AqaKZEpI+1QWvEmuQDh6EOEGAURQ9ksic5hLvsMoRnG0CqHJQd?= =?us-ascii?Q?F2RA7EjT9UUdtD3obUWV/2HYWUUwRJGaaKyg1yBawB1EnnSw/9hlAOprTAaR?= =?us-ascii?Q?FcLQhVeAldAQPyQwaQ7PZcIF6/hFTZEm0EaxZh/ntaFc72OqnB593nVRFFXr?= =?us-ascii?Q?7KxvdvzdW+LIJKotHtxK6YmCnLmJGwziqKsYb5K3k+xSxyvy6Ldi2NZMQyiP?= =?us-ascii?Q?CCbZdMP+onGz1GwS0znruwePaKpNHV5lpOsyIAe0cigB+Qvmbtt87pOo950U?= =?us-ascii?Q?7NRJ39wN9j1bjGgcVRANWAsUy6yFnXMuovXcZWMOEG4RARPE6Gby/9yjZuV3?= =?us-ascii?Q?2tXiqK4IwWfSKu8NPV3egdG1CxaqwkSRKzkArhFamytnD5g0ul8dxZn7h+Tj?= =?us-ascii?Q?gWM4BMa70jufYcbMhynWZFRSJVLwUHVQjMZm2Fl+btsSuVg5X67BfXgG8MiV?= =?us-ascii?Q?Bak5vxQpSvJwK1S6o7mvhEKQSY3htuH0Xc9oFXcDUGwrqSCabBnP/Fv9gii/?= =?us-ascii?Q?t3RZ8xeUH/6a5zU/U8aqx2yQFXqxiaMetAlYrKlg4EQhIFXdoJa6ryH65f76?= =?us-ascii?Q?wob86uIFFoSu3Wr4oYYyycV7j3V2zQITByFb2SCf7oRfBiL7/TN1UNxEP21l?= =?us-ascii?Q?vcpl7XnSVUjLVlGheyLxFLuyUi8LRE3sz7QtNhqq6gC4n1ggYEW8PMOxcSa7?= =?us-ascii?Q?xAbS0r1B3yp29f8fZ1rjld6FVFydI6k4K7Al7mTvl0mIETl1RFw1a2YinWpu?= =?us-ascii?Q?j+GhASlX+CJqwxno3L80wvdKYz4ClOjv9en/3jbsxmR/lzHcM6CtI1AoBPih?= =?us-ascii?Q?gSflPzn/kDW/GwZytsVlzk41w4eWWv9VlMt2MhiYDqfGeO8J8pOHJijtI4iu?= =?us-ascii?Q?OED1OfnuZGkj7jImYOhWK0WLRQ/iCBqTLV9xaEaIOSaEegtiEUwOt9B7yhVo?= =?us-ascii?Q?y30TQEUPlEmdeDHaFgbB2E5IvYFig8hyfub92OVQiRABajcnQljyWaqBBkuP?= =?us-ascii?Q?ZqjeqkG04Dg6Q0AGwreue/+bblOOaULMrSkGM+Sm/3KedIXkOg1Uo9qLPEbH?= =?us-ascii?Q?9qEbUTFe3eRzOzgH5kU7drSECr5iVGYbCmCOzpuWatyH9jzyo3Frgg6mgFaz?= =?us-ascii?Q?xpoh92x/B05lYOBGlbH07MeW7ZVfr7WlHpr4fRo3AOJOPLBOrd9JPLpb0YrR?= =?us-ascii?Q?KVpr/xFqVNzzTI1iawzMlsRhVrU0wiE=3D?= X-Exchange-RoutingPolicyChecked: PgwPg+gdoHbxc+u6fBURptnzNx//5ntCan92R+nxuHPjDSf9vEjcNLHdBGZ7r/wEfDHdsOf/7w5jY40uovd1vE8TtFsoI57x3dAozuOvNHshxoUDuZ3zk5pVu5kfO2dnWkZCKJBd/xRtjm2XJ4T1iNtgQRPrkTdyuL+5WQkGGHHIDQ6s1NyHhv1B/M6klyELJfai5YU2RtTSVWTiCQWfLybViRL8gblqAcG3HvC1vpR35DL7/GCEJ2bdLW9My7z65NHaiIDTES8wdod+qf04OdpCy4FcP8Hf4qMaFSdji2H1Z6tOS2mf/a45yc8bLF7lRH7tUsRa8UJH8OA2ytePlw== X-OriginatorOrg: windriver.com X-MS-Exchange-CrossTenant-Network-Message-Id: afd4188b-21d9-4dd1-4cea-08de89c4cba3 X-MS-Exchange-CrossTenant-AuthSource: DS0PR11MB7901.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 24 Mar 2026 16:45:45.7486 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 8ddb2873-a1ad-4a18-ae4e-4644631433be X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: gHzb2B9b9M7sTMTd/vP8ch0aj7Q5wgj7Yio1YuKuAXUI0HQxIFwDbcrmjpjiNKjQJJ22emJfcIdqnI7NAOTGMNUwk8pz5BcpESraivZg7qA= X-MS-Exchange-Transport-CrossTenantHeadersStamped: IA0PR11MB7816 X-Proofpoint-GUID: Ww3RVWrXF6eSkR5gDEnHY-_77VpiZjlb X-Proofpoint-ORIG-GUID: Ww3RVWrXF6eSkR5gDEnHY-_77VpiZjlb X-Authority-Analysis: v=2.4 cv=deCNHHXe c=1 sm=1 tr=0 ts=69c2bfbb cx=c_pps a=Cwg/eoBiIzPoLCvUJpemAw==:117 a=6eWqkTHjU83fiwn7nKZWdM+Sl24=:19 a=z/mQ4Ysz8XfWz/Q5cLBRGdckG28=:19 a=lCpzRmAYbLLaTzLvsPZ7Mbvzbb8=:19 a=xqWC_Br6kY4A:10 a=Yq5XynenixoA:10 a=VkNPw1HP01LnGYTKEx00:22 a=bi6dqmuHe4P4UrxVR6um:22 a=iKiJcTA2PjBS6x5JeXcw:22 a=t7CeM3EgAAAA:8 a=20KFwNOVAAAA:8 a=BcPKCTjPAAAA:8 a=lrZZHsKk5_FGCdwLYtoA:9 a=FdTzh2GWekK77mhwV6Dw:22 a=MNXww67FyIVnWKX2fotq:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMzI0MDEyOCBTYWx0ZWRfXz2FCWOS995HT F0qqUHR5Dch/6SpD29XpsYjJkbBrRBRYdNVKWhhQzhkHh1MT61zMDUUj328v3fTE5YU9nQ8f72e CkJjDyMp9F7J5TjUIvf9BVH0FvgN4ovc5pTU5TVxrbT7JHDIOcf+G4/sFwLoa4ofswfyMgC9ERe QSR9XKCmcM1GdjA5Yvxkbxl+mo5kKZYiHadvhWi7kHXAccgghHnP90yIrsVSzOwuIkGpcGe8bcq ReA9EtaSdMiJd2KEHKrNqDlkQRjzOW/HbEWKIRph02yqwjXS3GtiCc0RXC/Pihwo4CTVlKilRmQ StFt670nFewvx5lWZEN6oofhbUZp6B2HlA2zR6PvmSAXgisxhpDMfxs6OfH+fZzzGcAHYLHmR7f 3GfoBaVDJKe0SbXpLnA7qFZgo8PMvPJB53GXv/m3Y8CIXfT7tocs28bDY6xxsccqtUjXgMVDBHW C0cAC0aqYk3asSNDdsA== X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-03-24_03,2026-03-23_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 clxscore=1015 malwarescore=0 spamscore=0 phishscore=0 priorityscore=1501 impostorscore=0 lowpriorityscore=0 suspectscore=0 adultscore=0 bulkscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2603050001 definitions=main-2603240128 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: Sunil Dora glibc 2.42 and later, and GNU Hurd, accept arbitrary baud rates directly via cfsetispeed and cfsetospeed. This behaviour is expected to be standardized in a future POSIX revision. Introduce a configure-time test (HAVE_CFSETSPEED_ARBITRARY) that detects this capability and add a new platform-agnostic helper set_custom_baudrate_posix. The main dispatcher now prefers the POSIX path when it is available, falling back to the existing Linux (BOTHER) or Darwin (IOSSIOSPEED) implementations otherwise. The HAVE_CUSTOM_BAUDRATE_SUPPORT guard is extended to also cover the new POSIX case. Suggested-by: Kevin Buettner Suggested-by: Maciej W. Rozycki Signed-off-by: Sunil Dora --- gdb/NEWS | 6 ++++++ gdb/config.in | 3 +++ gdb/configure | 39 ++++++++++++++++++++++++++++++++++++++ gdb/configure.ac | 19 +++++++++++++++++++ gdb/ser-unix.c | 49 +++++++++++++++++++++++++++++++++++++++--------- 5 files changed, 107 insertions(+), 9 deletions(-) diff --git a/gdb/NEWS b/gdb/NEWS index 03f46df5400..e46b3a56a1f 100644 --- a/gdb/NEWS +++ b/gdb/NEWS @@ -36,6 +36,12 @@ subsequent runs of the inferior will use the same arguments as the first run. +* GDB now supports arbitrary (non-standard) baud rates for serial + connections to remote targets on systems where the host libc accepts + them via cfsetispeed/cfsetospeed, such as glibc 2.42 and later and + GNU Hurd. On other systems, existing platform-specific mechanisms + are used. + * Support for stabs debug information has been removed. * Support for mdebug debug information has been removed. diff --git a/gdb/config.in b/gdb/config.in index 6ad5240397b..e357c22e411 100644 --- a/gdb/config.in +++ b/gdb/config.in @@ -110,6 +110,9 @@ the CoreFoundation framework. */ #undef HAVE_CFPREFERENCESCOPYAPPVALUE +/* Define if cfsetispeed/cfsetospeed accept arbitrary baud rates. */ +#undef HAVE_CFSETSPEED_ARBITRARY + /* Define to 1 if you have the `clearenv' function. */ #undef HAVE_CLEARENV diff --git a/gdb/configure b/gdb/configure index 72e69c9749f..d10c4fdce34 100755 --- a/gdb/configure +++ b/gdb/configure @@ -27741,6 +27741,45 @@ _ACEOF fi +# Check whether cfsetispeed/cfsetospeed accept arbitrary baud rates. +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether cfsetispeed/cfsetospeed accept arbitrary baud rates" >&5 +$as_echo_n "checking whether cfsetispeed/cfsetospeed accept arbitrary baud rates... " >&6; } +if ${gdb_cv_cfsetspeed_arbitrary+:} false; then : + $as_echo_n "(cached) " >&6 +else + + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +int +main () +{ + + #if B9600 != 9600 + #error B-constants are not numeric symbols + #endif + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + gdb_cv_cfsetspeed_arbitrary=yes +else + gdb_cv_cfsetspeed_arbitrary=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gdb_cv_cfsetspeed_arbitrary" >&5 +$as_echo "$gdb_cv_cfsetspeed_arbitrary" >&6; } + +if test "$gdb_cv_cfsetspeed_arbitrary" = yes; then + +$as_echo "#define HAVE_CFSETSPEED_ARBITRARY 1" >>confdefs.h + +fi + # Check whether --with-jit-reader-dir was given. diff --git a/gdb/configure.ac b/gdb/configure.ac index 277eb945e84..42d7594fa31 100644 --- a/gdb/configure.ac +++ b/gdb/configure.ac @@ -728,6 +728,25 @@ AC_SEARCH_LIBS(dlopen, dl) # Check for members required by the legacy Linux custom baud rate path. AC_CHECK_MEMBERS([struct termios.c_ospeed], [], [], [[#include ]]) +# Check whether cfsetispeed/cfsetospeed accept arbitrary baud rates. +AC_CACHE_CHECK([whether cfsetispeed/cfsetospeed accept arbitrary baud rates], + [gdb_cv_cfsetspeed_arbitrary], [ + AC_COMPILE_IFELSE( + [AC_LANG_PROGRAM([[#include ]], + [[ + #if B9600 != 9600 + #error B-constants are not numeric symbols + #endif + ]])], + [gdb_cv_cfsetspeed_arbitrary=yes], + [gdb_cv_cfsetspeed_arbitrary=no]) +]) + +if test "$gdb_cv_cfsetspeed_arbitrary" = yes; then + AC_DEFINE([HAVE_CFSETSPEED_ARBITRARY], [1], + [Define if cfsetispeed/cfsetospeed accept arbitrary baud rates.]) +fi + GDB_AC_WITH_DIR([JIT_READER_DIR], [jit-reader-dir], [directory to load the JIT readers from], [${libdir}/gdb]) diff --git a/gdb/ser-unix.c b/gdb/ser-unix.c index 72c46d29e8f..1bb21a08572 100644 --- a/gdb/ser-unix.c +++ b/gdb/ser-unix.c @@ -55,9 +55,10 @@ #include "gdbsupport/scoped_ignore_sigttou.h" -#if (defined(HAVE_SYS_IOCTL_H) \ - && ((defined(BOTHER) && defined(HAVE_STRUCT_TERMIOS_C_OSPEED)) \ - || defined(IOSSIOSPEED))) +#if (defined(HAVE_CFSETSPEED_ARBITRARY) \ + || (defined(HAVE_SYS_IOCTL_H) \ + && ((defined(BOTHER) && defined(HAVE_STRUCT_TERMIOS_C_OSPEED)) \ + || defined(IOSSIOSPEED)))) # define HAVE_CUSTOM_BAUDRATE_SUPPORT 1 #endif @@ -510,7 +511,32 @@ set_baudcode_baudrate (struct serial *scb, int baud_code) perror_with_name (_("could not set tty state")); } -#if HAVE_CUSTOM_BAUDRATE_SUPPORT && defined(BOTHER) +#if HAVE_CUSTOM_BAUDRATE_SUPPORT && defined(HAVE_CFSETSPEED_ARBITRARY) + +/* Set a custom baud rate using the POSIX cfsetispeed/cfsetospeed + interface. Supported in glibc 2.42 and later and expected to be + standardized in a future POSIX revision. It is platform-agnostic + and also covers systems like GNU Hurd that do not provide BOTHER. */ + +static void +set_custom_baudrate_posix (int fd, int rate) +{ + struct termios tio; + + if (tcgetattr (fd, &tio) < 0) + perror_with_name (_("Cannot get current baud rate")); + + if (cfsetispeed (&tio, rate) < 0) + perror_with_name (_("Cannot set custom input baud rate")); + + if (cfsetospeed (&tio, rate) < 0) + perror_with_name (_("Cannot set custom output baud rate")); + + if (tcsetattr (fd, TCSANOW, &tio) < 0) + perror_with_name (_("Cannot set custom baud rate")); +} + +#elif HAVE_CUSTOM_BAUDRATE_SUPPORT && defined(BOTHER) /* Set a custom baud rate using the termios BOTHER. */ @@ -557,19 +583,24 @@ set_custom_baudrate_darwin (int fd, int rate) } #endif /* HAVE_CUSTOM_BAUDRATE_SUPPORT - && (defined(BOTHER) || defined(IOSSIOSPEED)) */ + && (defined(HAVE_CFSETSPEED_ARBITRARY) + || defined(BOTHER) + || defined(IOSSIOSPEED)) */ #if HAVE_CUSTOM_BAUDRATE_SUPPORT /* Set a baud rate that differs from the OS B_codes. - This is possible if one of the following macros is available: - - BOTHER (Linux). - - IOSSIOSPEED (Darwin). */ + Prefer the POSIX cfsetispeed/cfsetospeed interface when the host + libc accepts arbitrary baud rates. Otherwise fall back to + Linux-specific (BOTHER) or Darwin-specific (IOSSIOSPEED) + interfaces. */ static void set_custom_baudrate (int fd, int rate) { -#if defined(BOTHER) +#if defined(HAVE_CFSETSPEED_ARBITRARY) + set_custom_baudrate_posix (fd, rate); +#elif defined(BOTHER) set_custom_baudrate_linux (fd, rate); #elif defined(IOSSIOSPEED) set_custom_baudrate_darwin (fd, rate); -- 2.49.0