From patchwork Thu Mar 5 13:16:22 2026 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Harish Sadineni X-Patchwork-Id: 82566 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 7B66CF3095C for ; Thu, 5 Mar 2026 13:16:53 +0000 (UTC) Received: from mx0b-0064b401.pphosted.com (mx0b-0064b401.pphosted.com [205.220.178.238]) by mx.groups.io with SMTP id smtpd.msgproc02-g2.43845.1772716603488091491 for ; Thu, 05 Mar 2026 05:16:46 -0800 Authentication-Results: mx.groups.io; dkim=fail reason="dkim: body hash did not verify" header.i=@windriver.com header.s=PPS06212021 header.b=GsETUKIj; 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=7524e93aa8=harish.sadineni@windriver.com) Received: from pps.filterd (m0250812.ppops.net [127.0.0.1]) by mx0a-0064b401.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 62567LG42369690 for ; Thu, 5 Mar 2026 13:16:42 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=windriver.com; h=cc:content-transfer-encoding:content-type:date:from :message-id:mime-version:subject:to; s=PPS06212021; bh=tNhB3l3bB mzjhHHv0T2p+MDL4ASSq1+vFh3wImiPI7A=; b=GsETUKIjh5f4aCWjmoymhqnmI cSmDvmfcWUGzWUHrQJq8Dpq12fv7kVMQhOHtzEJ5Nntw3X4tVGNzVm3V1bQkUocq YTEI1SKGWKBasB1eP8+YXihOQir1AVh4El1D7Z/khFgs7pXi7aCxkSbGlvGWxh39 LK4ubrSu9Mvs8IwgwcPxCflzFSNQGIx7B0jXd+xvKRI4lcmGHNDkyTK3j1xDOB0V /vg9ce0A5h748llJYjinGqsn1FhJvtaxK/CfTqsF2J7Btgu0YKZHtaxZzUen2wni OaPfR+vO8Clq8++FudNsdOsvKWyIvPUqJGMYvG6Xi+Thu/4g/yQhYzrO2utzg== Received: from ph7pr06cu001.outbound.protection.outlook.com (mail-westus3azon11010058.outbound.protection.outlook.com [52.101.201.58]) by mx0a-0064b401.pphosted.com (PPS) with ESMTPS id 4ckqb4pd6e-1 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NOT) for ; Thu, 05 Mar 2026 13:16:42 +0000 (GMT) ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=g/TdSogTl9akeeZG7C3NiJ9tIjRut9cLdgLr/MEbX6cSvGOZQ1SPQMKk5dECjOFYSiu0QgwBcwQTAccM3FjP6OCZmu/MnVODYEuiayVIAtaYS7nQoUuoy/aghPWD2FjU0ZMEYIYIpJkZeaNdPTXauLCS58OlKU50s9QboJQ7U6Ihk0i3+REAeRVtGvGY+0ZUMbi6XifS3s/6+aG7rY6ti1Hj2rk/cMYqdfDQtLsAoH5PiVDWf3W8vs+Y7xq2438KAnMcw6k+FSLRkxTZzAKWPvBiJCWifFK89gHOV4bHsDaI60Y7djxXIJYgc+ST+aCMpnhFTC2kSyqeWYK9rRtSaw== 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=tNhB3l3bBmzjhHHv0T2p+MDL4ASSq1+vFh3wImiPI7A=; b=MCqaJ+Yww2Z2Ic4N8ozbj0SMpErhW3zWvp8xzbdI+OfJyV4zTm0+kJuopziKRfOfn4/Fc6oh9FSisa8A4QG5UH09lJdEoGoVmwQnVHI/WUqjzu7luj3Y9StVvyjXxdvKc1a2993kU2DP8lbK07iZl5TLAH5CP/xnleCTKQ8mmHzkJYL4GtjVWbM/MFc1TCEX8LeIoNozbG/2oLlmIgJLuOS8K9p8bObczahbzKOB8cY68LJjG7tNZF9IVisr0ZODZzMG14e0NUUY42ozYbFrKYIFfJjQ3z9/6lqV6fuUuh8+/RsuSwZSSalz3M2LQON6DUbqtSRbct2HP1TNhfMogA== 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 PH0PR11MB5658.namprd11.prod.outlook.com (2603:10b6:510:e2::23) by BN9PR11MB5292.namprd11.prod.outlook.com (2603:10b6:408:119::12) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9678.17; Thu, 5 Mar 2026 13:16:39 +0000 Received: from PH0PR11MB5658.namprd11.prod.outlook.com ([fe80::6852:6964:54d3:49c9]) by PH0PR11MB5658.namprd11.prod.outlook.com ([fe80::6852:6964:54d3:49c9%4]) with mapi id 15.20.9678.017; Thu, 5 Mar 2026 13:16:39 +0000 From: Harish.Sadineni@windriver.com To: openembedded-core@lists.openembedded.org Cc: Sundeep.Kokkonda@windriver.com Subject: [PATCH] gcc: Fix gcc-libitm false positives in regression report Date: Thu, 5 Mar 2026 05:16:22 -0800 Message-ID: <20260305131622.1145822-1-Harish.Sadineni@windriver.com> X-Mailer: git-send-email 2.49.0 X-ClientProxiedBy: BY1P220CA0015.NAMP220.PROD.OUTLOOK.COM (2603:10b6:a03:5c3::10) To PH0PR11MB5658.namprd11.prod.outlook.com (2603:10b6:510:e2::23) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: PH0PR11MB5658:EE_|BN9PR11MB5292:EE_ X-MS-Office365-Filtering-Correlation-Id: bb1509af-32da-4ab0-44e1-08de7ab96f83 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|52116014|376014|1800799024|366016|38350700014|13003099007; X-Microsoft-Antispam-Message-Info: irUjAhDTecHabx1fU+fow2GuLTwf9iKaMEYFILL/hm/8JdR8Ghh32+lf4zQryHbgS0qVUqZKfois7ntznG7S9CPbskYWxFDJvT7voi2S3B9fqF8/kcQMqPFEjCtiKHEllNlxxNYsrggNTbRTRmCCFgd4xUyw2yzvABtGS0beOHrWw+ZzPex+JbYYoyA+fxlneXSs+QqctotbQ+PcdNL2W4NuOK7id4Bo09kp4HkmBtw9IvgT9D2k39mm5AdjzLqtLIC3JDbIYVIvkum08xufEoKKvuBFffDznoSg/OQNvH+Gux+EpaBjfunQbeW7YtgR+FGOrESv/U3I0GsLJl8hnGeTHuBUCenyAy8sIOqUcsa0Gegnlcoux+ByuF4JUpS9UnJEMf5RUjUyFhmVWA3n9ea5QZNTMbaxOUWsJnb3X1OL9Y2aLTYtm5DV2XfI43aVTyUDvC28UEeD+FhOiczPxB8E04kNd3iP+z76wXFwQAjV32lFl44RZfKo0cd0gi/sNjks5DRA2oqEItRkn9wzX4BEXJYgGZWLfqFqOLV9Y+C1ZWHrxSc7oFzpKaMn2qxwaUnK6q2TBBTA0svZ8ZnrSy5npGuKw4Bd/pXTzA3tG3POv/KSnb2+o981aQ2OknTahQyA9o11iPX5Zt9lJioNQvxCIwKgWvqaom2+HIgPELBoF6zF1Or4zVCxOUpD4h0K752F+YkvijlAMTV0OG5aGSloNjc2Y8XrhsohZJ4bn0oIiYYsq3BBYjw0FuFpRnES2Ug4NqDFY60cmbC4oA3ZA2wEzRSCqRmsMS4dFv9suVA= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PH0PR11MB5658.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(52116014)(376014)(1800799024)(366016)(38350700014)(13003099007);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?q?9+mP7YNNaKrB6fdAVBL3fZVkytmv?= =?utf-8?q?FdolM60kcHCjGaKmQ16hD2xcZiXwXYSD4Zmska9qcHEyvqIMv1xVCdtCY+G2r49ng?= =?utf-8?q?x9a465kioSFyLZf8mQ97KSiXB0QUUkBGHdgGtAbxgiA9/s4Dtb3xrx1dZ5EEEYJGN?= =?utf-8?q?gsQOLWeiHVOswnpiXPNaJJ66/ykJJN8ys/GWBF6yU8rN/wREQefF6Vrn2413NNTzI?= =?utf-8?q?oG5LKVA6gzaPLCb3juU6NHgW+m1qRFUxgDckg3YzKfonUY1yLwWJPJKif7DxcqJDy?= =?utf-8?q?uPhl+AaSWhh2wBtt4p/IDC9Cwx+ioTNyayfamAfLfpbeQFCLhBp8Kbn1jgPKIsaqE?= =?utf-8?q?HYYBTaMm98ion+qvxIjcZLSAmecDEJj3a2p1FGOy4Z5RNXnA+WQlTDr4P/fybdqPS?= =?utf-8?q?T01hj+larN4FpqAie/fO/59S8SFF8MHYJa5BaOYBclyD1NO11v+RO8FV5J/KDw4lj?= =?utf-8?q?oYuBpb2Ss1etXkJR0ltHwOuIw5MIJUNl0waPXhffJNfH6zLp3LibMytOhDcbOGs69?= =?utf-8?q?vzgEKIsbZ3r0plbIijbDa51FUm8WZi6PFyooSivVsoWfrejBw2mhp0XBRoyBYLX6d?= =?utf-8?q?9N+3KsjsK9NhpmVBvi0W8LIePXy8OujKn5SfUbmICmc5P96G1hkV81WUDY9tslaxe?= =?utf-8?q?DYWjRbCsJxeDTW8BcA/mouVBNWbXDrVkZ8Y6vnqaOvKpghoucp2PqsSRpMUEZXPae?= =?utf-8?q?bXZwrjm+AXvlD/samXHsSAVDSUaMILAvZtJ0j95eHp5kTZljCVlKmtN317MYyc0Fy?= =?utf-8?q?vOMGIZss+z+bCP2maAhyWVcky1pq1YhXFcMTxsJxNkZ4hKE/A8vWG+PzyMflIalQx?= =?utf-8?q?UldBT/oli8BFG8alUtxpwecqRly+jMl9+0+Hml5LlDIYGuX4wm/DdaOvrFrvVx7e3?= =?utf-8?q?vbjl2BhnS1krX7LFk85rjB5hmX8A8pu6b/JjEegfM1izGq2urARPNpkQQq9/zcqCM?= =?utf-8?q?WIY7SRbPvTuiprrMY0KcQAaDXTRtlekBq2X7Q0Mpu2FbFKsZgTvPUdcbhtw7y8/yz?= =?utf-8?q?WWf7OXXnML+Hq2/KpPyC9BKgaCJvEPm123A2DJoajIKLJRikaOBAWo+h6M0IiqspB?= =?utf-8?q?yQC87vTbf6QALyT63IYZV9IDtTGwtERdJ7Op0kyQXJnBCyKPrIRCgdeH1sgG6H3g8?= =?utf-8?q?rw2sdpzfdQ2qtWuDT4pmmqXcBlK7N8JpcABjRTCB5A4Ouq72C0iarsmLsBmfUR+XQ?= =?utf-8?q?2ZsOl7zF4IeVnBKl1Ns74U68WeCRZcwqUQNcRaepIcpj/wgm2f0MeBmyCsMhWjYlv?= =?utf-8?q?ihtoFWqeuFdldYAZJmNmLPKzoinJpIWW8881t0Blim4omoIS/pUiyrn/PLFC18WXv?= =?utf-8?q?dne3IkysglP7ZZNfhhlQyn0GgBYhTrNxF0yNo8TVR8Je6tDb9tF4yvxE3TJsODq8j?= =?utf-8?q?ToeDZjhLBftWOrqIdWWsLEyQjkmXGBkvOIwW8o3vMraMpG6TcLPTIU62oDZj/Oa8k?= =?utf-8?q?LJqSzR8MHbKe7Facy8esYaUzUJAVIdbZ+TUOx2jmZIGc36Y3/WHskW+cnaAu8TUwL?= =?utf-8?q?foiqRM66sIO8A4qId5HN/6QL5Hp63rI4FZRBzn0OLQH0kahL8r9nlm4uPTSszqVGQ?= =?utf-8?q?HgvZFRRI5gSS5owavA2xOCYAl6cuX456CNNpGIiPKGQfejel612nZVNlX7Vn6Ge4V?= =?utf-8?q?MXIG/lQmPR8x2+BuavQ6lixm64hACxXKLIQ3abCncc8YXisiBJtUc=3D?= X-Exchange-RoutingPolicyChecked: deWnp2tkKa1FDJj9YBSaz2vFvyuDNp1MfyTX7oteoyYutOA8h+ER+P5ylEkYPRhts63zrSHxRLMpcZM7LrzR/gmC6/mYSMxHcebsGMNZhR4Li0BO65srpKImCNPiF4zvmo5lKqlPTSH2MFowhJwAjpDyq4LSO5uceUjL4dVkfVDh82bCB1fhdxmQg+omIra6SpNNFfDzt9fip67WlDmri5FaEH6n0eRbgStHHbW9u6BcCg8qLNvrjvvnYefft3ptG0EoxTTTxGyvqbInlSAyMWHFMviW30ThqipSDt9T1bFegMTzsc/zMA9JQjuRMnJjJQV5cKEYbCwMKF+E91XAEg== X-OriginatorOrg: windriver.com X-MS-Exchange-CrossTenant-Network-Message-Id: bb1509af-32da-4ab0-44e1-08de7ab96f83 X-MS-Exchange-CrossTenant-AuthSource: PH0PR11MB5658.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 05 Mar 2026 13:16:39.4596 (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: ILbEkBE3pIeCLQnJd0DXjHPlMMxwn81Tjb40qU+UGdY4cn4rGfB3G9SkuWY0m4OJ/fc+prjIlmK82tCy4OBgcPxWOPi/qMdag90Vqyz4tqQ= X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN9PR11MB5292 X-Authority-Analysis: v=2.4 cv=LqWfC3dc c=1 sm=1 tr=0 ts=69a9823a cx=c_pps a=jKN40M1qUjEArv1iOeQWeA==:117 a=6eWqkTHjU83fiwn7nKZWdM+Sl24=:19 a=z/mQ4Ysz8XfWz/Q5cLBRGdckG28=:19 a=lCpzRmAYbLLaTzLvsPZ7Mbvzbb8=:19 a=xqWC_Br6kY4A:10 a=IkcTkHD0fZMA:10 a=Yq5XynenixoA:10 a=VkNPw1HP01LnGYTKEx00:22 a=bi6dqmuHe4P4UrxVR6um:22 a=fTW__CHxibyLmBMfj2wP:22 a=mDV3o1hIAAAA:8 a=t7CeM3EgAAAA:8 a=9VPlPrzCAAAA:8 a=20KFwNOVAAAA:8 a=GjTQCA7N_HrbmuxK7fMA:9 a=3ZKOabzyN94A:10 a=QEXdDO2ut3YA:10 a=FdTzh2GWekK77mhwV6Dw:22 a=aK1hd8Lu7Q_i5nYwpAI3:22 X-Proofpoint-GUID: B4ifSTkoT5GzedxCN6_9_gEXV5M5peqf X-Proofpoint-ORIG-GUID: B4ifSTkoT5GzedxCN6_9_gEXV5M5peqf X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMzA1MDEwNSBTYWx0ZWRfX+UZwtJImFRx7 RDUWkMVnxiQcPuUisIsgy2HqG5qgTdEXbsR1fT8Di42tD3qv5FQpA4oCy4YtXEBUWaZDmmc3Yu3 rnK6LOXbRlpWlzn6Jwkfwcq4N8rOTvJ9S78CJ7YsEA+G9dIy/3xV2PkGU50VEiUr7SUjNqJ433z UxvHTgR31QnHxMomLz1w+2aZW2RdJrgs2fn2SWQyGopRkLefgzoniiNtvBhSMfwV9CBvYaQKDoX GdUuobXqO+LnXshuWMgUWRsx3NhSk3S6AprTrdx51NqJNG70znhUEbZTqGLbD+BepB6l1SYW6zD 9dbokGAxN4ck2UWsrixjQnjsUeqvj8BkK43nwpxA2yHkZVEWJOzeiRDvzlS1Cx8aGLYU18AGXXL nPRvsodZZ7MwdFQzu5wD8HQDVAQrQKGPBz6dJ4WubDLJH/e+1tArZRAONhoWrXH24aevuoN0kHn 9ZiPV+TziUOTWKOQOuw== 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-05_04,2026-03-04_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 suspectscore=0 lowpriorityscore=0 malwarescore=0 spamscore=0 adultscore=0 clxscore=1015 priorityscore=1501 phishscore=0 impostorscore=0 bulkscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2602130000 definitions=main-2603050105 X-MIME-Autoconverted: from 8bit to quoted-printable by mx0a-0064b401.pphosted.com id 62567LG42369690 List-Id: X-Webhook-Received: from 45-33-107-173.ip.linodeusercontent.com [45.33.107.173] by aws-us-west-2-korg-lkml-1.web.codeaurora.org with HTTPS for ; Thu, 05 Mar 2026 13:16:53 -0000 X-Groupsio-URL: https://lists.openembedded.org/g/openembedded-core/message/232490 From: Harish Sadineni Some of the gcc-libitm test cases include build paths (e.g. [1]) in their results. When comparing two build outputs, these embedded paths cause resulttool to incorrectly report regressions. [1] ptestresult.gcc-libitm-user.libitm.c++/dropref.C -B /srv/pokybuild/yocto-worker/qemuarm64-tc/build/build-st-64312/ ..../libitm/../libstdc++-v3/src/.libs (test for excess errors): PASS This leads to a false regression such as: PASS → No matching test result Upstream-Status: Backport [https://gcc.gnu.org/cgit/gcc/patch/?id=b129ff0880c6d10e0379b46889d01255ee8d1f82, https://gcc.gnu.org/cgit/gcc/patch/?id=66ce317036f2eb5aeb96d5e4b9e468799d7566b] Signed-off-by: Harish Sadineni --- meta/recipes-devtools/gcc/gcc-15.2.inc | 2 + ...028-fix-gcc-libitm-false-postives-01.patch | 187 +++++++++++++++ ...028-fix-gcc-libitm-false-postives-02.patch | 220 ++++++++++++++++++ 3 files changed, 409 insertions(+) create mode 100644 meta/recipes-devtools/gcc/gcc/0028-fix-gcc-libitm-false-postives-01.patch create mode 100644 meta/recipes-devtools/gcc/gcc/0028-fix-gcc-libitm-false-postives-02.patch diff --git a/meta/recipes-devtools/gcc/gcc-15.2.inc b/meta/recipes-devtools/gcc/gcc-15.2.inc index b02cc4fcb9..1508031424 100644 --- a/meta/recipes-devtools/gcc/gcc-15.2.inc +++ b/meta/recipes-devtools/gcc/gcc-15.2.inc @@ -74,6 +74,8 @@ SRC_URI = "${BASEURI} \ file://0025-gcc-testsuite-tweaks-for-mips-OE.patch \ file://0026-fix-pr90579-testcases.patch \ file://0027-gcc15-pr122394.patch \ + file://0028-fix-gcc-libitm-false-postives-01.patch \ + file://0028-fix-gcc-libitm-false-postives-02.patch \ file://0001-mapper-localhost-might-not-be-known.patch \ " diff --git a/meta/recipes-devtools/gcc/gcc/0028-fix-gcc-libitm-false-postives-01.patch b/meta/recipes-devtools/gcc/gcc/0028-fix-gcc-libitm-false-postives-01.patch new file mode 100644 index 0000000000..d8ed99adb5 --- /dev/null +++ b/meta/recipes-devtools/gcc/gcc/0028-fix-gcc-libitm-false-postives-01.patch @@ -0,0 +1,187 @@ +From b129ff0880c6d10e0379b46889d01255ee8d1f82 Mon Sep 17 00:00:00 2001 +From: Pietro Monteiro +Date: Fri, 30 Jan 2026 20:22:49 -0500 +Subject: libitm: testsuite: don't include libstdc++ paths in test names + [PR69018] + +Libitm C++ tests pass -B/full/path/to/build/libstc++/src/.libs on the +options argument to dg-runtest and the libstdc++ include paths as +the default-extra-options. This causes 2 problems: + +1) If a test uses `dg-options' then the libstdc++ include paths are +not passed to the compiler. + +2) The `-B/full/path/to/build/libstc++/src/.libs' gets added to the +test name. This makes comparing build done in different directories +harder because the hardcoded full path. + +Stop passing options and default-extra-options to dg-runtest and move +dealing with the path-releated flags to libitm_target_compile in +libitm.exp, where they are added to additional_flags. + +Also change the FSF address to the website in the license text. + +libitm/ChangeLog: + PR libitm/69018 + * testsuite/lib/libitm.exp (libitm_target_compile): Add + lang_include_flags and `-B${blddir}/${lang_library_paths}' to + additional_flags. + * testsuite/libitm.c++/c++.exp: Set lang_library_paths and lang_include_flags. + +Upstream-Status: Backport [https://gcc.gnu.org/cgit/gcc/patch/?id=b129ff0880c6d10e0379b46889d01255ee8d1f82] + +Signed-off-by: Pietro Monteiro +Signed-off-by: Harish Sadineni +--- + libitm/testsuite/lib/libitm.exp | 25 ++++++++++---- + libitm/testsuite/libitm.c++/c++.exp | 67 +++++++++++++++++-------------------- + 2 files changed, 48 insertions(+), 44 deletions(-) + +diff --git a/libitm/testsuite/lib/libitm.exp b/libitm/testsuite/lib/libitm.exp +index 0b3301537cee..69a49906d338 100644 +--- a/libitm/testsuite/lib/libitm.exp ++++ b/libitm/testsuite/lib/libitm.exp +@@ -9,8 +9,7 @@ + # 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, write to the Free Software +-# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. ++# along with this program; if not, see . + + # Damn dejagnu for not having proper library search paths for load_lib. + # We have to explicitly load everything that gcc-dg.exp wants to load. +@@ -193,14 +192,24 @@ proc libitm_target_compile { source dest type options } { + global gluefile wrap_flags + global ALWAYS_CFLAGS + global GCC_UNDER_TEST +- global lang_test_file +- global lang_library_path ++ global lang_library_paths + global lang_link_flags ++ global lang_include_flags + +- if { [info exists lang_test_file] } { +- if { $blddir != "" } { ++ if { [info exists lang_include_flags] } { ++ lappend options "additional_flags=${lang_include_flags}" ++ } ++ ++ if { [info exists lang_library_paths] } { ++ foreach lang_library_path $lang_library_paths { ++ # targets that use lib[...].a%s in their specs need a -B option ++ # for uninstalled testing. ++ lappend options "additional_flags=-B${blddir}/${lang_library_path}" + lappend options "ldflags=-L${blddir}/${lang_library_path}" + } ++ } ++ ++ if { [info exists lang_link_flags] } { + lappend options "ldflags=${lang_link_flags}" + } + +@@ -219,7 +228,9 @@ proc libitm_target_compile { source dest type options } { + set options [concat "$ALWAYS_CFLAGS" $options] + } + +- set options [dg-additional-files-options $options $source $dest $type] ++ if { $source != "" } { ++ set options [dg-additional-files-options $options $source $dest $type] ++ } + + set result [target_compile $source $dest $type $options] + +diff --git a/libitm/testsuite/libitm.c++/c++.exp b/libitm/testsuite/libitm.c++/c++.exp +index a1ce7ce4062e..90f3058e7249 100644 +--- a/libitm/testsuite/libitm.c++/c++.exp ++++ b/libitm/testsuite/libitm.c++/c++.exp +@@ -11,8 +11,7 @@ + # 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, write to the Free Software +-# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. ++# along with this program; if not, see . + + load_lib libitm-dg.exp + load_gcc_lib gcc-dg.exp +@@ -33,48 +32,42 @@ set blddir [lookfor_file [get_multilibs] libitm] + + + if { $blddir != "" } { +- # Look for a static libstdc++ first. +- if [file exists "${blddir}/${lang_library_path}/libstdc++.a"] { +- set lang_test_file "${lang_library_path}/libstdc++.a" +- set lang_test_file_found 1 +- # We may have a shared only build, so look for a shared libstdc++. +- } elseif [file exists "${blddir}/${lang_library_path}/libstdc++.${shlib_ext}"] { +- set lang_test_file "${lang_library_path}/libstdc++.${shlib_ext}" +- set lang_test_file_found 1 +- } else { +- puts "No libstdc++ library found, will not execute c++ tests" ++ if { ![file exists "${blddir}/${lang_library_path}/libstdc++.a"] ++ && ![file exists "${blddir}/${lang_library_path}/libstdc++.${shlib_ext}"] } { ++ verbose -log "No libstdc++ library found, will not execute c++ tests" ++ unset lang_library_path ++ return + } +-} elseif { [info exists GXX_UNDER_TEST] } { +- set lang_test_file_found 1 +- # Needs to exist for libitm.exp. +- set lang_test_file "" ++ lappend lang_library_paths ${lang_library_path} ++} elseif { ![info exists GXX_UNDER_TEST] } { ++ verbose -log "GXX_UNDER_TEST not defined, will not execute c++ tests" ++ return ++} ++ ++# Gather a list of all tests. ++set tests [lsort [glob -nocomplain $srcdir/$subdir/*.C]] ++ ++if { $blddir != "" } { ++ set ld_library_path "$always_ld_library_path:${blddir}/${lang_library_path}" + } else { +- puts "GXX_UNDER_TEST not defined, will not execute c++ tests" ++ set ld_library_path "$always_ld_library_path" + } + +-if { $lang_test_file_found } { +- # Gather a list of all tests. +- set tests [lsort [glob -nocomplain $srcdir/$subdir/*.C]] ++append ld_library_path [gcc-set-multilib-library-path $GCC_UNDER_TEST] ++set_ld_library_path_env_vars + +- set stdcxxadder "" +- if { $blddir != "" } { +- set ld_library_path "$always_ld_library_path:${blddir}/${lang_library_path}" +- set stdcxxadder "-B ${blddir}/${lang_library_path}" +- } else { +- set ld_library_path "$always_ld_library_path" +- } +- append ld_library_path [gcc-set-multilib-library-path $GCC_UNDER_TEST] +- set_ld_library_path_env_vars ++set flags_file "${blddir}/../libstdc++-v3/scripts/testsuite_flags" ++if { [file exists $flags_file] } { ++ set lang_include_flags [exec sh $flags_file --build-includes] ++} + +- set flags_file "${blddir}/../libstdc++-v3/scripts/testsuite_flags" +- if { [file exists $flags_file] } { +- set libstdcxx_includes [exec sh $flags_file --build-includes] +- } else { +- set libstdcxx_includes "" +- } ++# Main loop. ++dg-runtest $tests "" "" + +- # Main loop. +- dg-runtest $tests $stdcxxadder $libstdcxx_includes ++if { $blddir != "" } { ++ unset lang_include_flags ++ unset lang_library_path ++ unset lang_library_paths + } + + # All done. +-- +cgit diff --git a/meta/recipes-devtools/gcc/gcc/0028-fix-gcc-libitm-false-postives-02.patch b/meta/recipes-devtools/gcc/gcc/0028-fix-gcc-libitm-false-postives-02.patch new file mode 100644 index 0000000000..67ed47ff51 --- /dev/null +++ b/meta/recipes-devtools/gcc/gcc/0028-fix-gcc-libitm-false-postives-02.patch @@ -0,0 +1,220 @@ +From 66ce317036f2eb5aeb96d5e4b9e468799d7566b6 Mon Sep 17 00:00:00 2001 +From: Pietro Monteiro +Date: Wed, 11 Feb 2026 11:55:13 -0500 +Subject: libitm: Fix recent libitm testsuite regression [PR69018] +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +The commit r16-7202-gb129ff0880c6d1 broke running libitm’s testsuite +using combinations of options because it didn’t clean up all the +global variables set in c++.exp. Fix the regression by using g++ for +the C++ tests and cleaning up the variables shared between C and C++ +tests. + +libitm/ChangeLog: + PR libitm/69018 + * testsuite/lib/libitm.exp (libitm_init): Check + GXX_UNDER_TEST. Add "${blddir}/.libs" to + always_ld_library_path if blddir is not empty. Use + "-fdiagnostics-plain-output". Don't set compiler to GCC_UNDER_TEST. + * testsuite/libitm.c++/c++.exp: If $blddir is not empty set + libstdc++_library_path, shlib_ext, lang_include_flags, add + "${blddir}/${lang_library_paths}" to ld_library_path. + Unset libstdc++_library_path and shlib_ext if we skip C++ + tests and at the end of the test run. + * testsuite/libitm.c/c.exp: Update the FSF address to the + website in the license text. Unset lang_library_paths and + lang_include_flags. Set the compiler to $GCC_UNDER_TEST. + +Upstream-Status: Backport [https://gcc.gnu.org/cgit/gcc/patch/?id=66ce317036f2eb5aeb96d5e4b9e468799d7566b6] + +Co-authored-by: Jakub Jelinek +Signed-off-by: Pietro Monteiro +Signed-off-by: Harish Sadineni +--- + libitm/testsuite/lib/libitm.exp | 21 +++++++++++++++---- + libitm/testsuite/libitm.c++/c++.exp | 42 ++++++++++++++----------------------- + libitm/testsuite/libitm.c/c.exp | 14 ++++++------- + 3 files changed, 40 insertions(+), 37 deletions(-) + +diff --git a/libitm/testsuite/lib/libitm.exp b/libitm/testsuite/lib/libitm.exp +index 69a49906d338..2de0f6cbf158 100644 +--- a/libitm/testsuite/lib/libitm.exp ++++ b/libitm/testsuite/lib/libitm.exp +@@ -79,7 +79,7 @@ proc libitm_init { args } { + global ALWAYS_CFLAGS + global CFLAGS + global TOOL_EXECUTABLE TOOL_OPTIONS +- global GCC_UNDER_TEST ++ global GCC_UNDER_TEST GXX_UNDER_TEST + global TESTING_IN_BUILD_TREE + global target_triplet + global always_ld_library_path +@@ -97,6 +97,17 @@ proc libitm_init { args } { + } else { + set GCC_UNDER_TEST "[find_gcc]" + } ++ # Only if we're guessing 'GCC_UNDER_TEST', we're also going to guess ++ # 'GXX_UNDER_TEST' ++ if ![info exists GXX_UNDER_TEST] then { ++ if [info exists TOOL_EXECUTABLE] { ++ set GXX_UNDER_TEST $TOOL_EXECUTABLE ++ } else { ++ set GXX_UNDER_TEST "[find_g++]" ++ } ++ } else { ++ error "GXX_UNDER_TEST set but not GCC_UNDER_TEST" ++ } + } + + if ![info exists tmpdir] { +@@ -119,7 +130,7 @@ proc libitm_init { args } { + } + + # Compute what needs to be put into LD_LIBRARY_PATH +- set always_ld_library_path ".:${blddir}/.libs" ++ set always_ld_library_path "." + + # Compute what needs to be added to the existing LD_LIBRARY_PATH. + if {$gccdir != ""} { +@@ -150,6 +161,8 @@ proc libitm_init { args } { + lappend ALWAYS_CFLAGS "additional_flags=-B${blddir}/" + lappend ALWAYS_CFLAGS "additional_flags=-I${blddir}" + lappend ALWAYS_CFLAGS "ldflags=-L${blddir}/.libs" ++ ++ append always_ld_library_path ":${blddir}/.libs" + } + lappend ALWAYS_CFLAGS "additional_flags=-I${srcdir}/.." + +@@ -179,7 +192,8 @@ proc libitm_init { args } { + # Turn on transactional memory support. + lappend ALWAYS_CFLAGS "additional_flags=-fgnu-tm" + +- lappend ALWAYS_CFLAGS "additional_flags=-fdiagnostics-color=never" ++ # Disable caret, color, URL diagnostics ++ lappend ALWAYS_CFLAGS "additional_flags=-fdiagnostics-plain-output" + } + + # +@@ -220,7 +234,6 @@ proc libitm_target_compile { source dest type options } { + + lappend options "additional_flags=[libio_include_flags]" + lappend options "timeout=[timeout_value]" +- lappend options "compiler=$GCC_UNDER_TEST" + + set options [concat $libitm_compile_options $options] + +diff --git a/libitm/testsuite/libitm.c++/c++.exp b/libitm/testsuite/libitm.c++/c++.exp +index 90f3058e7249..c24dc830bcc5 100644 +--- a/libitm/testsuite/libitm.c++/c++.exp ++++ b/libitm/testsuite/libitm.c++/c++.exp +@@ -16,39 +16,33 @@ + load_lib libitm-dg.exp + load_gcc_lib gcc-dg.exp + +-global shlib_ext +- +-set shlib_ext [get_shlib_extension] +-# The C++ tests should be linked with g++, which defaults to -shared-libgcc. +-# Doing that is currently too intrusive, so hardcode here. +-set lang_link_flags "-shared-libgcc -lstdc++" +-set lang_test_file_found 0 +-set lang_library_path "../libstdc++-v3/src/.libs" +- +-# Initialize dg. +-dg-init +- +-set blddir [lookfor_file [get_multilibs] libitm] +- +- + if { $blddir != "" } { +- if { ![file exists "${blddir}/${lang_library_path}/libstdc++.a"] +- && ![file exists "${blddir}/${lang_library_path}/libstdc++.${shlib_ext}"] } { ++ set libstdc++_library_path "../libstdc++-v3/src/.libs" ++ set shlib_ext [get_shlib_extension] ++ if { ![file exists "${blddir}/${libstdc++_library_path}/libstdc++.a"] ++ && ![file exists "${blddir}/${libstdc++_library_path}/libstdc++.${shlib_ext}"] } { + verbose -log "No libstdc++ library found, will not execute c++ tests" +- unset lang_library_path ++ unset libstdc++_library_path ++ unset shlib_ext + return + } +- lappend lang_library_paths ${lang_library_path} ++ lappend lang_library_paths ${libstdc++_library_path} + } elseif { ![info exists GXX_UNDER_TEST] } { + verbose -log "GXX_UNDER_TEST not defined, will not execute c++ tests" + return + } + ++lappend ALWAYS_CFLAGS "compiler=$GXX_UNDER_TEST" ++ ++# Initialize dg. ++dg-init ++ + # Gather a list of all tests. + set tests [lsort [glob -nocomplain $srcdir/$subdir/*.C]] + + if { $blddir != "" } { +- set ld_library_path "$always_ld_library_path:${blddir}/${lang_library_path}" ++ set lang_include_flags [exec sh ${blddir}/../libstdc++-v3/scripts/testsuite_flags --build-includes] ++ set ld_library_path "$always_ld_library_path:${blddir}/${lang_library_paths}" + } else { + set ld_library_path "$always_ld_library_path" + } +@@ -56,18 +50,14 @@ if { $blddir != "" } { + append ld_library_path [gcc-set-multilib-library-path $GCC_UNDER_TEST] + set_ld_library_path_env_vars + +-set flags_file "${blddir}/../libstdc++-v3/scripts/testsuite_flags" +-if { [file exists $flags_file] } { +- set lang_include_flags [exec sh $flags_file --build-includes] +-} +- + # Main loop. + dg-runtest $tests "" "" + + if { $blddir != "" } { + unset lang_include_flags +- unset lang_library_path ++ unset libstdc++_library_path + unset lang_library_paths ++ unset shlib_ext + } + + # All done. +diff --git a/libitm/testsuite/libitm.c/c.exp b/libitm/testsuite/libitm.c/c.exp +index daa71427d64c..7a697b870932 100644 +--- a/libitm/testsuite/libitm.c/c.exp ++++ b/libitm/testsuite/libitm.c/c.exp +@@ -9,20 +9,20 @@ + # 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, write to the Free Software +-# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. ++# along with this program; if not, see . + +-if [info exists lang_library_path] then { +- unset lang_library_path +- unset lang_link_flags ++if [info exists lang_library_paths] then { ++ unset lang_library_paths + } +-if [info exists lang_test_file] then { +- unset lang_test_file ++if [info exists lang_include_flags] then { ++ unset lang_include_flags + } + + load_lib libitm-dg.exp + load_gcc_lib gcc-dg.exp + ++lappend ALWAYS_CFLAGS "compiler=$GCC_UNDER_TEST" ++ + # If a testcase doesn't have special options, use these. + if ![info exists DEFAULT_CFLAGS] then { + set DEFAULT_CFLAGS "-O2" +-- +cgit