From patchwork Mon Jun 16 12:18:21 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Deepesh Varatharajan X-Patchwork-Id: 65077 X-Patchwork-Delegate: steve@sakoman.com Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from aws-us-west-2-korg-lkml-1.web.codeaurora.org (localhost.localdomain [127.0.0.1]) by smtp.lore.kernel.org (Postfix) with ESMTP id 8F8F1C7115E for ; Mon, 16 Jun 2025 12:18:55 +0000 (UTC) Received: from mx0b-0064b401.pphosted.com (mx0b-0064b401.pphosted.com [205.220.178.238]) by mx.groups.io with SMTP id smtpd.web10.28963.1750076330036125399 for ; Mon, 16 Jun 2025 05:18:50 -0700 Authentication-Results: mx.groups.io; dkim=none (message not signed); spf=permerror, err=parse error for token &{10 18 %{ir}.%{v}.%{d}.spf.has.pphosted.com}: invalid domain name (domain: windriver.com, ip: 205.220.178.238, mailfrom: prvs=826277e072=deepesh.varatharajan@windriver.com) Received: from pps.filterd (m0250812.ppops.net [127.0.0.1]) by mx0a-0064b401.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 55GAe9Wv023842 for ; Mon, 16 Jun 2025 12:18:49 GMT Received: from nam02-sn1-obe.outbound.protection.outlook.com (mail-sn1nam02on2060.outbound.protection.outlook.com [40.107.96.60]) by mx0a-0064b401.pphosted.com (PPS) with ESMTPS id 4790281s6u-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT) for ; Mon, 16 Jun 2025 12:18:48 +0000 (GMT) ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=qUciNdm5/3U9TdN5dQrc/xTGUJxPwfuuOmAA0L+ljTpfLUKt9sMNkPeOJ6JVeGpP+MIs4GTxgaC0//dqkBIXb6Qb3Q5I7JPWG/lqe38ac4yDnTTMtTgalRYC7j14FdYql+KgBY1Hp33u+kNfOQctwH4Vt3Ay7PFb/Pp31G7FJr10K7r5HVcYQBBxFYj6Vie/xFDNpAnaqpza6PmGtcvV4bg1Fy8AfhyMSposcYkizkYcilh4oAHMf7ojRdD9YWzcaVeRliEBCmHRaynpNocy9Zo9TZNAPiXP4kxcTHHe7QLKgJGHogXSHs4/nT2ZkFNgD5ikxezOKN/t1su/tZTiOA== 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=zb+FdBwXY2zo4YVj4s9PyXr7n+1jKqFnK5yeFZRB+JI=; b=mFWG1uvWTlxzmQRLeAt6FTXif66xWW8xKLThxCy9xjD+rf9Tf60uzBa3aAPVpC6RLLJjgqrAWoXgGxwlS/G+ljxduSE019X74/kH+qnOFHAO4zOgpyDgkwUk/3YQ12y+layZETPXvBsKKpQzk/d8Wle/y2AK11iazV3oCrjEkd6GM4mUstPJ6p4mLF1GufZZ+8awjS7I1TjwLVdEYAWAb3FdthaWoMLgz6QDGx8/3gYtjpvfwG9ro4bVamE/2eRnhY/eT3wZqw/a3CDb7hPKS3dlD3I8e2uZVSxbR0BwfeKyA8Fqgn/NpMv2mo5edAjiVYmhvPMguXknM5YROT3dmw== 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 SJ0PR11MB5648.namprd11.prod.outlook.com (2603:10b6:a03:302::11) by DM4PR11MB7301.namprd11.prod.outlook.com (2603:10b6:8:10a::12) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8835.27; Mon, 16 Jun 2025 12:18:45 +0000 Received: from SJ0PR11MB5648.namprd11.prod.outlook.com ([fe80::c784:dce5:4b7b:54f]) by SJ0PR11MB5648.namprd11.prod.outlook.com ([fe80::c784:dce5:4b7b:54f%3]) with mapi id 15.20.8835.027; Mon, 16 Jun 2025 12:18:45 +0000 From: Deepesh.Varatharajan@windriver.com To: openembedded-core@lists.openembedded.org Cc: Sundeep.Kokkonda@windriver.com, Deepesh.Varatharajan@windriver.com Subject: [scarthgap][PATCH] gcc: Upgrade to GCC 13.4 Date: Mon, 16 Jun 2025 05:18:21 -0700 Message-ID: <20250616121821.347717-1-Deepesh.Varatharajan@windriver.com> X-Mailer: git-send-email 2.49.0 X-ClientProxiedBy: CH0PR08CA0013.namprd08.prod.outlook.com (2603:10b6:610:33::18) To SJ0PR11MB5648.namprd11.prod.outlook.com (2603:10b6:a03:302::11) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: SJ0PR11MB5648:EE_|DM4PR11MB7301:EE_ X-MS-Office365-Filtering-Correlation-Id: 5aab3de2-5bda-4788-2b83-08ddaccff07f X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|1800799024|52116014|376014|38350700014; X-Microsoft-Antispam-Message-Info: =?utf-8?q?WQRPVQdZFxEA0D/WacpP+8a1LRehGYK?= =?utf-8?q?NYnCzck4eFYjDbU8HoAdehPlW7fMm3YmnBtJMqiC9z2fqNhq+A4LBD90+R7JDKoq6?= =?utf-8?q?zGqPJz6kKFTBIOyIl0aGOrr9jsm/BkgckadsyWPT+LtWOx6BGbteMevyJvxWKisxd?= =?utf-8?q?Fjc8MTKA8FI1R/GABEmn3TA4FstE55jqzP3Uf76Kis4mQmLqJumrOyMG77/UrRPd5?= =?utf-8?q?oES2DtkhtAEG0vNA9qQM5dVXjnaNBcToTpuJxzdLHLP4yL03ZiJamKu8f04gLFODb?= =?utf-8?q?pck+yx+8CFWc4uz97sLiTjmz5M/IBRk1NlxFRqfrrUVbqCS+tU8wrRxSEgx3i+1ck?= =?utf-8?q?Gibr6hvdu3c/uorgXYpIRuym4En6BmFN71H3iPNmxHGj3NHEbWgKo2tCMDPbtk9S2?= =?utf-8?q?WaVnd9y5Rhl5zZwsJGNlpU2JbINJdF8nCA22e778zD0l0GAUZqOaykllAur4D0bOS?= =?utf-8?q?dLBnNWCuphsc64s3zQi3Qlq3eML3o9jALq1akElKfATchF6DoH/xPBONPT3jJ+6u6?= =?utf-8?q?z2eLC/1J95ihhq7XU+wX0uIaC6DKo4MLoISLGeOaGvia++ITzqIi07v+pP9i4uscZ?= =?utf-8?q?Fr5LayE1Yfd76zhiU3LyOItJA7cmrMoo3goWgNActezioKH3uIogv16paH57TKEDS?= =?utf-8?q?7AUsw2Kt3zfqJDPOke0M+FpDmTWGdKeqghtTgRlB+Vur8/EChPIB2l7mXH52gW2EE?= =?utf-8?q?F7OdanF9gjZ/OoN1CBh6dzNzzpX46sdqkdyIeoM01xhRWUTdkqZvF4U9jatLgolqH?= =?utf-8?q?EzmgSbWtq4DjvWamQpajfvDIF4wVNHm8gh1WTeQu8jgOfhOP5KJ3i/l8BrZ8mR+yM?= =?utf-8?q?xkwYfpeULijQQJ+aO2EZycndsWiSkXka0r/uMb5PXRy8/8lt7ao0CQTwXTs7LJBAw?= =?utf-8?q?W+4JIbGpD3+iRnarzIuv6u3wy7dWTghbp4vNZLYae4ycRVJk6U07kRy+HIEJy6GxT?= =?utf-8?q?TZW/fN085VgLQkxEzP55jGmEXvFkTqB7/LAie8+H6pXVqm7HJxGvnG3MPcScPSFpe?= =?utf-8?q?Z6KAoQr9CpjHXWR+N0nXGZq+2JrW1JYmEQ0Jie1zFntI/IG4Cgaz/te9uS+1jKlO2?= =?utf-8?q?zqdgDVd1EPp5gxeOIjXG5+/YEISnXaaOIMLLTwm3FVNYTYEVbXYSnpEfpQzg3so3u?= =?utf-8?q?9qcMTznvHhJ4XPP9LRz1Z16PyqeSegXMgeVuTb5hQrIIWQNa04h+b0sClEaQ6Tdu4?= =?utf-8?q?3YrWF+sStca+gQhv/A8VK3mPjsST3Os8RrAiKQmflA1aQOYmE2MB24i6DuIn15O+p?= =?utf-8?q?LT8gz8VQL1UFoRm5RzwxhFa7JuZbQ0a/HvvEnmdlMAN64tL4MvRC7Th5vm/WJjN+A?= =?utf-8?q?VxirlHHi+djyP37ov3cJOq9p9somm71W5ZbHApUgHoerXas94Jr+Rire0qxlKKdhc?= =?utf-8?q?zQgUUdd1nyf?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:SJ0PR11MB5648.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(52116014)(376014)(38350700014);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?q?hvPSHWtFhdu9nbCWa+BBJzVYdn5C?= =?utf-8?q?LmS0nP36HbYDvjahqnvxn9r9/G5twQydQvQldOvl1Ueef/k1443tnBm5gQgdbfRi8?= =?utf-8?q?7xv1Ghc6fPjssE5QBxbgAvuqm7/y780hWf4TDSb5rE+Gg4OhHOt6UYjvVIVGf+ycO?= =?utf-8?q?0LLKQ/ximIoPydjb0Mw2UEGjO3ioPCnIXKrOhw6iTW4aWUXcj9QVUZOHa3pNVQY7P?= =?utf-8?q?OUfdTXfGnwMGwL7gDUL5y3ywj5SkPuY+tIynySyJ3ZaM2Db+cV5+OxQb61d3CFPgc?= =?utf-8?q?X/jCzLHz3xSvA0ZRpKIXd56DT6FH6a+KeZIQAN5FIUmIjAsRJCLZoAgJkZDWUl0i+?= =?utf-8?q?EC+K+xFIfnhZLPPdlu2FfE8KT1YynGHBQoMUkwNuzExRsegEkpCcE1Jw+v/xJpm/j?= =?utf-8?q?Qye4H29w9jr1f0Jc+OkPjYvndr6tllzxMvjsxOtO2r8Nof1zhcTPOsYTh7l4D1fa7?= =?utf-8?q?vhelt7JIzKLj7mS1YhZ/ap07kbJbMc52K+xhVg2XwwJfcsHiIWp5qDnbXUm3VFydE?= =?utf-8?q?Hy5YQDU40K8054wYY6/niPd3xGspMrw2Gyb4rceFSliKDXmOWWnAKhIFORTQpl62Z?= =?utf-8?q?+hRZiW/66T6iijdUZ8z+pI6qXssmrzgcJ+5kt/Jq1OG/r+z7wVhPwqXI5vMsHDhDr?= =?utf-8?q?w/pzpYA2uQaX2rA1koY6uIj+kigFBjsGtP58kUpNIfIZ8E5H7Wbu2Bt7lI1Qo4Wht?= =?utf-8?q?RmfN9+kCTwP8ZJCjSgNjp3Fk6TntwuJq+zB+7cBpBTZ7cOYH+0EB4xcRNEuh5NHvT?= =?utf-8?q?sRwMTWsPzQXodqeWJQwt5wihdaEAGQeTjJLAjwKeu1Gx5V6SaWp3RyDGAGaxiyjGa?= =?utf-8?q?j7EF/1osxXGvGZzpXMyyBfdE+UmvCGvF3wrL4TmwqpETu2RXwtgqQkjcySmrqqfGu?= =?utf-8?q?ErDQFLkDd2wQYS1ImE/6hWxPXTYl2hmiDsdmioMEOdqHMA4ePmRg77lILKkndD0TO?= =?utf-8?q?KF8XW5IyVDLTwGC+XKqe5GFOrBgMhRZ5MoSrV99fj31V83ilagicirXzgmtXYfWyg?= =?utf-8?q?Y3MPTwLHY0dA9SzXgbSnlWr0Ay6JCwzuEtxw5bJjU09xqp7kax6DCGlNqdm4fpy3I?= =?utf-8?q?bOufQzbUDf7sQdtTxQRiTt+34RiRrmrbZ+0yTcHdm2FEAP9jZOYeVGt2Q8wSPfQCD?= =?utf-8?q?X3beiLMQ8hYBcg3FKpoMZ1qjyCFXBeWcJUr/aYz3DB7tJwNwfafYRKtPQDYsMVdHI?= =?utf-8?q?th9xKE9WnhHKPom1y8CWPy46Qu+FwC3Sg+ojKzuRFEmgbJNhfeXd5Fo+4RSpq09vs?= =?utf-8?q?7XUHMQ6buGqgY2ty2T5bPTyqwp4L8mgNijiqc6sI7yC/o54teiLoYjKlmGtgoPAnd?= =?utf-8?q?NsZC1IXJptVQI53EqAmOU9Yt0dFXF6YR5uQ5vu5KLwwf+DzBu6Pq2RJ2D/tccCplF?= =?utf-8?q?CaJ0XbpZgk8x2KHBhbXiHNr+ROgwWCecngSy0F2ocRAOSnZr7LT8GMWrXygGL83Re?= =?utf-8?q?AQg4+P767uVhx9CE3ZUlnzCL2DggM7NX/y0GHtO0V5+s6ETMlgdDkPkhRSKUxaH+R?= =?utf-8?q?F7ardwF1eQsZ2fGCgp+zfJr0CQyDBnCTACJAAGrVQwHpxRxQa3vnMzU=3D?= X-OriginatorOrg: windriver.com X-MS-Exchange-CrossTenant-Network-Message-Id: 5aab3de2-5bda-4788-2b83-08ddaccff07f X-MS-Exchange-CrossTenant-AuthSource: SJ0PR11MB5648.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 16 Jun 2025 12:18:45.3151 (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: c23e/Kq7TwnQ/rsulOe/bvWJbbaeT7PsRZKyRfVa2B+n3GFT3+38lG3WcJDykIGdyt/OPS7VYVDiqsoHm5CwqJJY6g3oIHnAk6tEjANcaECsTy8uOSwSW10zvVQshphW X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM4PR11MB7301 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUwNjE2MDA3NiBTYWx0ZWRfX8UX30aLbKtYb ypC53lwy3vz8Ju9ajQ5B/9FtTZ0Bj5y9zYU6qOMNC3rDdjmpFa+T9qCHAgLxju7GIywKZRMCqqT uaVALH7wPFiPpANexhBekF/t4XOuuEKxIainmoaKHS3JiZBBC72N1+Qy+TIrngvJZZis81qaRBK HjPtdabtW8Dqf4Yp5bQ+Dwfmd76HsYyVIaOxsiZGRWMQw+M99UstAEoCADkMZ1clHqvLresRQxb 19Qe86Gi2gCDDLpjTshoZyQqPQM885c6GoRlO83WCepn2nTifKxjiqS0mhERwPLv6rvbfDG7R6D FpZi5xUvRENqY903Et8CQkwT5Atq/DGOnJBNaVgongzs6AglLhGOfVQZshMJDBck37l3bEhmLXO XFTjSLfhHpA3tY2dpwiqVAiHmaD+0xmMdcHOq3Z7+IlYQxKXaFGbtmfr6A7HOXoeX7lxf25w X-Proofpoint-GUID: Hxr5OH2cC2a8JdvNCGLlRM9zPpfTCPuC X-Authority-Analysis: v=2.4 cv=ar2yCTZV c=1 sm=1 tr=0 ts=68500ba8 cx=c_pps a=o1VJN3YqdCgxIxsX0dn2eg==:117 a=6eWqkTHjU83fiwn7nKZWdM+Sl24=:19 a=lCpzRmAYbLLaTzLvsPZ7Mbvzbb8=:19 a=wKuvFiaSGQ0qltdbU6+NXLB8nM8=:19 a=Ol13hO9ccFRV9qXi2t6ftBPywas=:19 a=xqWC_Br6kY4A:10 a=IkcTkHD0fZMA:10 a=6IFa9wvqVegA:10 a=mDV3o1hIAAAA:8 a=NEAV23lmAAAA:8 a=m9shYIPOAAAA:8 a=t7CeM3EgAAAA:8 a=pGLkceISAAAA:8 a=7CQSdrXTAAAA:8 a=20KFwNOVAAAA:8 a=RkZnTFZfyHrYY7ms5YIA:9 a=nPWvBAr5p45noifJ:21 a=3ZKOabzyN94A:10 a=QEXdDO2ut3YA:10 a=OK5ky32wnfMA:10 a=FdTzh2GWekK77mhwV6Dw:22 a=a-qgeE7W1pNrGK8U0ZQC:22 X-Proofpoint-ORIG-GUID: Hxr5OH2cC2a8JdvNCGLlRM9zPpfTCPuC X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1099,Hydra:6.0.736,FMLib:17.12.80.40 definitions=2025-06-16_05,2025-06-13_01,2025-03-28_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 spamscore=0 phishscore=0 mlxscore=0 lowpriorityscore=0 suspectscore=0 priorityscore=1501 malwarescore=0 mlxlogscore=999 impostorscore=0 clxscore=1015 bulkscore=0 adultscore=0 classifier=spam authscore=0 authtc=n/a authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.21.0-2505280000 definitions=main-2506160076 X-MIME-Autoconverted: from 8bit to quoted-printable by mx0a-0064b401.pphosted.com id 55GAe9Wv023842 List-Id: X-Webhook-Received: from li982-79.members.linode.com [45.33.32.79] by aws-us-west-2-korg-lkml-1.web.codeaurora.org with HTTPS for ; Mon, 16 Jun 2025 12:18:55 -0000 X-Groupsio-URL: https://lists.openembedded.org/g/openembedded-core/message/218820 From: Deepesh Varatharajan This is a bugfix release in GCC13 release series 100+ bugfixes https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=13.4 Dropped the following patches: 0028-gcc-Fix-c-tweak-for-Wrange-loop-construct.patch https://github.com/gcc-mirror/gcc/commit/179dc0f0fe01012675c1b430591b9891ce96c26e gcc.git-ab884fffe3fc82a710bea66ad651720d71c938b8.patch https://github.com/gcc-mirror/gcc/commit/5ceea2ac106d6dd1aa8175670b15a801316cf1c9 #GCC 13.3 #GCC 13.4 #Diff No. of expected passes            148863 149440 +577 No. of unexpected failures        14 14 0 No. of expected failures          1415 1414 -1 No. of unresolved testcases       25384 25660 +276 No. of unsupported tests          2692 2689 -3 Signed-off-by: Deepesh Varatharajan --- meta/conf/distro/include/maintainers.inc | 2 +- .../gcc/{gcc-13.3.inc => gcc-13.4.inc} | 8 +- ...ian_13.3.bb => gcc-cross-canadian_13.4.bb} | 0 .../{gcc-cross_13.3.bb => gcc-cross_13.4.bb} | 0 ...-crosssdk_13.3.bb => gcc-crosssdk_13.4.bb} | 0 ...cc-runtime_13.3.bb => gcc-runtime_13.4.bb} | 0 ...itizers_13.3.bb => gcc-sanitizers_13.4.bb} | 0 ...{gcc-source_13.3.bb => gcc-source_13.4.bb} | 0 ...ix-c-tweak-for-Wrange-loop-construct.patch | 113 ---- ...4fffe3fc82a710bea66ad651720d71c938b8.patch | 549 ------------------ .../gcc/{gcc_13.3.bb => gcc_13.4.bb} | 0 ...initial_13.3.bb => libgcc-initial_13.4.bb} | 0 .../gcc/{libgcc_13.3.bb => libgcc_13.4.bb} | 0 ...ibgfortran_13.3.bb => libgfortran_13.4.bb} | 0 14 files changed, 4 insertions(+), 668 deletions(-) rename meta/recipes-devtools/gcc/{gcc-13.3.inc => gcc-13.4.inc} (94%) rename meta/recipes-devtools/gcc/{gcc-cross-canadian_13.3.bb => gcc-cross-canadian_13.4.bb} (100%) rename meta/recipes-devtools/gcc/{gcc-cross_13.3.bb => gcc-cross_13.4.bb} (100%) rename meta/recipes-devtools/gcc/{gcc-crosssdk_13.3.bb => gcc-crosssdk_13.4.bb} (100%) rename meta/recipes-devtools/gcc/{gcc-runtime_13.3.bb => gcc-runtime_13.4.bb} (100%) rename meta/recipes-devtools/gcc/{gcc-sanitizers_13.3.bb => gcc-sanitizers_13.4.bb} (100%) rename meta/recipes-devtools/gcc/{gcc-source_13.3.bb => gcc-source_13.4.bb} (100%) delete mode 100644 meta/recipes-devtools/gcc/gcc/0028-gcc-Fix-c-tweak-for-Wrange-loop-construct.patch delete mode 100644 meta/recipes-devtools/gcc/gcc/gcc.git-ab884fffe3fc82a710bea66ad651720d71c938b8.patch rename meta/recipes-devtools/gcc/{gcc_13.3.bb => gcc_13.4.bb} (100%) rename meta/recipes-devtools/gcc/{libgcc-initial_13.3.bb => libgcc-initial_13.4.bb} (100%) rename meta/recipes-devtools/gcc/{libgcc_13.3.bb => libgcc_13.4.bb} (100%) rename meta/recipes-devtools/gcc/{libgfortran_13.3.bb => libgfortran_13.4.bb} (100%) diff --git a/meta/conf/distro/include/maintainers.inc b/meta/conf/distro/include/maintainers.inc index 9548fcd258..3a51ad2139 100644 --- a/meta/conf/distro/include/maintainers.inc +++ b/meta/conf/distro/include/maintainers.inc @@ -190,7 +190,7 @@ RECIPE_MAINTAINER:pn-gcc-cross-canadian-${TRANSLATED_TARGET_ARCH} = "Khem Raj -Date: Wed, 11 Dec 2024 09:48:16 -0800 -Subject: [PATCH] gcc: Fix c++: tweak for Wrange-loop-construct - -This commit updates the warning to use a check for "trivially constructible" instead of -"trivially copyable." The original check was incorrect, as "trivially copyable" only applies -to types that can be copied trivially, whereas "trivially constructible" is the correct check -for types that can be trivially default-constructed. - -This change ensures the warning is more accurate and aligns with the proper type traits. - -LLVM accepted a similar fix: -https://github.com/llvm/llvm-project/issues/47355 - -PR c++/116731 [https://gcc.gnu.org/bugzilla/show_bug.cgi?id=116731] - -Upstream-Status: Backport [https://gcc.gnu.org/g:179dc0f0fe01012675c1b430591b9891ce96c26e] - -Signed-off-by: Marek Polacek -Signed-off-by: Sunil Dora ---- - gcc/cp/parser.cc | 7 ++- - .../g++.dg/warn/Wrange-loop-construct3.C | 57 +++++++++++++++++++ - 2 files changed, 61 insertions(+), 3 deletions(-) - create mode 100644 gcc/testsuite/g++.dg/warn/Wrange-loop-construct3.C - -diff --git a/gcc/cp/parser.cc b/gcc/cp/parser.cc -index 4e67da6ff..5dd94357d 100644 ---- a/gcc/cp/parser.cc -+++ b/gcc/cp/parser.cc -@@ -13854,11 +13854,12 @@ warn_for_range_copy (tree decl, tree expr) - else if (!CP_TYPE_CONST_P (type)) - return; - -- /* Since small trivially copyable types are cheap to copy, we suppress the -- warning for them. 64B is a common size of a cache line. */ -+ /* Since small trivially constructible types are cheap to construct, we -+ suppress the warning for them. 64B is a common size of a cache line. */ -+ tree list = build_tree_list (NULL_TREE, TREE_TYPE (expr)); - if (TREE_CODE (TYPE_SIZE_UNIT (type)) != INTEGER_CST - || (tree_to_uhwi (TYPE_SIZE_UNIT (type)) <= 64 -- && trivially_copyable_p (type))) -+ && is_trivially_xible (INIT_EXPR, type, list))) - return; - - /* If we can initialize a reference directly, suggest that to avoid the -diff --git a/gcc/testsuite/g++.dg/warn/Wrange-loop-construct3.C b/gcc/testsuite/g++.dg/warn/Wrange-loop-construct3.C -new file mode 100644 -index 000000000..3d9d0c908 ---- /dev/null -+++ b/gcc/testsuite/g++.dg/warn/Wrange-loop-construct3.C -@@ -0,0 +1,57 @@ -+// PR c++/116731 -+// { dg-do compile { target c++11 } } -+// { dg-options "-Wrange-loop-construct" } -+ -+void -+f0 () -+{ -+ struct S { -+ char a[64]; -+ S& operator=(const S&) { return *this; }; -+ }; -+ -+ S arr[8]; -+ for (const auto r : arr) -+ (void) r; -+} -+ -+void -+f1 () -+{ -+ struct S { -+ char a[65]; -+ S& operator=(const S&) { return *this; }; -+ }; -+ -+ S arr[8]; -+ for (const auto r : arr) // { dg-warning "creates a copy" } -+ (void) r; -+} -+ -+void -+f2 () -+{ -+ struct S { -+ char a[64]; -+ S& operator=(const S&) { return *this; }; -+ ~S() { } -+ }; -+ -+ S arr[8]; -+ for (const auto r : arr) // { dg-warning "creates a copy" } -+ (void) r; -+} -+ -+void -+f3 () -+{ -+ struct S { -+ char a[65]; -+ S& operator=(const S&) { return *this; }; -+ ~S() { } -+ }; -+ -+ S arr[8]; -+ for (const auto r : arr) // { dg-warning "creates a copy" } -+ (void) r; -+} --- -2.43.0 - diff --git a/meta/recipes-devtools/gcc/gcc/gcc.git-ab884fffe3fc82a710bea66ad651720d71c938b8.patch b/meta/recipes-devtools/gcc/gcc/gcc.git-ab884fffe3fc82a710bea66ad651720d71c938b8.patch deleted file mode 100644 index e5abdcc703..0000000000 --- a/meta/recipes-devtools/gcc/gcc/gcc.git-ab884fffe3fc82a710bea66ad651720d71c938b8.patch +++ /dev/null @@ -1,549 +0,0 @@ -From ab884fffe3fc82a710bea66ad651720d71c938b8 Mon Sep 17 00:00:00 2001 -From: Jonathan Wakely -Date: Tue, 30 Apr 2024 09:52:13 +0100 -Subject: [PATCH] libstdc++: Fix std::chrono::tzdb to work with vanguard format - -I found some issues in the std::chrono::tzdb parser by testing the -tzdata "vanguard" format, which uses new features that aren't enabled in -the "main" and "rearguard" data formats. - -Since 2024a the keyword "minimum" is no longer valid for the FROM and TO -fields in a Rule line, which means that "m" is now a valid abbreviation -for "maximum". Previously we expected either "mi" or "ma". For backwards -compatibility, a FROM field beginning with "mi" is still supported and -is treated as 1900. The "maximum" keyword is only allowed in TO now, -because it makes no sense in FROM. To support these changes the -minmax_year and minmax_year2 classes for parsing FROM and TO are -replaced with a single years_from_to class that reads both fields. - -The vanguard format makes use of %z in Zone FORMAT fields, which caused -an exception to be thrown from ZoneInfo::set_abbrev because no % or / -characters were expected when a Zone doesn't use a named Rule. The -ZoneInfo::to(sys_info&) function now uses format_abbrev_str to replace -any %z with the current offset. Although format_abbrev_str also checks -for %s and STD/DST formats, those only make sense when a named Rule is -in effect, so won't occur when ZoneInfo::to(sys_info&) is used. - -Since making this change on trunk, the tzdata-2024b release started -using %z in the main format, not just vanguard. This makes a backport to -release branches necessary (see PR 116657). - -This change also implements a feature that has always been missing from -time_zone::_M_get_sys_info: finding the Rule that is active before the -specified time point, so that we can correctly handle %s in the FORMAT -for the first new sys_info that gets created. This requires implementing -a poorly documented feature of zic, to get the LETTERS field from a -later transition, as described at -https://mm.icann.org/pipermail/tz/2024-April/058891.html -In order for this to work we need to be able to distinguish an empty -letters field (as used by CE%sT where the variable part is either empty -or "S") from "the letters field is not known for this transition". The -tzdata file uses "-" for an empty letters field, which libstdc++ was -previously replacing with "" when the Rule was parsed. Instead, we now -preserve the "-" in the Rule object, so that "" can be used for the case -where we don't know the letters (and so need to decide it). - -(cherry picked from commit 0ca8d56f2085715f27ee536c6c344bc47af49cdd) - -Upstream-Status: Backport [https://gcc.gnu.org/git/gitweb.cgi?p=gcc.git;h=5ceea2ac106d6dd1aa8175670b15a801316cf1c9] - -Signed-off-by: Markus Volk ---- - libstdc++-v3/src/c++20/tzdb.cc | 265 +++++++++++------- - .../std/time/time_zone/sys_info_abbrev.cc | 106 +++++++ - libstdc++-v3/testsuite/std/time/tzdb/1.cc | 6 +- - 3 files changed, 274 insertions(+), 103 deletions(-) - create mode 100644 libstdc++-v3/testsuite/std/time/time_zone/sys_info_abbrev.cc - -diff --git a/libstdc++-v3/src/c++20/tzdb.cc b/libstdc++-v3/src/c++20/tzdb.cc -index c7c7cc9deee6..7e8cce7ce8cf 100644 ---- a/libstdc++-v3/src/c++20/tzdb.cc -+++ b/libstdc++-v3/src/c++20/tzdb.cc -@@ -342,51 +342,103 @@ namespace std::chrono - friend istream& operator>>(istream&, on_day&); - }; - -- // Wrapper for chrono::year that reads a year, or one of the keywords -- // "minimum" or "maximum", or an unambiguous prefix of a keyword. -- struct minmax_year -+ // Wrapper for two chrono::year values, which reads the FROM and TO -+ // fields of a Rule line. The FROM field is a year and TO is a year or -+ // one of the keywords "maximum" or "only" (or an abbreviation of those). -+ // For backwards compatibility, the keyword "minimum" is recognized -+ // for FROM and interpreted as 1900. -+ struct years_from_to - { -- year& y; -+ year& from; -+ year& to; - -- friend istream& operator>>(istream& in, minmax_year&& y) -+ friend istream& operator>>(istream& in, years_from_to&& yy) - { -- if (ws(in).peek() == 'm') // keywords "minimum" or "maximum" -+ string s; -+ auto c = ws(in).peek(); -+ if (c == 'm') [[unlikely]] // keyword "minimum" - { -- string s; -- in >> s; // extract the rest of the word, but only look at s[1] -- if (s[1] == 'a') -- y.y = year::max(); -- else if (s[1] == 'i') -- y.y = year::min(); -- else -- in.setstate(ios::failbit); -+ in >> s; // extract the rest of the word -+ yy.from = year(1900); -+ } -+ else if (int num = 0; in >> num) [[likely]] -+ yy.from = year{num}; -+ -+ c = ws(in).peek(); -+ if (c == 'm') // keyword "maximum" -+ { -+ in >> s; // extract the rest of the word -+ yy.to = year::max(); -+ } -+ else if (c == 'o') // keyword "only" -+ { -+ in >> s; // extract the rest of the word -+ yy.to = yy.from; - } - else if (int num = 0; in >> num) -- y.y = year{num}; -+ yy.to = year{num}; -+ - return in; - } - }; - -- // As above for minmax_year, but also supports the keyword "only", -- // meaning that the TO year is the same as the FROM year. -- struct minmax_year2 -+ bool -+ select_std_or_dst_abbrev(string& abbrev, minutes save) - { -- minmax_year to; -- year from; -+ if (size_t pos = abbrev.find('/'); pos != string::npos) -+ { -+ // Select one of "STD/DST" for standard or daylight. -+ if (save == 0min) -+ abbrev.erase(pos); -+ else -+ abbrev.erase(0, pos + 1); -+ return true; -+ } -+ return false; -+ } - -- friend istream& operator>>(istream& in, minmax_year2&& y) -- { -- if (ws(in).peek() == 'o') // keyword "only" -- { -- string s; -- in >> s; // extract the whole keyword -- y.to.y = y.from; -- } -- else -- in >> std::move(y.to); -- return in; -- } -- }; -+ // Set the sys_info::abbrev string by expanding any placeholders. -+ void -+ format_abbrev_str(sys_info& info, string_view letters = {}) -+ { -+ if (size_t pos = info.abbrev.find('%'); pos != string::npos) -+ { -+ if (info.abbrev[pos + 1] == 's') -+ { -+ // Expand "%s" to the variable part, given by Rule::letters. -+ if (letters == "-") -+ info.abbrev.erase(pos, 2); -+ else -+ info.abbrev.replace(pos, 2, letters); -+ } -+ else if (info.abbrev[pos + 1] == 'z') -+ { -+ // Expand "%z" to the UT offset as +/-hh, +/-hhmm, or +/-hhmmss. -+ hh_mm_ss t(info.offset); -+ string z(1, "+-"[t.is_negative()]); -+ long val = t.hours().count(); -+ int digits = 2; -+ if (int m = t.minutes().count()) -+ { -+ digits = 4; -+ val *= 100; -+ val += m; -+ if (int s = t.seconds().count()) -+ { -+ digits = 6; -+ val *= 100; -+ val += s; -+ } -+ } -+ auto sval = std::to_string(val); -+ z += string(digits - sval.size(), '0'); -+ z += sval; -+ info.abbrev.replace(pos, 2, z); -+ } -+ } -+ else -+ select_std_or_dst_abbrev(info.abbrev, info.save); -+ } - - // A time zone information record. - // Zone NAME STDOFF RULES FORMAT [UNTIL] -@@ -462,6 +514,7 @@ namespace std::chrono - info.offset = offset(); - info.save = minutes(m_save); - info.abbrev = format(); -+ format_abbrev_str(info); // expand %z - return true; - } - -@@ -469,12 +522,9 @@ namespace std::chrono - friend class time_zone; - - void -- set_abbrev(const string& abbrev) -+ set_abbrev(string abbrev) - { -- // In practice, the FORMAT field never needs expanding here. -- if (abbrev.find_first_of("/%") != abbrev.npos) -- __throw_runtime_error("std::chrono::time_zone: invalid data"); -- m_buf = abbrev; -+ m_buf = std::move(abbrev); - m_pos = 0; - m_expanded = true; - } -@@ -544,9 +594,7 @@ namespace std::chrono - - // Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S - -- in >> quoted(rule.name) -- >> minmax_year{rule.from} -- >> minmax_year2{rule.to, rule.from}; -+ in >> quoted(rule.name) >> years_from_to{rule.from, rule.to}; - - if (char type; in >> type && type != '-') - in.setstate(ios::failbit); -@@ -557,7 +605,7 @@ namespace std::chrono - if (save_time.indicator != at_time::Wall) - { - // We don't actually store the save_time.indicator, because we -- // assume that it's always deducable from the actual offset value. -+ // assume that it's always deducible from the offset value. - auto expected = save_time.time == 0s - ? at_time::Standard - : at_time::Daylight; -@@ -567,8 +615,6 @@ namespace std::chrono - rule.save = save_time.time; - - in >> rule.letters; -- if (rule.letters == "-") -- rule.letters.clear(); - return in; - } - -@@ -719,58 +765,6 @@ namespace std::chrono - #endif // TZDB_DISABLED - }; - --#ifndef TZDB_DISABLED -- namespace -- { -- bool -- select_std_or_dst_abbrev(string& abbrev, minutes save) -- { -- if (size_t pos = abbrev.find('/'); pos != string::npos) -- { -- // Select one of "STD/DST" for standard or daylight. -- if (save == 0min) -- abbrev.erase(pos); -- else -- abbrev.erase(0, pos + 1); -- return true; -- } -- return false; -- } -- -- // Set the sys_info::abbrev string by expanding any placeholders. -- void -- format_abbrev_str(sys_info& info, string_view letters = {}) -- { -- if (size_t pos = info.abbrev.find("%s"); pos != string::npos) -- { -- // Expand "%s" to the variable part, given by Rule::letters. -- info.abbrev.replace(pos, 2, letters); -- } -- else if (size_t pos = info.abbrev.find("%z"); pos != string::npos) -- { -- // Expand "%z" to the UT offset as +/-hh, +/-hhmm, or +/-hhmmss. -- hh_mm_ss t(info.offset); -- string z(1, "+-"[t.is_negative()]); -- long val = t.hours().count(); -- if (minutes m = t.minutes(); m != m.zero()) -- { -- val *= 100; -- val += m.count(); -- if (seconds s = t.seconds(); s != s.zero()) -- { -- val *= 100; -- val += s.count(); -- } -- } -- z += std::to_string(val); -- info.abbrev.replace(pos, 2, z); -- } -- else -- select_std_or_dst_abbrev(info.abbrev, info.save); -- } -- } --#endif // TZDB_DISABLED -- - // Implementation of std::chrono::time_zone::get_info(const sys_time&) - sys_info - time_zone::_M_get_sys_info(sys_seconds tp) const -@@ -839,12 +833,72 @@ namespace std::chrono - info.abbrev = ri.format(); - - string_view letters; -- if (i != infos.begin()) -+ if (i != infos.begin() && i[-1].expanded()) -+ letters = i[-1].next_letters(); -+ -+ if (letters.empty()) - { -- if (i[-1].expanded()) -- letters = i[-1].next_letters(); -- // XXX else need to find Rule active before this time and use it -- // to know the initial offset, save, and letters. -+ sys_seconds t = info.begin - seconds(1); -+ const year_month_day date(chrono::floor(t)); -+ -+ // Try to find a Rule active before this time, to get initial -+ // SAVE and LETTERS values. There may not be a Rule for the period -+ // before the first DST transition, so find the earliest DST->STD -+ // transition and use the LETTERS from that. -+ const Rule* active_rule = nullptr; -+ sys_seconds active_rule_start = sys_seconds::min(); -+ const Rule* first_std = nullptr; -+ for (const auto& rule : rules) -+ { -+ if (rule.save == minutes(0)) -+ { -+ if (!first_std) -+ first_std = &rule; -+ else if (rule.from < first_std->from) -+ first_std = &rule; -+ else if (rule.from == first_std->from) -+ { -+ if (rule.start_time(rule.from, {}) -+ < first_std->start_time(first_std->from, {})) -+ first_std = &rule; -+ } -+ } -+ -+ year y = date.year(); -+ -+ if (y > rule.to) // rule no longer applies at time t -+ continue; -+ if (y < rule.from) // rule doesn't apply yet at time t -+ continue; -+ -+ sys_seconds rule_start; -+ -+ seconds offset{}; // appropriate for at_time::Universal -+ if (rule.when.indicator == at_time::Wall) -+ offset = info.offset; -+ else if (rule.when.indicator == at_time::Standard) -+ offset = ri.offset(); -+ -+ // Time the rule takes effect this year: -+ rule_start = rule.start_time(y, offset); -+ -+ if (rule_start >= t && rule.from < y) -+ { -+ // Try this rule in the previous year. -+ rule_start = rule.start_time(--y, offset); -+ } -+ -+ if (active_rule_start < rule_start && rule_start < t) -+ { -+ active_rule_start = rule_start; -+ active_rule = &rule; -+ } -+ } -+ -+ if (active_rule) -+ letters = active_rule->letters; -+ else if (first_std) -+ letters = first_std->letters; - } - - const Rule* curr_rule = nullptr; -@@ -2069,9 +2123,11 @@ namespace std::chrono - istringstream in2(std::move(rules)); - in2 >> rules_time; - inf.m_save = duration_cast(rules_time.time); -+ // If the FORMAT is "STD/DST" then we can choose the right one -+ // now, so that we store a shorter string. - select_std_or_dst_abbrev(fmt, inf.m_save); - } -- inf.set_abbrev(fmt); -+ inf.set_abbrev(std::move(fmt)); - } - - // YEAR [MONTH [DAY [TIME]]] -@@ -2082,7 +2138,12 @@ namespace std::chrono - abbrev_month m{January}; - int d = 1; - at_time t{}; -+ // XXX DAY should support ON format, e.g. lastSun or Sun>=8 - in >> m >> d >> t; -+ // XXX UNTIL field should be interpreted -+ // "using the rules in effect just before the transition" -+ // so might need to store as year_month_day and hh_mm_ss and only -+ // convert to a sys_time once we know the offset in effect. - inf.m_until = sys_days(year(y)/m.m/day(d)) + seconds(t.time); - } - else -diff --git a/libstdc++-v3/testsuite/std/time/time_zone/sys_info_abbrev.cc b/libstdc++-v3/testsuite/std/time/time_zone/sys_info_abbrev.cc -new file mode 100644 -index 000000000000..f1a8fff02f58 ---- /dev/null -+++ b/libstdc++-v3/testsuite/std/time/time_zone/sys_info_abbrev.cc -@@ -0,0 +1,106 @@ -+// { dg-do run { target c++20 } } -+// { dg-require-effective-target tzdb } -+// { dg-require-effective-target cxx11_abi } -+// { dg-xfail-run-if "no weak override on AIX" { powerpc-ibm-aix* } } -+ -+#include -+#include -+#include -+ -+static bool override_used = false; -+ -+namespace __gnu_cxx -+{ -+ const char* zoneinfo_dir_override() { -+ override_used = true; -+ return "./"; -+ } -+} -+ -+using namespace std::chrono; -+ -+void -+test_format() -+{ -+ std::ofstream("tzdata.zi") << R"(# version test_1 -+Zone Africa/Bissau -1:2:20 - LMT 1912 Ja 1 1u -+ -1 - %z 1975 -+ 0 - GMT -+Zon Some/Zone 1:2:3 - %z 1900 -+ 1:23:45 - %z 1950 -+Zo Another/Zone 1:2:3 - AZ0 1901 -+ 1 Roolz A%sZ 2000 -+ 1 Roolz SAZ/DAZ 2005 -+ 1 Roolz %z -+Rule Roolz 1950 max - April 1 2 1 D -+Rul Roolz 1950 max - Oct 1 1 0 S -+Z Strange/Zone 1 - X%sX 1980 -+ 1 - FOO/BAR 1990 -+ 2:00 - %zzz 1995 -+ 0:9 - %zzz 1996 -+ 0:8:7 - %zzz 1997 -+ 0:6:5.5 - %zzz 1998 -+)"; -+ -+ const auto& db = reload_tzdb(); -+ VERIFY( override_used ); // If this fails then XFAIL for the target. -+ VERIFY( db.version == "test_1" ); -+ -+ // Test formatting %z as -+ auto tz = locate_zone("Africa/Bissau"); -+ auto inf = tz->get_info(sys_days(1974y/1/1)); -+ VERIFY( inf.abbrev == "-01" ); -+ -+ tz = locate_zone("Some/Zone"); -+ inf = tz->get_info(sys_days(1899y/1/1)); -+ VERIFY( inf.abbrev == "+010203" ); -+ inf = tz->get_info(sys_days(1955y/1/1)); -+ VERIFY( inf.abbrev == "+012345" ); -+ -+ tz = locate_zone("Another/Zone"); -+ // Test formatting %s as the LETTER/S field from the active Rule. -+ inf = tz->get_info(sys_days(1910y/January/1)); -+ VERIFY( inf.abbrev == "ASZ" ); -+ inf = tz->get_info(sys_days(1950y/January/1)); -+ VERIFY( inf.abbrev == "ASZ" ); -+ inf = tz->get_info(sys_days(1950y/June/1)); -+ VERIFY( inf.abbrev == "ADZ" ); -+ inf = tz->get_info(sys_days(1999y/January/1)); -+ VERIFY( inf.abbrev == "ASZ" ); -+ inf = tz->get_info(sys_days(1999y/July/1)); -+ VERIFY( inf.abbrev == "ADZ" ); -+ // Test formatting STD/DST according to the active Rule. -+ inf = tz->get_info(sys_days(2000y/January/2)); -+ VERIFY( inf.abbrev == "SAZ" ); -+ inf = tz->get_info(sys_days(2001y/January/1)); -+ VERIFY( inf.abbrev == "SAZ" ); -+ inf = tz->get_info(sys_days(2001y/July/1)); -+ VERIFY( inf.abbrev == "DAZ" ); -+ // Test formatting %z as the offset determined by the active Rule. -+ inf = tz->get_info(sys_days(2005y/January/2)); -+ VERIFY( inf.abbrev == "+01" ); -+ inf = tz->get_info(sys_days(2006y/January/1)); -+ VERIFY( inf.abbrev == "+01" ); -+ inf = tz->get_info(sys_days(2006y/July/1)); -+ VERIFY( inf.abbrev == "+02" ); -+ -+ // Test formatting %z, %s and S/D for a Zone with no associated Rules. -+ tz = locate_zone("Strange/Zone"); -+ inf = tz->get_info(sys_days(1979y/January/1)); -+ VERIFY( inf.abbrev == "XX" ); // No Rule means nothing to use for %s. -+ inf = tz->get_info(sys_days(1981y/July/1)); -+ VERIFY( inf.abbrev == "FOO" ); // Always standard time means first string. -+ inf = tz->get_info(sys_days(1994y/July/1)); -+ VERIFY( inf.abbrev == "+02zz" ); -+ inf = tz->get_info(sys_days(1995y/July/1)); -+ VERIFY( inf.abbrev == "+0009zz" ); -+ inf = tz->get_info(sys_days(1996y/July/1)); -+ VERIFY( inf.abbrev == "+000807zz" ); -+ inf = tz->get_info(sys_days(1997y/July/1)); -+ VERIFY( inf.abbrev == "+000606zz" ); -+} -+ -+int main() -+{ -+ test_format(); -+} -diff --git a/libstdc++-v3/testsuite/std/time/tzdb/1.cc b/libstdc++-v3/testsuite/std/time/tzdb/1.cc -index 796f3a8b4256..7a31c1c20ba7 100644 ---- a/libstdc++-v3/testsuite/std/time/tzdb/1.cc -+++ b/libstdc++-v3/testsuite/std/time/tzdb/1.cc -@@ -39,11 +39,15 @@ test_locate() - const tzdb& db = get_tzdb(); - const time_zone* tz = db.locate_zone("GMT"); - VERIFY( tz != nullptr ); -- VERIFY( tz->name() == "Etc/GMT" ); - VERIFY( tz == std::chrono::locate_zone("GMT") ); - VERIFY( tz == db.locate_zone("Etc/GMT") ); - VERIFY( tz == db.locate_zone("Etc/GMT+0") ); - -+ // Since 2022f GMT is now a Zone and Etc/GMT a link instead of vice versa, -+ // but only when using the vanguard format. As of 2024a, the main and -+ // rearguard formats still have Etc/GMT as a Zone and GMT as a link. -+ VERIFY( tz->name() == "GMT" || tz->name() == "Etc/GMT" ); -+ - VERIFY( db.locate_zone(db.current_zone()->name()) == db.current_zone() ); - } - --- -2.43.5 - diff --git a/meta/recipes-devtools/gcc/gcc_13.3.bb b/meta/recipes-devtools/gcc/gcc_13.4.bb similarity index 100% rename from meta/recipes-devtools/gcc/gcc_13.3.bb rename to meta/recipes-devtools/gcc/gcc_13.4.bb diff --git a/meta/recipes-devtools/gcc/libgcc-initial_13.3.bb b/meta/recipes-devtools/gcc/libgcc-initial_13.4.bb similarity index 100% rename from meta/recipes-devtools/gcc/libgcc-initial_13.3.bb rename to meta/recipes-devtools/gcc/libgcc-initial_13.4.bb diff --git a/meta/recipes-devtools/gcc/libgcc_13.3.bb b/meta/recipes-devtools/gcc/libgcc_13.4.bb similarity index 100% rename from meta/recipes-devtools/gcc/libgcc_13.3.bb rename to meta/recipes-devtools/gcc/libgcc_13.4.bb diff --git a/meta/recipes-devtools/gcc/libgfortran_13.3.bb b/meta/recipes-devtools/gcc/libgfortran_13.4.bb similarity index 100% rename from meta/recipes-devtools/gcc/libgfortran_13.3.bb rename to meta/recipes-devtools/gcc/libgfortran_13.4.bb