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 96B68396B42C for ; Thu, 5 Aug 2021 00:50:55 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 96B68396B42C 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 1750or2u025090 for ; Thu, 5 Aug 2021 00:50:54 GMT Received: from aserp3030.oracle.com (aserp3030.oracle.com [141.146.126.71]) by mx0b-00069f02.pphosted.com with ESMTP id 3a7hxpjqqg-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK) for ; Thu, 05 Aug 2021 00:50:54 +0000 Received: from pps.filterd (aserp3030.oracle.com [127.0.0.1]) by aserp3030.oracle.com (8.16.0.42/8.16.0.42) with SMTP id 1750oAFQ189052 for ; Thu, 5 Aug 2021 00:50:40 GMT Received: from nam12-mw2-obe.outbound.protection.outlook.com (mail-mw2nam12lp2047.outbound.protection.outlook.com [104.47.66.47]) by aserp3030.oracle.com with ESMTP id 3a78d7nnn4-2 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK) for ; Thu, 05 Aug 2021 00:50:40 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Xj/s05qDwBTZJL19NE++k/wYvjRPS6kj/7lnAvS8o18AiHl19J+rrOi97axiX/lgYYmzfD333xTe4Tv7cvCKi8zNT2LEpE1rJEiq9C1Espqvnty4JN5WASvst1t0aJw2cQCKjqUVsOCRBnVmhL3whZaWAoUndGCZfSUKlxeczeLTr1FKrGVw27bBZz8Uld/s4x9yRNXldtN1Qle6bU94c8dhNywPLe9ayrK65ygxt/YDNTIWZJ7yRDfl1TemV4vF0SlSeNhs/Xu3YEugOGgP8Hh2JTsMCvgl+Qg+GpI1ZeWq4d0c+VcGMoDcrG2wtCJuK+h1AWFEKjb+AK8E0CKe+g== 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=vnObY0OUYHZ+4INKZ9rdInNNfa2fM5UoRSxARkfh8a4=; b=LMIqrh9ObP212/GadRj6GmlHdUUvgin/FklOCI7dHb+a0n9lkiaj6E1wbfRXpDkwUetLMhoJZ5364UJqJLOmNJpR9GIUfyipBxResfYElTaQepnNfmoigquqpNcBcyIHB0b+All0yhmRWn2pYO4/lv3cSwAdPWWKIrq0rBdupUjOa59ZVUQRfRSA1oDf5TBZ6jsQQto4FKS9y4765myrGJIqPjTf9oTbsxlBf/lPThepQwga/vXbIWVkFg0tpiXWyNpInycULq/HGjWHesMP3H6VIUMcHV0QNp8BNc+Sgl+TODk7w8es6B1CZcykHCPzno52BGKUkjM9eblrMJMSNg== 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 MWHPR10MB1887.namprd10.prod.outlook.com (2603:10b6:300:10b::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4394.16; Thu, 5 Aug 2021 00:50:38 +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.4373.026; Thu, 5 Aug 2021 00:50:38 +0000 From: Indu Bhagat To: gcc-patches@gcc.gnu.org Subject: [PATCH,V2 1/3] bpf: Add new -mcore option for BPF CO-RE Date: Wed, 4 Aug 2021 17:50:26 -0700 Message-Id: <1628124628-28706-2-git-send-email-indu.bhagat@oracle.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1628124628-28706-1-git-send-email-indu.bhagat@oracle.com> References: <1628124628-28706-1-git-send-email-indu.bhagat@oracle.com> Content-Type: text/plain X-ClientProxiedBy: MWHPR20CA0001.namprd20.prod.outlook.com (2603:10b6:300:13d::11) 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 MWHPR20CA0001.namprd20.prod.outlook.com (2603:10b6:300:13d::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4394.15 via Frontend Transport; Thu, 5 Aug 2021 00:50:38 +0000 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: d7cee52d-d656-47b6-1596-08d957ab0b09 X-MS-TrafficTypeDiagnostic: MWHPR10MB1887: 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: 7Ku4q3r5E2ZIEARl0lrtU6l+NSVw+od39KdUXHb5QjeMv6RFWmO0wmUOeCU+EkLZAQW7FMAzmxtQ+jvTdDIUp9TH6qoW3U21DmXpP3PJR/aMAk8N3Mt9CQ3XkrBHoknZ4pobXBcKk2jRMUFMo/rzo18/yQh/H79UKtRD9Txc+lFrvYjYrBcX0z+Ku5W5apbkrqAvqcDgbHh8FxZg97KtpLNDO7sprV2PQTco2qb0HQ8LCW0L4qHuxoC3LJOE67h3GYMqAOP2UJGlkVtF/XkOXD9Sh6rE/EC3tpVKrPe/7Ra5Bqsi8JmJYnlsXRM8hF2EfcQAAJ8JBJZfJjblsUw6hf3ClyMLKbl7uUngzmj7ngaLmc5z8oiJ3T9IBMwvMeSqTdxVNtWafMMWOu9etUcEyVZ5x1lIRVySR2ngahyaF5vaF2AlBXLNZbhCck4jnG1dAYNgNHOmVGPvMI34Stm/6HVSZbocmDZ+TkWZnSGrTXYMSQmJjfPuSZDBBGh23LE7kVDHdZfmUfshzvMY90yyPi42ZkrqXAUoS3IyigJDdIXBiltgdRen4l89KTMD5we4TVQziLB7/tpWxhsnyXzzXvkzmrRRXw+K2esDVQgzhUOO4FQYdAx8zXeP66MDLSvw961odp0Rx+Jtjv8VqP3TdT+JXMGuhG4qnFhKTq3WYCZRSBqfROuxf76VWQXpe2tNHnKA88TFNWURiF6kD1vxHsc50VnA0XYAXQPtQReggzNNryDAbHOms6kI+S/9QdJKON5i2Ad3buNDsL5rxi5K/w== 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:(376002)(136003)(366004)(346002)(396003)(39860400002)(6666004)(66946007)(86362001)(66556008)(66476007)(956004)(2616005)(5660300002)(83380400001)(38350700002)(478600001)(38100700002)(36756003)(6512007)(6916009)(8936002)(52116002)(6486002)(26005)(8676002)(6506007)(44832011)(2906002)(186003)(316002); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?7KH3co4gVGSJxYDZu4Cgrt3ZXA4Ce1UJ/+ofS/G/I+EvI6ziXPNxmzdS/yje?= =?us-ascii?Q?w1p4mjnCwl5SsDmDqo2B4gQ13/dzJsobpzR8F6ECsQVswdJu0B2LS+FLVD73?= =?us-ascii?Q?aXnXcqp8yAURurjSFMs4ghaQlEuWHIEaxz54SvQJLMXnH6cuFdxqish03AEu?= =?us-ascii?Q?6PjtxgprxPD7j7JKbn4zbE/5tSn0FFXJYZHwOCt6C0o4XV2jO0ReAjwJ8Epu?= =?us-ascii?Q?hOofYijXF8U/OYCVbxtzzGGsjpp35N86VxjRGMUb1kMR7BsJP8kga1K+6O9x?= =?us-ascii?Q?7oeLho4thivQQ9GHQxELj8SIp/ckcH8BoxziHuT2h+CHcuu+dQfcA0oeIcLD?= =?us-ascii?Q?hnSdb99QDTDHRlYQNvns21IANWsD0ycvXEIhU1QuJ2dZxnkzK4L5fiQ8kO1s?= =?us-ascii?Q?KFzpusZNS1O9k2Fwdg2G8+v97tx9JFBsHBLXUfv80RCBgqa/z1JpjkjY1vkm?= =?us-ascii?Q?uPCq4HmTz8pNxcZtX2ntHzjzpkXFF0haQeLtNA6MQNL6sKPQ5zBWAhR2dkKH?= =?us-ascii?Q?sQ5uHeoh+Um1x/HJPNtCRkRG+MxMFF3S6eN8HbHqfy4Rr3dkvC9MWHx51JZJ?= =?us-ascii?Q?psHL3WexFq8StV/ff7hpllg6QYVfyCUZWAgoYpAMOU8U+1UJ470CEZK9KXC2?= =?us-ascii?Q?zU+tMi1TaO5cLHXSEFPMxbjwjmWfOAaVPslSojTDu1kWDH/dcCsdY+RVUtn2?= =?us-ascii?Q?HD5u5mfDU+A9oXDUGFpqwEHZTxjc+Xvxe1nLvkbfAU/F0or+aHmQcIq6SHPa?= =?us-ascii?Q?NyHWzNkttiWZIY61ajO6wxclI6J36Fy0PM7AhWi80tX7rcFef0u4RNfJ8IbS?= =?us-ascii?Q?j8LIr+dd998kT/R1kYU5Qus5buSYXnQ3JUPTU7ubKLGZW9G1wnIMSUW2kwVw?= =?us-ascii?Q?teIHYMNhq+PGnXwwjKokDsRamDG2KOtnVbru+230G69J/xlPTA0tUWF8GWKq?= =?us-ascii?Q?YRxTZ0+2u/toszxTbizgBPfBLQ8Wb9JRtwrYm2NmjRuACCk5hEkDCBI1rZ3k?= =?us-ascii?Q?ND73Itxz7vNKOpn+yMY1ASjzDIKtOP6jvIVEauFqRkxO146yvlE1mxOXonfu?= =?us-ascii?Q?Zu2ZcBprO8LbaRVDroA9OX1+GOYbF86d2PEJokbZdEx+1xcXbcPAE231VuMn?= =?us-ascii?Q?oMZfz+wc24HKHlNQ/j/SIbwIWs6HOPxLu+FbZeudwUJiosPegiWWVfb+OdYh?= =?us-ascii?Q?EYyhd3P9g/ahiM9oTvHun4PVXRz6oNKdRSfOnS37Ow0xi08KGi8BQU6iuQ3q?= =?us-ascii?Q?FQMK8lSDOfdxd7E8PvOUxYkSto35Y+zgDLXm5w9SFDSu3s4HGKEH7e3UIaNB?= =?us-ascii?Q?nqJcQVNbmuSOSoUxwITnVZzs?= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: d7cee52d-d656-47b6-1596-08d957ab0b09 X-MS-Exchange-CrossTenant-AuthSource: MWHPR1001MB2158.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 05 Aug 2021 00:50:38.6674 (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: 6/3msbszvDHhw8dMTq+mMrCBKgRi9OcZxuLV69fPRM4zV2Jhd3ejPkvIHc+IBOnkDDdNnlu3+MDN5ZCK+VTnRw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: MWHPR10MB1887 X-Proofpoint-Virus-Version: vendor=nai engine=6200 definitions=10066 signatures=668682 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 mlxlogscore=999 mlxscore=0 adultscore=0 malwarescore=0 phishscore=0 bulkscore=0 spamscore=0 suspectscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2107140000 definitions=main-2108050005 X-Proofpoint-GUID: C41HsP-OvO7J0qDjGdCP53kSxRmvQCiX X-Proofpoint-ORIG-GUID: C41HsP-OvO7J0qDjGdCP53kSxRmvQCiX X-Spam-Status: No, score=-12.7 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: Thu, 05 Aug 2021 00:50:57 -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.target/bpf/core-lto-1.c: New test. --- gcc/config/bpf/bpf.c | 15 +++++++++++++++ gcc/config/bpf/bpf.opt | 4 ++++ gcc/testsuite/gcc.target/bpf/core-lto-1.c | 9 +++++++++ 3 files changed, 28 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..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.target/bpf/core-lto-1.c b/gcc/testsuite/gcc.target/bpf/core-lto-1.c new file mode 100644 index 0000000..a90dc5b --- /dev/null +++ b/gcc/testsuite/gcc.target/bpf/core-lto-1.c @@ -0,0 +1,9 @@ +/* Test -mcore with -flto. + + -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 } */ +/* { dg-error "BPF CO-RE does not support LTO" "" { target bpf-*-* } 0 } */ +/* { dg-options "-gbtf -mcore -flto" } */ -- 1.8.3.1