From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mx0b-00069f02.pphosted.com (mx0b-00069f02.pphosted.com [205.220.177.32]) by sourceware.org (Postfix) with ESMTPS id BA3333858409 for ; Tue, 31 Aug 2021 14:08:27 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org BA3333858409 Received: from pps.filterd (m0246632.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.16.1.2/8.16.1.2) with SMTP id 17VDEbWC007616 for ; Tue, 31 Aug 2021 14:08:27 GMT Received: from userp3030.oracle.com (userp3030.oracle.com [156.151.31.80]) by mx0b-00069f02.pphosted.com with ESMTP id 3asdn1s95p-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK) for ; Tue, 31 Aug 2021 14:08:27 +0000 Received: from pps.filterd (userp3030.oracle.com [127.0.0.1]) by userp3030.oracle.com (8.16.0.42/8.16.0.42) with SMTP id 17VDuGVS020271 for ; Tue, 31 Aug 2021 14:08:26 GMT Received: from nam11-bn8-obe.outbound.protection.outlook.com (mail-bn8nam11lp2174.outbound.protection.outlook.com [104.47.58.174]) by userp3030.oracle.com with ESMTP id 3arpf4dn3y-3 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK) for ; Tue, 31 Aug 2021 14:08:25 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=YT2ZOuQOhAYySkyUkrNLP9reaZGq/myTWbzfGRocmdubf5ZNTTGbdYx8Y9xU7+l9R5MJmIV682MnGjdJJwFeN4k7LFYNjR3MF1dQnvHGo4A6mPgOTbk5jjDOu1K8UxocJC0eAGsNm1MPPiH/jjKMTPkvrU70xO8TH2omKm05Q8ibHGbKYQUvxQe9cZ8GP5AuCa5OpF/f5bWaQx3zzDc8TA4vOUoEYE65w4ZliFTG0wYK8k9boXBOsfFwW67+zO4I7E+Pmc5fFAsEmRaw3k77ehV6i6UMC7+DsIi3NFpnjT2UeWq2lNEBpPI3Fxg2Ow0fC/7juMdh4W5Dx7L5HvcVpQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=3yk8oEij/74etGvVLPCI0kOwl8nitouP4cNud8UzQKw=; b=Gyb4KRXIi27NeFJXFI6ByVQPNFYstcPLiXKQmYNkQ8bt0biGMNiuh0VIdC/SkeGRUlon2GjQi3siDpPSqhbc+nh11yJKX7vJbLS+4yCqDk4Ft1EFwKa41nguLYM4EAzhljHkHnxV2wkT96cRQjZgAqBMvRuVwTni6wJBm5JUHqKY19GGVgLle1q11Z2kkMEZkgq11GyMcervKMoTK2efdf+kQYUGa9poZtw9/8Ty7C9gIPOOezMtsiLO3K+B7/z92oQ0yWt/2XNi4YrNDU6hLsAmUfIJrVS6UMdDBJP2bq/rEg8on40kO2zVbt5coso8rbh3AchcUSa3zhCOZLkX1g== 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 Received: from MWHPR1001MB2158.namprd10.prod.outlook.com (2603:10b6:301:2d::17) by CO6PR10MB5556.namprd10.prod.outlook.com (2603:10b6:303:143::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4457.24; Tue, 31 Aug 2021 14:08:24 +0000 Received: from MWHPR1001MB2158.namprd10.prod.outlook.com ([fe80::c9ba:5127:fa3f:45cb]) by MWHPR1001MB2158.namprd10.prod.outlook.com ([fe80::c9ba:5127:fa3f:45cb%4]) with mapi id 15.20.4457.024; Tue, 31 Aug 2021 14:08:24 +0000 From: Indu Bhagat To: gcc-patches@gcc.gnu.org Subject: [PATCH,V3 2/3] bpf: Add new -mco-re option for BPF CO-RE Date: Tue, 31 Aug 2021 07:08:14 -0700 Message-Id: <1630418895-23520-3-git-send-email-indu.bhagat@oracle.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1630418895-23520-1-git-send-email-indu.bhagat@oracle.com> References: <1630418895-23520-1-git-send-email-indu.bhagat@oracle.com> Content-Type: text/plain X-ClientProxiedBy: SA9PR11CA0006.namprd11.prod.outlook.com (2603:10b6:806:6e::11) To MWHPR1001MB2158.namprd10.prod.outlook.com (2603:10b6:301:2d::17) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from ibhagatpc.us.oracle.com (137.254.7.187) by SA9PR11CA0006.namprd11.prod.outlook.com (2603:10b6:806:6e::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4457.21 via Frontend Transport; Tue, 31 Aug 2021 14:08:23 +0000 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 296336d1-60ea-456d-5999-08d96c88cbe3 X-MS-TrafficTypeDiagnostic: CO6PR10MB5556: X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:9508; X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: Q6QuXCPF0zXWkIPr8Pr599TO9BAOv4Ic63xfbFvX3jnjAuvp9YW/pvaBxtOBEtmBbd+znf5h5rWvChHr+Fbslk8Vy8VYEUjO6uCrZAxqyGyo+trg/TOpw99mxLOGvHQeC4mvs1IZedCGboHGznbZfY3CX+G98SgdCDTkudyF/bczBqGSlj8MPUi1qqJnWR2JbEzShEfkCes2Ee18ICA0xR7/0KlOz1s6KmC1fPvYUG8BmJnfpgnmM6SGstFRLa2s41+j5RDwB6RJKf7y+Z0IUipYCSfkOGtIJLLeZHVYgxRzF0EQFzRAvZo6XRxo9LMuX8jvCU0bLp8nr37nDhqLqQEY64RSofsr3cypj4ZbknPa8Ds46UQwfAlZH1/aIPGJdjbVcg990af931iz4+5HvZ6qGZ2vp3SI3LYfBxh/J039hb7XjGMEgi09S2qvLCCcD5BTYl3ROjVfbl70gWEQdYpDBVXgzTC9vse5OrlD/EgmPR+AA86dI6Bnd+qvdEKbmajVBHiHIDJjtVzDODkI9pjbMBtOwv0jT/FYlvaCqafcT+Eb0NaaKek3evIgKU97oa4bC847r5ltcO//u00PBQVGEHTM+aOvVvWZVs5UcMU7XV88UGhUVxYwjvveWx3hSbsy77lY3N/cpO7g/VhlrJ5TsfKvXTNiLYGaSycoUEeq273/lvPKkAocvFA4JSEaSHntX2WZgxUbc+ffmTl3BPKB/4EJPuBG8dQ/bkRrwtJsvcut7/5zZt0MFuIIgrHd1nxM+esYSQXlM8KrnkrbQf8iwyPcZ//NnA+oQvSRcE0= X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:MWHPR1001MB2158.namprd10.prod.outlook.com; PTR:; CAT:NONE; SFS:(366004)(66946007)(8676002)(36756003)(2906002)(86362001)(316002)(8936002)(26005)(956004)(38350700002)(38100700002)(5660300002)(83380400001)(2616005)(66556008)(44832011)(7696005)(52116002)(66476007)(186003)(6916009)(6486002)(6666004)(508600001); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?fe+7TlTU+QbOx2VukZ5Xwx4t5cfMu/BsV4Fn2nn7SKeiomc3Q1SX3XqmvsYS?= =?us-ascii?Q?mtIRWP3I0sDTGXa6dNLCBYxuR0OaltnE2tCfvlcQj5DqD/9a0ss/B69ojhQp?= =?us-ascii?Q?ytjSLAmP7Pw8bs9lUFkruZwJ7Ns9wBgmyDiWIge+9PM+dZjMwYjBFfGpAaA+?= =?us-ascii?Q?SHTT3ojVldzfWZB4l7wakEDc0cGMcwsAd4h3GiqpFyddNrh1eH09KpUcXYAU?= =?us-ascii?Q?PgaGx/QEM1R+tM79ouH5hS2nAu3j+njAC+fsx1C6rekGsw9qI3jh7qTS9ZqX?= =?us-ascii?Q?O9YxDzfJ+OyMu4Sr1hWc08W+sPBXA5gX+QnaIsZC3W9JL90U8uzrQ+OUq+Bc?= =?us-ascii?Q?DHk/aZL8KqcLVFPZ/adC/GCK8yhazPqTn7YdOJWUAbgg9AH46rucHycVMF31?= =?us-ascii?Q?fQ026WFqd0hVFBDlq/Ucr/d9YUe3cn5kd2n/sd73RuN4c7NCA7rICYk76QCk?= =?us-ascii?Q?RyNENfYx4o8RC7Qv8i8y+S7z0VFkgFoAP4mZVTH3VZa+QygGQIDhgV0vM+Ge?= =?us-ascii?Q?rTp76kuocmyvFxzvngniVj+aOQetIUIXl65E8uDcxMU4bzgqpbaOaJhYA/Um?= =?us-ascii?Q?UwMhnLuge2qcjUCxARs8bnzOGiFLwdcagqJIQMALt3EPDNgrCcmUOiowvkjb?= =?us-ascii?Q?zop4G08gpxY8j20Jc3I2pZIzZxlEtLwBYLiMuURT0F8otD3gvs6ngj9QyI66?= =?us-ascii?Q?CAGJPdmkTdpdgqoZ0JwUqTEQJScqJ2uFdqnbOxi9+QZcCqtqA1/vuzLlgS54?= =?us-ascii?Q?n8Z5wkeuv+DwfRSFa0y51iiWIHUUloTdfzhe3nWSDvsbqQMYt3FDzCwqCtYJ?= =?us-ascii?Q?grrtGBaw5IiEz1GuwVHdaCCfTp47HJZFpwBL2rCyaFYjwgX2aZ6ERZcEKy81?= =?us-ascii?Q?WaLLcUWTlwEvVyVNI2+HJ71iawYJlq7lQbUD9Db/E99cIWqcMmNXMIaeGnH3?= =?us-ascii?Q?pZQmdbli31ZhcwqZEWmgBErUrxLVCEXd+3khOtTcKlVxJ/SvO5JjIGULhT+y?= =?us-ascii?Q?x3Ihbyta+bXyzw1T8RTtmYHuwc/2IRKFWfXEEdQWj8NooELvEiRKnrAWZDS4?= =?us-ascii?Q?Dja91nlfEJ6DauebUmGgpTnmG/w+9OlYQ0/88AnBh8I60dhL230HHYWnIDJM?= =?us-ascii?Q?Ig2hBbJ1BGT3zM/lA4G5wWGh5RfuJC5VUOKSJzkr6zW8v3OaGAqmF5KAy3Yd?= =?us-ascii?Q?JdyoPxcp3fPgZvkx0yvPLw+fsQZ1n3nph+DWZkR4+8iAjJVHrPRVrqqRr6hp?= =?us-ascii?Q?QwiC00tc0s/JRe7UFkOR3hS3MIWVQ3FkZdapXqeLkTn2Ls+RSP6tH4YusaqS?= =?us-ascii?Q?4vxqX4ErbLMNh1BOQY4CLyrh?= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 296336d1-60ea-456d-5999-08d96c88cbe3 X-MS-Exchange-CrossTenant-AuthSource: MWHPR1001MB2158.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 31 Aug 2021 14:08:24.3711 (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: u+Fvr89XM/oxfWQx3un7ade9OdRc6/fVLhW7NjG7haQlYV1Rg8z2VdsfYEqhdeIriFqiHsvVlybPp3GaWMr9pQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CO6PR10MB5556 X-Proofpoint-Virus-Version: vendor=nai engine=6300 definitions=10093 signatures=668682 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 malwarescore=0 bulkscore=0 phishscore=0 spamscore=0 mlxlogscore=999 adultscore=0 suspectscore=0 mlxscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2107140000 definitions=main-2108310078 X-Proofpoint-ORIG-GUID: T3F-l4WoTIAPwzkwb__UvqujHkJM0ZJy X-Proofpoint-GUID: T3F-l4WoTIAPwzkwb__UvqujHkJM0ZJy X-Spam-Status: No, score=-13.1 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, GIT_PATCH_0, KAM_SHORT, MSGID_FROM_MTA_HEADER, RCVD_IN_DNSWL_LOW, SPF_HELO_NONE, SPF_NONE, TXREP autolearn=ham autolearn_force=no version=3.4.4 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on server2.sourceware.org X-BeenThere: gcc-patches@gcc.gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Gcc-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 31 Aug 2021 14:08:38 -0000 -mco-re in the BPF backend enables code generation for the CO-RE usecase. LTO is disabled for CO-RE compilations. gcc/ChangeLog: * config/bpf/bpf.c (bpf_option_override): For BPF backend, disable LTO support when compiling for CO-RE. * config/bpf/bpf.opt: Add new command line option -mco-re. gcc/testsuite/ChangeLog: * gcc.target/bpf/core-lto-1.c: New test. --- gcc/config/bpf/bpf.c | 25 +++++++++++++++++++++++++ gcc/config/bpf/bpf.opt | 4 ++++ gcc/testsuite/gcc.target/bpf/core-lto-1.c | 9 +++++++++ 3 files changed, 38 insertions(+) create mode 100644 gcc/testsuite/gcc.target/bpf/core-lto-1.c diff --git a/gcc/config/bpf/bpf.c b/gcc/config/bpf/bpf.c index e635f9e..7228978 100644 --- a/gcc/config/bpf/bpf.c +++ b/gcc/config/bpf/bpf.c @@ -54,6 +54,7 @@ along with GCC; see the file COPYING3. If not see #include "builtins.h" #include "predict.h" #include "langhooks.h" +#include "flags.h" /* Per-function machine data. */ struct GTY(()) machine_function @@ -158,6 +159,30 @@ bpf_option_override (void) { /* Set the initializer for the per-function status structure. */ init_machine_status = bpf_init_machine_status; + + /* BPF CO-RE support requires BTF debug info generation. */ + if (TARGET_BPF_CORE && !btf_debuginfo_p ()) + error ("BPF CO-RE requires BTF debugging information, use %<-gbtf%>"); + + /* To support the portability needs of BPF CO-RE approach, BTF debug + information includes the BPF CO-RE relocations. */ + if (TARGET_BPF_CORE) + write_symbols |= BTF_WITH_CORE_DEBUG; + + /* Unlike much of the other BTF debug information, the information necessary + for CO-RE relocations is added to the CTF container by the BPF backend. + Enabling LTO adds some complications in the generation of the BPF CO-RE + relocations because if LTO is in effect, the relocations need to be + generated late in the LTO link phase. This poses a new challenge for the + compiler to now provide means to combine the early BTF and late BTF CO-RE + debug info, similar to DWARF debug info. BTF/CO-RE debug info is not + amenable to such a split generation and a later merging. + + In any case, in absence of linker support for BTF sections at this time, + it is acceptable to simply disallow LTO for BPF CO-RE compilations. */ + + if (flag_lto && TARGET_BPF_CORE) + sorry ("BPF CO-RE does not support LTO"); } #undef TARGET_OPTION_OVERRIDE diff --git a/gcc/config/bpf/bpf.opt b/gcc/config/bpf/bpf.opt index 916b53c..4493067 100644 --- a/gcc/config/bpf/bpf.opt +++ b/gcc/config/bpf/bpf.opt @@ -127,3 +127,7 @@ Generate little-endian eBPF. mframe-limit= Target Joined RejectNegative UInteger IntegerRange(0, 32767) Var(bpf_frame_limit) Init(512) Set a hard limit for the size of each stack frame, in bytes. + +mco-re +Target Mask(BPF_CORE) +Generate all necessary information for BPF Compile Once - Run Everywhere. diff --git a/gcc/testsuite/gcc.target/bpf/core-lto-1.c b/gcc/testsuite/gcc.target/bpf/core-lto-1.c new file mode 100644 index 0000000..927de23 --- /dev/null +++ b/gcc/testsuite/gcc.target/bpf/core-lto-1.c @@ -0,0 +1,9 @@ +/* Test -mco-re with -flto. + + -mco-re is used to generate information for BPF CO-RE usecase. To support + the generataion of the .BTF and .BTF.ext sections in GCC, -flto is disabled + with -mco-re. */ + +/* { dg-do compile } */ +/* { dg-message "sorry, unimplemented: BPF CO-RE does not support LTO" "" { target bpf-*-* } 0 } */ +/* { dg-options "-gbtf -mco-re -flto" } */ -- 1.8.3.1