Received: by 2002:a05:6a10:9848:0:0:0:0 with SMTP id x8csp4472655pxf; Tue, 16 Mar 2021 14:37:01 -0700 (PDT) X-Google-Smtp-Source: ABdhPJwbf+ja6jYYRC6mVhQ+E8JDn7GWArsz2diW2/hUHDsk9NPJU5EpcSZV0Jx87RduNtuM3nnt X-Received: by 2002:a17:906:3a94:: with SMTP id y20mr5362730ejd.35.1615930621671; Tue, 16 Mar 2021 14:37:01 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1615930621; cv=none; d=google.com; s=arc-20160816; b=vzXHB6VpCIsiiPcl5Y+r5FbKwOfcToVmFwBi3+jY4UvSXnpqVXWURiaf4ca5SC+J0+ y67USjCV8ETq6pzus8UWSrBRZ8/fT7pCFCDdUEfoeQ3RfDB7h6HaDpnmpXfvA/uGIVlY 7pch/tTw7sgZGMMm8xI7PP9niT41/dRA578Tm6k6eSHGQMKb6zbkBYQJOBR/Lv4Z1oM/ bE7HVeD25P9Mk+2ZZ70HfmiCuC9kOshnlwZiGQzlzm33XJt7yCu2zFBfyn1HYN5hlnLb ElkRb/qMDyWHfShALSA56v7qAbmO0Y5DVEZ6CwxWj2+t9rgtd7I5sVolzPSJlCtm6IeI yh7A== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:cc:to:subject:message-id:date:from:in-reply-to :references:mime-version:dkim-signature; bh=HJLtePqUNhM4zQSXLUYUwpOWeYPKdhMjC6eTeYNKtlA=; b=Rjxz3l2+P0E1APLHUf5hBpSASI65wfraMll3FGmBpU7nCP2T6PNEdAPBv8wXwAlNuc lJgk8QFs5l4NXdHWv0AfCAOqvlJ9ZXg02QIiNDHha7W36ylUs99UxPR/zOmyPQGWTBJ6 Q05XliFbEzUwjj/yOarAd8tHJA4PJP9WK8PIpcJ5ErEd58GFdwA/UIiL5c6bSAWn2vun NDfi7Q4auSXcPLzgf13XutEArBRZIyFUJ6Qn3qKZDFMrvTsOeqso1P+2yb0HysyO8GIh DSitvGseKfaSIR0hz4SYEdnPWz4Z+iYzb+Oct7IKtrw43r2OW53low5NHKbLp698gke8 C4hA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b="OmDzd/AO"; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id cb24si14885258edb.482.2021.03.16.14.36.38; Tue, 16 Mar 2021 14:37:01 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b="OmDzd/AO"; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229780AbhCPVfF (ORCPT + 99 others); Tue, 16 Mar 2021 17:35:05 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:59652 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229559AbhCPVfB (ORCPT ); Tue, 16 Mar 2021 17:35:01 -0400 Received: from mail-yb1-xb2a.google.com (mail-yb1-xb2a.google.com [IPv6:2607:f8b0:4864:20::b2a]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id A6921C06174A; Tue, 16 Mar 2021 14:34:51 -0700 (PDT) Received: by mail-yb1-xb2a.google.com with SMTP id 133so38390702ybd.5; Tue, 16 Mar 2021 14:34:51 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=HJLtePqUNhM4zQSXLUYUwpOWeYPKdhMjC6eTeYNKtlA=; b=OmDzd/AOwGZf8jOOAfzfCn+9DBEoeSzJEJeBbb6K3joUj7n8F3/FRIFXVJ1FTSeWm7 HIKAuSswnLeghQwvVsfg76z1DLA11TOKWIPcJ92mG1iMhT5WlV4fEJC0iNQljR4n+3t9 Hhpztbpx73ZUcnTqVDE7TMeR1VjYTd8aYSpyE4MGPpSDiQ9z1eX9SuQZqb3EULhzpQ2B 9qktLZUeKwMlpotHSWrEqxicOqZLxPGvLFd8RarmrWrjdre44FtVgy1xilNpSNLMI0uJ q8ubRX9enYaYegaop/0OuqR+QLnLrk126J/UCtkp4VnuvO4MD7BFo4gqhJQYs169/WU1 D7Wg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=HJLtePqUNhM4zQSXLUYUwpOWeYPKdhMjC6eTeYNKtlA=; b=hlwNjAZn1W/OS1g183YvBApbSDgPAcUrXBEyYiadqA6P6GNAHPEcplgTSk3635gMO8 uSDLmy3DJfgBa6jpuDvtjTF99CCo2SgcOElUQ1tFCz8m9Vv7yPDQcGTkbZX+PERRXo5S aaDm5zLH0dzD5Er9OsWuN3wQ4UH+EJh45DjEYgv84kcceCmBpF+3tGHsZNDUZkY224g5 qpmTnP7KSrkBkxoEcbi0wY2HzhN9jZ1TFwxOJ9aE52xPZADt34/v3uiMYuO6oLQ5zDwE Qlb8A8MVBJqsRbm56wRKjAW7inpjfXrM+hDx9xjV+2pMh++cZpUdtmWRtbZEffRJkZYJ FAxQ== X-Gm-Message-State: AOAM530l1mQLGRYl8F3Eh/JZN+uHKxKbp2cFRzavc1VmCgS68nA7DpiB o4wCB91egtLPztZYQuav8AKBjKFIZ/ofOCO6pF0= X-Received: by 2002:a25:3d46:: with SMTP id k67mr1237486yba.510.1615930490897; Tue, 16 Mar 2021 14:34:50 -0700 (PDT) MIME-Version: 1.0 References: <20210314173839.457768-1-pctammela@gmail.com> <5083f82b-39fc-9d46-bcd0-3a6be2fc7f98@iogearbox.net> In-Reply-To: <5083f82b-39fc-9d46-bcd0-3a6be2fc7f98@iogearbox.net> From: Andrii Nakryiko Date: Tue, 16 Mar 2021 14:34:40 -0700 Message-ID: Subject: Re: [PATCH] libbpf: avoid inline hint definition from 'linux/stddef.h' To: Daniel Borkmann Cc: Pedro Tammela , Alexei Starovoitov , Andrii Nakryiko , Martin KaFai Lau , Song Liu , Yonghong Song , John Fastabend , KP Singh , Nathan Chancellor , Nick Desaulniers , Networking , bpf , open list , clang-built-linux Content-Type: text/plain; charset="UTF-8" Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Tue, Mar 16, 2021 at 2:01 PM Daniel Borkmann wrote: > > On 3/14/21 6:38 PM, Pedro Tammela wrote: > > Linux headers might pull 'linux/stddef.h' which defines > > '__always_inline' as the following: > > > > #ifndef __always_inline > > #define __always_inline __inline__ > > #endif > > > > This becomes an issue if the program picks up the 'linux/stddef.h' > > definition as the macro now just hints inline to clang. > > How did the program end up including linux/stddef.h ? Would be good to > also have some more details on how we got here for the commit desc. It's an UAPI header, so why not? Is there anything special about stddef.h that makes it unsuitable to be included? > > > This change now enforces the proper definition for BPF programs > > regardless of the include order. > > > > Signed-off-by: Pedro Tammela > > --- > > tools/lib/bpf/bpf_helpers.h | 7 +++++-- > > 1 file changed, 5 insertions(+), 2 deletions(-) > > > > diff --git a/tools/lib/bpf/bpf_helpers.h b/tools/lib/bpf/bpf_helpers.h > > index ae6c975e0b87..5fa483c0b508 100644 > > --- a/tools/lib/bpf/bpf_helpers.h > > +++ b/tools/lib/bpf/bpf_helpers.h > > @@ -29,9 +29,12 @@ > > */ > > #define SEC(NAME) __attribute__((section(NAME), used)) > > > > -#ifndef __always_inline > > +/* > > + * Avoid 'linux/stddef.h' definition of '__always_inline'. > > + */ > > I think the comment should have more details on 'why' we undef it as in > few months looking at it again, the next question to dig into would be > what was wrong with linux/stddef.h. Providing a better rationale would > be nice for readers here. So for whatever reason commit bot didn't send notification, but I've already landed this yesterday. To me, with #undef + #define it's pretty clear that we "force-define" __always_inline exactly how we want it, but we can certainly add clarifying comment in the follow up, if you think it's needed. > > > +#undef __always_inline > > #define __always_inline inline __attribute__((always_inline)) > > -#endif > > + > > #ifndef __noinline > > #define __noinline __attribute__((noinline)) > > #endif > > >