From patchwork Mon Oct 14 18:04:29 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Cupertino Miranda X-Patchwork-Id: 1997069 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@legolas.ozlabs.org Authentication-Results: legolas.ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=oracle.com header.i=@oracle.com header.a=rsa-sha256 header.s=corp-2023-11-20 header.b=dUp5h7Ut; dkim=pass (1024-bit key; unprotected) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.a=rsa-sha256 header.s=selector2-oracle-onmicrosoft-com header.b=fUs3v4H7; dkim-atps=neutral Authentication-Results: legolas.ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=gcc.gnu.org (client-ip=8.43.85.97; helo=server2.sourceware.org; envelope-from=gcc-patches-bounces~incoming=patchwork.ozlabs.org@gcc.gnu.org; receiver=patchwork.ozlabs.org) Received: from server2.sourceware.org (server2.sourceware.org [8.43.85.97]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (secp384r1) server-digest SHA384) (No client certificate requested) by legolas.ozlabs.org (Postfix) with ESMTPS id 4XS4rb4yMJz1xsc for ; Tue, 15 Oct 2024 05:05:03 +1100 (AEDT) Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id D9C5B385AC1F for ; Mon, 14 Oct 2024 18:05:01 +0000 (GMT) X-Original-To: gcc-patches@gcc.gnu.org Delivered-To: gcc-patches@gcc.gnu.org Received: from mx0b-00069f02.pphosted.com (mx0b-00069f02.pphosted.com [205.220.177.32]) by sourceware.org (Postfix) with ESMTPS id DF55A3858C66 for ; Mon, 14 Oct 2024 18:04:38 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org DF55A3858C66 Authentication-Results: sourceware.org; dmarc=pass (p=reject dis=none) header.from=oracle.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=oracle.com ARC-Filter: OpenARC Filter v1.0.0 sourceware.org DF55A3858C66 Authentication-Results: server2.sourceware.org; arc=pass smtp.remote-ip=205.220.177.32 ARC-Seal: i=2; a=rsa-sha256; d=sourceware.org; s=key; t=1728929081; cv=pass; b=pH/BKoCAMJ2wzf2IxnlcIz+04R+1EDnFTQS+CqhAxq3CjfdKD0lcYFg2orMb+Zw70LpdlT2vpNQ34WpIQ4uC8TCAxjHH7GvOWtt9Hx54KF4U7vSwG92J7CPIOosbgd/F758Dm/i8NNTMnFVVp3sb36rqVXPUQHG765gqvjoBP+4= ARC-Message-Signature: i=2; a=rsa-sha256; d=sourceware.org; s=key; t=1728929081; c=relaxed/simple; bh=0uhgTcV8erbjPJhWSMJ6K/PGyODo1B8CTLrzOAxPA70=; h=DKIM-Signature:DKIM-Signature:From:To:Subject:Date:Message-Id: MIME-Version; b=r8S4AUhk5OSfESKXLzRB2h5oYlIXJruMl1uXMWKEkgH+UMl0AK5rI2tmgzf0QrvWnOk0AUpCNVWfg146SgrrP/EcoNZAl9GNoT4sMHjYQPqQli/ye1IIDfc4UBw/eZyZ9hzV2bluQRGZjdDVPsvGSUx7WC4/FvdcQw1zfwEY8To= ARC-Authentication-Results: i=2; server2.sourceware.org Received: from pps.filterd (m0333520.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 49EEfmka021326 for ; Mon, 14 Oct 2024 18:04:38 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=cc :content-transfer-encoding:content-type:date:from:message-id :mime-version:subject:to; s=corp-2023-11-20; bh=6wK81gJx1Qhca/lQ NwVaCc6aaFKvmRtPvsJrKUHyurM=; b=dUp5h7UtYbabhQsXBA+no8PK/1YBLrhD omEywg6d9UZ5YHfpXQ3c9mW3wCwwLpVFUj6+dPzmVFfy6NCIx4mdHuGUfm+6byRE M1TFSkzeTIoI0hQamPGCw2bR/OT0D9KCSw8IQSRk20CRuW7z5K9HGNAUASqwd6AB weEaob0n6a4cwunzr6V5428i6+rig3Mr6z+zYgKHmpU93ZUdlzbca/rlY/ISHPd/ +Xuu3ol5XnKQLVe9rRYDeT/oK7CeHBBm9IVG5qpHV5XjzP02oKChEj8kg1cjJSsc Vd5tAiSW58j4WWrihn2yr4ToY3uSmCXGCKK/7yfZ7zx4T1eoYQ+l6A== Received: from phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta03.appoci.oracle.com [138.1.37.129]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 427h5cf75m-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK) for ; Mon, 14 Oct 2024 18:04:38 +0000 (GMT) Received: from pps.filterd (phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com [127.0.0.1]) by phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com (8.18.1.2/8.18.1.2) with ESMTP id 49EHwXY0014081 for ; Mon, 14 Oct 2024 18:04:37 GMT Received: from nam12-dm6-obe.outbound.protection.outlook.com (mail-dm6nam12lp2177.outbound.protection.outlook.com [104.47.59.177]) by phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com (PPS) with ESMTPS id 427fj6cxcd-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK) for ; Mon, 14 Oct 2024 18:04:37 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=SWKPEbT3RKOTXJGyLdnMgPuqOqD4PXbU//DUFMCrNcmACFZtySQC5twhsL7U55KW5VwK2ckjjuEsB0aZ7zMRLcYqbyd2hxXCx/Iw5XtPUhdEexAfAkI9aG0bkH62fvGgqXFlr/jb+Tfp7HBWsDypw8i3irL8xUC+xwpZkG0zKaZgI/sdrojiSunbQE2auVxcENKqe9SpFxJ4IjxiGwYEt2rFTtmQ/dxbBaHv4nXH1K+JtrKPUpjFI9Am7lgPp8RzcPo7y5pWtO5ipbbbWNtYWr/EMVt2NG/Hli0W2XrGwo93yMx8YFDsYJ+jULptTAle5p8UZQgWcO3f5nJDjFcUtQ== 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=6wK81gJx1Qhca/lQNwVaCc6aaFKvmRtPvsJrKUHyurM=; b=BK/5gO4gtS5QYtc4L8yT+o5GI1Bi0vL2PZ3xq3g/t8cmLqV9QurpcCEQyfW7GYqfgou1L8Vf5ZbypJ5J4TdlYR93p0iRhwjouvKfthUScqwlrxIb1EINn0uSNvp5StCSL41eP/3Z/fPpQSVAHm/gBgwtw8oJWNrhaZdCrACCrCAFNSaWHasY1sXIGiBT/Et+ahvn3viQD7zRNZsrR30iVOUARGG1gqePahrj3uenAxprq5n7j8sjZ6FUaMoaQUsNee4tAnakayAHMAsg10z8n+vKP0ZHL51zyWWM1+9+HPqtVr7A9TLWMvqzHuGuso7dP2Cb/O2DkUV40DkEqSnPVQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=oracle.com; dmarc=pass action=none header.from=oracle.com; dkim=pass header.d=oracle.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.onmicrosoft.com; s=selector2-oracle-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=6wK81gJx1Qhca/lQNwVaCc6aaFKvmRtPvsJrKUHyurM=; b=fUs3v4H7liCQiG9/zR1JSBg3L9E3aFM8DhDbzGtX/Z+5ypWrf0r+EMhW7ezRcY460alOepOd1A0tZNmSTDOkYa+ah8nCMtGcxspo4vLbIhaPWc1DzIGAif85lM9O8gU1BYzEE91E0Z5Dl1zqDKwNqKHdz3Y8Ep/xYPCJ6H59+4Q= Received: from MN2PR10MB4382.namprd10.prod.outlook.com (2603:10b6:208:1d7::13) by SA2PR10MB4458.namprd10.prod.outlook.com (2603:10b6:806:f8::24) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8048.26; Mon, 14 Oct 2024 18:04:34 +0000 Received: from MN2PR10MB4382.namprd10.prod.outlook.com ([fe80::5033:84a3:f348:fefb]) by MN2PR10MB4382.namprd10.prod.outlook.com ([fe80::5033:84a3:f348:fefb%7]) with mapi id 15.20.8048.020; Mon, 14 Oct 2024 18:04:34 +0000 From: Cupertino Miranda To: gcc-patches@gcc.gnu.org Cc: jose.marchesi@oracle.com, david.faust@oracle.com, elena.zannoni@oracle.com, Cupertino Miranda Subject: [PATCH v2] bpf: make sure CO-RE relocs are typed with struct BTF_KIND_STRUCT Date: Mon, 14 Oct 2024 19:04:29 +0100 Message-Id: <20241014180429.49963-1-cupertino.miranda@oracle.com> X-Mailer: git-send-email 2.30.2 X-ClientProxiedBy: LO0P123CA0011.GBRP123.PROD.OUTLOOK.COM (2603:10a6:600:354::15) To MN2PR10MB4382.namprd10.prod.outlook.com (2603:10b6:208:1d7::13) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: MN2PR10MB4382:EE_|SA2PR10MB4458:EE_ X-MS-Office365-Filtering-Correlation-Id: e4855ad7-c6eb-4ddd-cd63-08dcec7aa8cf X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; ARA:13230040|366016|376014|10070799003|1800799024; X-Microsoft-Antispam-Message-Info: JUGRIyELwr2J1I8SpDkxJyVAA0nZXbpgUhq/0s9u4zHH6Y1o+mTGGXVI/K9b9yBc8NZMBUhuPnWpWMI9NRWU12t5mh7uJRLFjZBuS3fmOVVcYVd1lnYfgfOT6GvVU9QTxHAih2yPdBJQCvC65nGyNNdwMF5sVto2uPJkkayF4BfIXaX/iTQiTZDl6BV7nkHSOo8qMQ7JqA+cJCR7NgzTesewj9kSmP/r66y16BVWWcMCYn1GdP79rwdtIxFkgx8O0BN/L/l9V9Ho3DElxh7Kaj+TiahbVVc//SX/m4qIlI5wK/0/r9RORIhBiXTDcUt14ZOGCF2yK9k4lJcCJ4FF4ClMggGXNol8/Sutalzvf4D46qMksggxmBO1/bQhitJ+T/B1SpAMCO2w0MCQ9sjXovX2Z/SdgFe/SWV7zemqJzZ81Wv08il3saX/lb3eHg2/uhhJcCCYMuIJct0ZOiW6ZldJF2CDiiI4jKX8MuFV+a0XNvDS8PS/b0oauA7SO+pTDCvsa0kxqiXLdTyeHFfQrzG5i75roXcEF7Xq26YXYxKKmWlPBRt6S8m2UNkW7vqm9rpn+0wvi3bSsfRO6NjBjv9SDkyiQj8x9UKjvvtGAyp+vqGQxiLG/LZjQD7zdYNRo8kCEk37l7pfjTNdFOTKBtC53S8DA+8guWkcpVwLkwFRiZZchbKWZ2zVjGB4alM2Wr9/I6cv/ljKNVccBx3EmW+Yf2m/nmev2Kg+tr0LKdwzbaMc4rFS54nfQpGneiY1PKbQJu8EouvGSsw1Ku+pdl3ZUzrYfS0yAA2e1uUkLCWzwxkpgzorGP4IJaFjmjDyecQCdQ3F0nh71IyTlwbV8lMWiNyQDgvI8qKZqrfhznnwWRWJiM0pP+zBWAAhHe1wxNM+KzfooW8uH5iHYL5SzrEC7sOkdSZKq/ocdQ/z6k+3e70v2/MuHCe38FRp0al4t5BdIb0RJf/FnspI8xQdxoSWQRc5O31dh7ip7+jXgad+cYlWjUyqa9K/3yVd/LPPZyJqovGxYk9gMc23c+ZtCdtDX0y/4pD0sWmfAuRUICmzP8iYVqrkAUmP68NccKcmPmJYnAiKVAlrNa5DU+wGkiBVro403Kd/XQ+B8L5ILbgyh3tRxe0dxkYVIsMkkdUlj+LSPvzgAPqXj5YaKQ6Tl4+pama2cv0jPbtRGRu1llZCQuy4nYyHxUNi/P6zyLR6LNNXjKJknx411hvV25B266i0J9lVksAd0NctrAKgdaPCwqJXTBvXjjiLVDLnCPX6BF9kmJNz3x//EZa9W0N+qQ== X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:MN2PR10MB4382.namprd10.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230040)(366016)(376014)(10070799003)(1800799024); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: 5fCN8gMlY7np5ukTw3GGfKoJW20ylw1FIy0gqc1tJbxt6Oj+ncuTJxQ7iFWAK3fwMOgwfy3710J499IiiWHIO0tnoRgWgz3Cd3DMlcBbCl8u+wjGTbu+DWOGNK3ZRQbDmtd3h+BTcjv7FTKwjZ1VlJzZRxZjrJ59urS/rnIoGxWLywIoe64OrjeR1K3VmN8bobj1vpKv6me4LERTAon/e3OzPwTUXhyRFdrS1jypTFtcJlIYf7/ZI2dTor6FMf2+8SCqBe2ze+eZa84/ue4KPR58XX1tnF1DGP5wLldkdvNzTJpiWabTxF7y4WNz44KZEs6UuzOtyYeaFUz8qZ9QPdZQS6v0Yo4pYdWYo61yXJdgKD6KtuNgCRpPKDOvBVJ2qb6CSud8ZpO1PIQ8UGy6asKk6scpq3g4tLTNHDB5CvGz5Zwe8oJYnkOuSmwjNPD3B1oKqt52C2zJvsWQkgM2Wp/E9BhoQDAnC7PNINWPF26R3ErVBvta30T78y9HVGxRGVNlO48t4IQv7uwN6/DS6L8bQRwDIQT4nByhOfpC3MQnDad4RTR9Z5FxSg0wcsmMDnEo1Suv3dIvnBtLN6Qy/rRx1uMKKInO09yIX5EM4MZKKdCHRzg/LNpQjh+Qd+59STspWiZIJQXl7uqUVJTopzJjEp5IqPlu2/CGqa6wjD5fp9IIhNFoA1bomOuR1oSAhb8VtqaqG6D1ssM1ndKsvu3WVoGJGjLXegEsfueYsHhmMHgNxcqZA9zEQt5xFLIeBe5tfn/uEPAjVOYFYSxeD9azU25m1CzOicWeozQQ1sf15Ou1i6hO/z6I4d7QWF8lR/EQ19uVOlweETnFlkTNgzTxJQGk605lOiKWmE24DuD3VwSLZhK5/3i9MexGByLh+BBoclF7yzlmFSAgAdhrb12REbKAfe/6ExJF03ea3BrgcPSqMJ3w8B4bFWiVYyv5yTAsNfhDcsa+VybF4oyQz5FtK3nKken9fIH0xfXevK9vKFymWtQbrU5XGfsCcVBjmECHTXbwW+glEujv+0oH5SWjqU+LivVPch6UoDA2UBMgHIB54Gf7lyijC8dXalRGqbj+1MN/LRaqLlcPzo5Jk3vK58HD5n5ouwYKaey5c5i9L1lJYtrhOUAYdZty7IZu4sbaRvMx9OWwXQkibubWUOkeUnbYBj1QVEiYcyQC6s88qGBsv/aqW4kUEhbEWCITTXtcW4UZLxUapyURECdSb98IJMmiqInyHhNrzPl+bsgmolOAiCy0fPXilEavRfOueHd6htDOdI2tnV6C735vcCydZhd+R2s6FdjeZI5cuotAdD29kcK79cYhaUqYSCaO7Pjf9OYYEkdE/JToJ+ZO+m5NLa8qWb3p2IUqCvtoWLw6X+niqgjHixaHss6uXDWILwJ9GZtMMbLbcU6K7lFPu+OeervfeoFzkUf9HLtoyGI1/wqVjFXDjk1KtvS3+xVVcvETyIdvjVbT6AZ5/lSzsnIfXWZ3kd0Y1Mzr9LcnTHR0/jyfB+ToFo+5do0k2LqA7/qJ67ZikkO8yHqy3QjNCLLUdcwabWTfAfhZzC2hk+r7X9iRP7fSNFt49QZhfqS3NvWk7e8r4N/iZvEHXEVwoUXuUqacXXmK08NG6aIhAQQ= X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: 4X5z1/6jL7oi+MDyj3qZQvAREUmXZ+3hew8TVpSWX0DJSvam4RAJ+UgDWa36/KWPQafto9qeVKmqMyi/PGyFn4/Edl1ZNNopeFjk+vBoERVNq0dLLvafrpt4u0NwDekZbQpFRQf6z2F8Ny+If1bPsm8OCk7RBEX0x7xYwUHROojkCe+ogFiGGHt9bwFCvyaM69uGmiP2obnR0pDebCEwNRVra32eOJDKzFGJnxmhDwB0GwRilxnSZRZYc1h+T8i2ZNhJGfv9WTeQkaerq8ciUXbcjhqn8SnlCNQRwC+2FtbQ93EXLkSIrdxsjrnMS9xK3bX+6gT4diS1GJflhGSKk6uJQSkBfypKbar1KROTbV/q3ieMsaUIrjsQPMCO+f1cZBbdLBJ4NmiSPyYCYCpbgsdqC1W5E2SEwr9Y1nv6w4F8RkLKoGrkpX4K4Xsjq1WB/k+DcUQHh2lEfLP0GPq8BZt5V8OngcDDz9zENPZOJvMzGUb47lVcPI/o8OIDFzSvEp5VfObPJYHl+XrXaezbinSFN08HRstMSF4xkki9NdGahWILW0xrx+PIL0KLHBpSdkuD84Sptz9t23L8vPhkerrj7WFi7JTDCsbdIvCU9yA= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: e4855ad7-c6eb-4ddd-cd63-08dcec7aa8cf X-MS-Exchange-CrossTenant-AuthSource: MN2PR10MB4382.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 14 Oct 2024 18:04:34.3768 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 4e2c6054-71cb-48f1-bd6c-3a9705aca71b X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: FwJ3NOD6W7MOOccLOYYHFEfGx+MWP49bgR3XHoce4lnHifJVLI0jqs+X7MkbDtw7HceH4gdmX8gIic0jSNIzhsiWEuR4AgcgBkkXisfyX4g= X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA2PR10MB4458 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1051,Hydra:6.0.680,FMLib:17.12.62.30 definitions=2024-10-14_12,2024-10-11_01,2024-09-30_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 malwarescore=0 phishscore=0 mlxscore=0 mlxlogscore=999 bulkscore=0 spamscore=0 suspectscore=0 adultscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2409260000 definitions=main-2410140129 X-Proofpoint-ORIG-GUID: -Ji7zSJTdfb4Wipm3A1AMdDszkr2YFvL X-Proofpoint-GUID: -Ji7zSJTdfb4Wipm3A1AMdDszkr2YFvL X-Spam-Status: No, score=-13.2 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, GIT_PATCH_0, KAM_SHORT, RCVD_IN_DNSWL_LOW, RCVD_IN_MSPIKE_H4, RCVD_IN_MSPIKE_WL, SPF_HELO_NONE, SPF_NONE, TXREP autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org X-BeenThere: gcc-patches@gcc.gnu.org X-Mailman-Version: 2.1.30 Precedence: list List-Id: Gcc-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: gcc-patches-bounces~incoming=patchwork.ozlabs.org@gcc.gnu.org Hi everyone, Here is the v2 for the patch in this thread: https://gcc.gnu.org/pipermail/gcc-patches/2024-October/665378.html Please noticed that commit message was adapted to new content. Regards, Cupertino Based on observation within bpf-next selftests and comparisson of GCC and clang compiled code, the BPF loader expects all CO-RE relocations to point to BTF non const and non volatile type nodes. --- gcc/btfout.cc | 2 +- gcc/config/bpf/btfext-out.cc | 7 ++++ gcc/ctfc.h | 2 + .../gcc.target/bpf/core-attr-const.c | 40 +++++++++++++++++++ 4 files changed, 50 insertions(+), 1 deletion(-) create mode 100644 gcc/testsuite/gcc.target/bpf/core-attr-const.c diff --git a/gcc/btfout.cc b/gcc/btfout.cc index 8b91bde8798..24f62ec1a52 100644 --- a/gcc/btfout.cc +++ b/gcc/btfout.cc @@ -167,7 +167,7 @@ get_btf_kind (uint32_t ctf_kind) /* Convenience wrapper around get_btf_kind for the common case. */ -static uint32_t +uint32_t btf_dtd_kind (ctf_dtdef_ref dtd) { if (!dtd) diff --git a/gcc/config/bpf/btfext-out.cc b/gcc/config/bpf/btfext-out.cc index 095c35b894b..30266a2d384 100644 --- a/gcc/config/bpf/btfext-out.cc +++ b/gcc/config/bpf/btfext-out.cc @@ -320,6 +320,13 @@ bpf_core_reloc_add (const tree type, const char * section_name, ctf_container_ref ctfc = ctf_get_tu_ctfc (); ctf_dtdef_ref dtd = ctf_lookup_tree_type (ctfc, type); + /* Make sure CO-RE type is never the const or volatile version. */ + if ((btf_dtd_kind (dtd) == BTF_KIND_CONST + || btf_dtd_kind (dtd) == BTF_KIND_VOLATILE) + && kind >= BPF_RELO_FIELD_BYTE_OFFSET + && kind <= BPF_RELO_FIELD_RSHIFT_U64) + dtd = dtd->ref_type; + /* Buffer the access string in the auxiliary strtab. */ bpfcr->bpfcr_astr_off = 0; gcc_assert (accessor != NULL); diff --git a/gcc/ctfc.h b/gcc/ctfc.h index 41e1169f271..e5967f590f9 100644 --- a/gcc/ctfc.h +++ b/gcc/ctfc.h @@ -465,4 +465,6 @@ extern void btf_mark_type_used (tree); extern int ctfc_get_dtd_srcloc (ctf_dtdef_ref, ctf_srcloc_ref); extern int ctfc_get_dvd_srcloc (ctf_dvdef_ref, ctf_srcloc_ref); +extern uint32_t btf_dtd_kind (ctf_dtdef_ref dtd); + #endif /* GCC_CTFC_H */ diff --git a/gcc/testsuite/gcc.target/bpf/core-attr-const.c b/gcc/testsuite/gcc.target/bpf/core-attr-const.c new file mode 100644 index 00000000000..da6113a3faf --- /dev/null +++ b/gcc/testsuite/gcc.target/bpf/core-attr-const.c @@ -0,0 +1,40 @@ +/* Test to make sure CO-RE access relocs point to non const versions of the + type. */ + +/* { dg-do compile } */ +/* { dg-options "-O0 -dA -gbtf -mco-re -masm=normal" } */ + +struct S { + int a; + int b; + int c; +} __attribute__((preserve_access_index)); + +void +func (struct S * s) +{ + int *x; + int *y; + int *z; + struct S tmp; + const struct S *cs = s; + volatile struct S *vs = s; + + /* 0:2 */ + x = &(s->c); + + /* 0:1 */ + y = (int *) &(cs->b); + + /* 0:1 */ + z = (int *) &(vs->b); + + *x = 4; + *y = 4; + *z = 4; +} + +/* Both const and non const struct type should have the same bpfcr_type. */ +/* { dg-final { scan-assembler-times "0x1\t# bpfcr_type \\(struct S\\)" 1 } } */ +/* { dg-final { scan-assembler-times "0x1\t# bpfcr_type \\(const struct S\\)" 1 } } */ +/* { dg-final { scan-assembler-times "0x1\t# bpfcr_type \\(volatile struct S\\)" 1 } } */