From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mx0a-00069f02.pphosted.com (mx0a-00069f02.pphosted.com [205.220.165.32]) by sourceware.org (Postfix) with ESMTPS id 054783864866 for ; Fri, 30 Jul 2021 20:12:57 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 054783864866 Received: from pps.filterd (m0246617.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.16.0.43/8.16.0.43) with SMTP id 16UKBmHq004656 for ; Fri, 30 Jul 2021 20:12:57 GMT Received: from userp3030.oracle.com (userp3030.oracle.com [156.151.31.80]) by mx0b-00069f02.pphosted.com with ESMTP id 3a3uujbsyy-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK) for ; Fri, 30 Jul 2021 20:12:57 +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 16UKB5wu003823 for ; Fri, 30 Jul 2021 20:12:55 GMT Received: from nam04-bn8-obe.outbound.protection.outlook.com (mail-bn8nam08lp2042.outbound.protection.outlook.com [104.47.74.42]) by userp3030.oracle.com with ESMTP id 3a235a6a5u-2 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK) for ; Fri, 30 Jul 2021 20:12:55 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=SMeGzBoM5yB+lKbHPfZKt/C3YEM316FTS0tmIXrjh5BB8oeRV2vD1cQbfIVklhFN450k31qE42jGsHe3Rk0DKqLSwFA6/FVsv9jirR5NOCbl40fHMkPdCZX8ucq4fhCCCkBAGs7rY6nDpV1/Dboe+X389H8oGr3aJxxrG5uc5QZ/dACQYNUbo2KY9TAUXR2PEpkItVsdsghWyFB/HH99IPAXug8hoitHGtJL65Jpnp5NozqiT4RJILGYKuo5+MEnkux65fLc1GPIwbumW/FdU4dSZI1zl6Z+OQOCci8K9AzJMo6A7snmR8XgU4E5HKBCCB3xN0VkCmOdF1yI6jwa1w== 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=q+CDzTdMNVIyxPP7emiuUm/Qf6Je+e1rglW2kcJzOPc=; b=jtWURTAlIFwX0T8MxRB7Nev/Xp1rPIVR0PFA6hXOhKfzZIyO3TEWz62F+Pi6P2Ijflp/c0wmWYAI/rOwzuQhhCau3kQYj0qS+QnKILKz6T6vhGTCzxyZb29lSfH6cHZQ3VXd9BvbpCyM1HDHvwZ61Mgt9DOesDeYgVTP+VI/ixn6bDrcRM3lTIX1E+iV7YOmXsT35Xd9pSX0NL+r+rv/tpxQfUBc6sySuS8ytFvZKvjVlT5eNfvFznCV1FagpKa+t3q5Eaa7aaXXPW8zKl5/BdFKjOaT9nXCO8QjcclWigWHiTdj3we1XePhlEn7l9eB4qQEypm52ZNWxdNw9t+XJg== 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 CO1PR10MB4689.namprd10.prod.outlook.com (2603:10b6:303:98::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4373.17; Fri, 30 Jul 2021 20:12:50 +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.4352.033; Fri, 30 Jul 2021 20:12:50 +0000 From: Indu Bhagat To: gcc-patches@gcc.gnu.org Subject: [PATCH 1/3] bpf: Add new -mcore option for BPF CO-RE Date: Fri, 30 Jul 2021 13:12:37 -0700 Message-Id: <1627675959-17662-2-git-send-email-indu.bhagat@oracle.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1627675959-17662-1-git-send-email-indu.bhagat@oracle.com> References: <1627675959-17662-1-git-send-email-indu.bhagat@oracle.com> Content-Type: text/plain X-ClientProxiedBy: MWHPR08CA0042.namprd08.prod.outlook.com (2603:10b6:300:c0::16) To MWHPR1001MB2158.namprd10.prod.outlook.com (2603:10b6:301:2d::17) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from ibhagatpc.hitronhub.home (24.80.24.133) by MWHPR08CA0042.namprd08.prod.outlook.com (2603:10b6:300:c0::16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4373.20 via Frontend Transport; Fri, 30 Jul 2021 20:12:49 +0000 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: c62cbde8-5535-4685-9c49-08d9539667b4 X-MS-TrafficTypeDiagnostic: CO1PR10MB4689: 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: aoj12mpGXqkeMi6zQ9LSjzI9W66J/eo3LMvn85xuaCY2ShH9ty8nh2lf6qVOrg5IBYuJc/9aTXbD9/HmwyynD8YvPdXamKrRLoBnUVHctTDAuS6+Ra6hZpYqkuEegHGYpw1tWSmwL5ZZoGb1S9gEui16nsr11paPnUuvEgbjxfqAMl/HsQWPBNpDoLrEGivunMv2BqT+Pu6809ZlSOWxyXBZm2yJcTMHCWXLpKecgye2gkHOASNWtbv9RzdXzmzo+mLaJvzPa6mSjONNgnDVLOkWOx+LlYeY0DTXpw5uWathh9yeD2pYbFvq0oUlk12ngiZdIWsoilqhyFMDs4fNquBKpwFk+0BOmz04hTv9DjEE3Kf8TrNq8gQQgmzmvDcRlJwqtmNGC8VzA8tHfSsHGFdpIAlM88oVIolwNxvHZ0xaEm8fVWSwZWvrIaPbIVYfBYAICdeOnqLYMoG6EXkR/H4A4iawLIOH/mR3YyCDWCh4kVoM2IXX1BYEf9ccbhcm61a+XfmSpnpmE4vpHiGdeZuUo54pK2h99gpl5rZz3AS/iTaavg2TisgV2NbFMA2ussFqEyg5lXXVF/+snHa5YJyHnN9n7Mo4O1SC6AaR631LmGc/oLfIKdnJJRUoj2NzPV47i4+dTVxxkZoTdtnUuP163YxwSwFFWYXoJ+WQwIJIjWaFIsIcSfuq/qEdsKhjQvZjiO35kyqfOMhg/0eRYXaz0YbqGpIp5TiaO/XNrKvWW2jps1T5iuPpvsLxIao34cDEd9kbEjRYudyq7i+mIX2M871dDrh8jnDfDwvUWTU= 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:(39860400002)(346002)(396003)(366004)(136003)(376002)(66946007)(2906002)(66476007)(66556008)(52116002)(316002)(6512007)(6666004)(6916009)(36756003)(44832011)(186003)(8936002)(5660300002)(86362001)(2616005)(83380400001)(38350700002)(6486002)(26005)(6506007)(478600001)(956004)(8676002)(38100700002); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?in4ctZPafYX8AK/fdM7eOCgW6yLv6SNPoqmuA3W14TDuuJqp/yIWgwX8P86e?= =?us-ascii?Q?BDfY85yneLTDWG6qmd9h+jXEndqEHj4PFTM5H2FcCAfMmEJTj3vwzriGKVUL?= =?us-ascii?Q?Zwm9JvajH21b5+k+HFoNdrzVNVPdBQzYa/Xy2R63g2TWdBojoJ4WaIZYinKw?= =?us-ascii?Q?rTlXYrJiw7BZvcap9kEAvCrki3BctXgHzbGn6J3bi8Wb6r14zynp28zhQY6o?= =?us-ascii?Q?+4JXLBYCg7klJScyXwLApDn01QQge3ZVUJ2xaJ6KHF9hlo0BEyRn3iFTb8NM?= =?us-ascii?Q?1Y/j1oqOwsXjUo9ohauE4UJCAh89FK0jfVPLoyDyt3cKqRmM1amfVWRb0i/S?= =?us-ascii?Q?s8FzOL4TUd86C3eiufoWdzA/EBve42uHcmBa2nEToiSB20oNliJMP8f1/yXN?= =?us-ascii?Q?+ZcKYoUEqbk3Ov8SJ4Sw0nHIBc1nJezqtHHoUQ6js8cvipvBH5oNtYjQmvZ8?= =?us-ascii?Q?y80XqJ06R80CRT0LnF496RZM1SxquZTpel2kapG1k3IEYYBrtdGLFMO65E7Q?= =?us-ascii?Q?WhvuRxVbszB/tl2LTE/hfHGWZdF1SOegfphVNPfEDWFIFDBvYRS0vxtHETjm?= =?us-ascii?Q?ZVag2OW4aoyFnPpIz49XRzOzpz/XFCPYc2HvwRxvq0UFQJMubhos2gezPQsd?= =?us-ascii?Q?aOt2sFbJG3FwtZmnjndBD5qivkOfhkRFCL1brP0ReM+aQVv9x7Te1hjDMY1Z?= =?us-ascii?Q?m4DoA7/KMNcC2+F5X5yDkyL/VvtncpPbJmS1kyUiaqfrHoJBI4/mRsR3Kl+b?= =?us-ascii?Q?T3R3R/Opkn6BXURAFfRS3CGGBdcR5ANM5wobyVBUNfmEH+bbVSpjKiR4lKZA?= =?us-ascii?Q?zjbTOw5PkOfkNzqsXdiPFK0lDdvv7IqyUFOeIiRlRIfjH/sn8WmuVN9D3Y6q?= =?us-ascii?Q?87tgdQZFO5ksfGUK8StGJ3zpXgdTwOPB1gQM8gItvz0LtsVTSyILNVb7s7DT?= =?us-ascii?Q?aZ33tWK2m4sh/FmqXrXH4LsQy9BizqW0yJy32HGcTNtycobaDsxS7R3zLMfR?= =?us-ascii?Q?w6NOwyHBLcpmlfx2q0+fWVziLKNlQPQps7HOZ+kXl4K9e6uaVSUvCbRevl/V?= =?us-ascii?Q?hmdFs252vubf6Qf+lMwxjOdEz6rxNHIWFeVRPnAe88P8ZGXMngd8FOaLdeAe?= =?us-ascii?Q?79yPgvXbJV/SHZ3RQmwkEa0Bmz+JCDoYWcOmAPEVh0uliWmO2i+zpCoc916w?= =?us-ascii?Q?zR8/0sGVIsDb+Hmgl7EwtYlD4LeIH0YZo7RaQCf2Tr/UctCDyyrABhjGZZ8A?= =?us-ascii?Q?ZNYaLmgoXnIt3KytjKLllFTBTsoYRLYSUwYN1fabCBFF6wNv8zrFlqV9dHXS?= =?us-ascii?Q?f+7iO0twzx6XW78ta9WpUam6?= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: c62cbde8-5535-4685-9c49-08d9539667b4 X-MS-Exchange-CrossTenant-AuthSource: MWHPR1001MB2158.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 30 Jul 2021 20:12:50.1174 (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: NFXGyB4gt6RJDAMFuf/1V73oVAiRhlmqZs92Ar7d1l2j1pyShsv9jxTi9UzzOy3VBYZ43c3EgR9BPy8WNMz9ow== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CO1PR10MB4689 X-Proofpoint-Virus-Version: vendor=nai engine=6200 definitions=10061 signatures=668682 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 spamscore=0 malwarescore=0 suspectscore=0 phishscore=0 mlxscore=0 bulkscore=0 mlxlogscore=999 adultscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2107140000 definitions=main-2107300137 X-Proofpoint-ORIG-GUID: BbGc-YjVdvIHHuL5meMHxGrq_jG6lwad X-Proofpoint-GUID: BbGc-YjVdvIHHuL5meMHxGrq_jG6lwad X-Spam-Status: No, score=-12.6 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, GIT_PATCH_0, MSGID_FROM_MTA_HEADER, RCVD_IN_DNSWL_LOW, RCVD_IN_MSPIKE_BL, RCVD_IN_MSPIKE_L3, 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: Fri, 30 Jul 2021 20:12:59 -0000 -mcore 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 -mcore. gcc/testsuite/ChangeLog: * gcc.dg/debug/btf/btf-mcore-1.c: New test. --- gcc/config/bpf/bpf.c | 15 +++++++++++++++ gcc/config/bpf/bpf.opt | 4 ++++ gcc/testsuite/gcc.dg/debug/btf/btf-mcore-1.c | 14 ++++++++++++++ 3 files changed, 33 insertions(+) create mode 100644 gcc/testsuite/gcc.dg/debug/btf/btf-mcore-1.c diff --git a/gcc/config/bpf/bpf.c b/gcc/config/bpf/bpf.c index e635f9e..028013e 100644 --- a/gcc/config/bpf/bpf.c +++ b/gcc/config/bpf/bpf.c @@ -158,6 +158,21 @@ bpf_option_override (void) { /* Set the initializer for the per-function status structure. */ init_machine_status = bpf_init_machine_status; + + /* To support the portability needs of BPF CO-RE approach, BTF debug + information includes the BPF CO-RE relocations. The information + necessary for these relocations is added to the CTF container by the + BPF backend. Enabling LTO poses challenges in the generation of the BPF + CO-RE relocations because if LTO is in effect, they need to be + generated late in the LTO link phase. This in turn means the compiler + needs to provide means to combine the early and late BTF debug info, + similar to DWARF debug info. + + 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) + error ("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..e8926f5 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. + +mcore +Target Mask(BPF_CORE) +Generate all necessary information for BPF Compile Once - Run Everywhere. diff --git a/gcc/testsuite/gcc.dg/debug/btf/btf-mcore-1.c b/gcc/testsuite/gcc.dg/debug/btf/btf-mcore-1.c new file mode 100644 index 0000000..58f20d0 --- /dev/null +++ b/gcc/testsuite/gcc.dg/debug/btf/btf-mcore-1.c @@ -0,0 +1,14 @@ +/* Testcase for BPF CO-RE. + + -mcore 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 -mcore. */ + +/* { dg-do compile { target bpf-*-* } } */ +/* { dg-error "BPF CO-RE does not support LTO" "" { target btf-*-* } 0 } */ + +/* { dg-require-effective-target lto } */ + +/* { dg-options "-gbtf -mcore -flto" } */ + +void func(void) { } -- 1.8.3.1