From: Bruce Richardson <bruce.richardson@intel.com>
To: Tyler Retzlaff <roretzla@linux.microsoft.com>
Cc: "Morten Brørup" <mb@smartsharesystems.com>,
"Stephen Hemminger" <stephen@networkplumber.org>,
"Thomas Monjalon" <thomas@monjalon.net>,
"David Marchand" <david.marchand@redhat.com>,
dev@dpdk.org, "Ali Alnubani" <alialnu@nvidia.com>,
galco@nvidia.com
Subject: Re: [PATCH v5] build: update DPDK to use C11 standard
Date: Fri, 11 Aug 2023 09:52:34 +0100 [thread overview]
Message-ID: <ZNX20iUI4YV4jPvZ@bricha3-MOBL.ger.corp.intel.com> (raw)
In-Reply-To: <20230810223443.GA5743@linuxonhyperv3.guj3yctzbm1etfxqx2vob5hsef.xx.internal.cloudapp.net>
On Thu, Aug 10, 2023 at 03:34:43PM -0700, Tyler Retzlaff wrote:
> On Thu, Aug 10, 2023 at 08:17:23PM +0200, Morten Brørup wrote:
> > > From: Stephen Hemminger [mailto:stephen@networkplumber.org]
> > > Sent: Thursday, 10 August 2023 19.03
> > >
> > > On Thu, 10 Aug 2023 18:49:09 +0200
> > > Thomas Monjalon <thomas@monjalon.net> wrote:
> > >
> > > > 10/08/2023 18:35, Bruce Richardson:
> > > > > On Thu, Aug 10, 2023 at 07:48:39AM -0700, Stephen Hemminger wrote:
> > > > > > On Thu, 10 Aug 2023 15:34:43 +0200
> > > > > > Thomas Monjalon <thomas@monjalon.net> wrote:
> > > > > >
> > > > > > > 03/08/2023 15:36, David Marchand:
> > > > > > > > On Wed, Aug 2, 2023 at 2:32 PM Bruce Richardson
> > > > > > > > <bruce.richardson@intel.com> wrote:
> > > > > > > > >
> > > > > > > > > As previously announced, DPDK 23.11 will require a C11
> > > supporting
> > > > > > > > > compiler and will use the C11 standard in all builds.
> > > > > > > > >
> > > > > > > > > Forcing use of the C standard, rather than the standard with
> > > > > > > > > GNU extensions, means that some posix definitions which are
> > > not in
> > > > > > > > > the C standard are unavailable by default. We fix this by
> > > ensuring
> > > > > > > > > the correct defines or cflags are passed to the components
> > > that
> > > > > > > > > need them.
> > > > > > > > >
> > > > > > > > > Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
> > > > > > > > > Acked-by: Morten Brørup <mb@smartsharesystems.com>
> > > > > > > > > Acked-by: Tyler Retzlaff <roretzla@linux.microsoft.com>
> > > > > > > > Tested-by: Ali Alnubani <alialnu@nvidia.com>
> > > > > > > >
> > > > > > > > The CI results look good.
> > > > > > > >
> > > > > > > > Applied, thanks!
> > > > > > >
> > > > > > > The compiler support is updated, that's fine.
> > > > > > > Should we go further and document some major Linux distributions?
> > > > > > > One concern is to make clear RHEL 7 is not supported anymore.
> > > > > > > Should it be a release note?
> > > > > > >
> > > > >
> > > > > Well, DPDK currently is still building fine on Centos 7 for me, so
> > > let's
> > > > > hold off on claiming anything until it's definitely broken.
> > > > >
> > > > > > >
> > > > > >
> > > > > > Should be addressed in linux/sys_reqs.rst as well as deprecation
> > > notice.
> > > > > > Also, is it possible to add automated check in build for compiler
> > > version?
> > > > >
> > > > > I'd be a little careful about what we claim, and I think current docs
> > > are
> > > > > accurate vs our original plans. What we didn't plan to support was
> > > the GCC
> > > > > and Clang compiler versions in RHEL 7, but if one installs an updated
> > > GCC,
> > > > > for example, the build should be fine on RHEL 7.
> > > > >
> > > > > Now, though, we are having to re-evaluate our use of stdatomics,
> > > which
> > > > > means we may not actually break RHEL 7 compatibility after all. We'll
> > > have
> > > > > to "watch this space" as the saying goes!
> > > > >
> > > > > Overall, I think the approach of build-time checks is the best, but
> > > not
> > > > > for specific versions, but instead for capabilities. If/when we add
> > > support
> > > > > for stdatomics to DPDK builds on Linux/BSD, at that point we put in
> > > the
> > > > > initial compiler checks a suitable check for them being present and
> > > output
> > > > > a suitable error if not found.
> >
> > Exactly. Capabilities checks is the right way to go when cross compiling.
> >
> > > >
> > > > OK looks good
> > >
> > > Note: RHEL 7 official end of maintenance support is not until June 2024.
> > >
> >
> > It was agreed to abandon RHEL 7, mainly driven by the need for C11 stdatomic.h, which is not supported by the GCC C compiler included with RHEL 7. So it pains me to admit that Stephen has a valid point here, after it turned out that the GCC g++ is not C11 compatible.
>
> we would substantially reduce porting delta to retain C11, there are a
> number of other things that help with portability from C11 that we can
> utilized that i hadn't brought up before since it had been resolved to
> adopt it.
>
> it would be really unfortunate to say we aren't going to require C11
> since that would cause me to have to bring a lot more conditional
> compile into the tree.
>
> just fyi
>
As far as I know we are requiring C11, and the meson.build file on main
tree currently has set the minimum for that. We just haven't got code in
there yet that uses the C11 atomics, which is the bit that is missing from
the RHEL 7 compiler.
I agree that we should not actually actively support RHEL 7 - I just
wouldn't call attention to the fact that it's no longer supported if it
still happens to work. Once we actually break it, I'm all for documenting
that it's not supported. [NOTE: I both cases, I'm not saying that we call
it out explicitly as supported either - I'm just talking about a release
note entry saying the opposite!]
/Bruce
next prev parent reply other threads:[~2023-08-11 8:52 UTC|newest]
Thread overview: 45+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-07-31 10:38 [PATCH] " Bruce Richardson
2023-07-31 10:51 ` Morten Brørup
2023-07-31 15:58 ` [PATCH v2] " Bruce Richardson
2023-07-31 16:24 ` Tyler Retzlaff
2023-07-31 16:42 ` Tyler Retzlaff
2023-07-31 16:58 ` [PATCH v3] " Bruce Richardson
2023-07-31 17:05 ` Tyler Retzlaff
2023-08-01 0:39 ` Patrick Robb
2023-08-01 9:20 ` Bruce Richardson
2023-08-01 10:19 ` Bruce Richardson
2023-08-01 10:35 ` David Marchand
2023-08-01 10:39 ` Bruce Richardson
2023-08-01 10:50 ` Bruce Richardson
2023-08-01 12:42 ` Ali Alnubani
2023-08-01 13:03 ` Bruce Richardson
2023-08-01 13:22 ` Bruce Richardson
2023-08-01 13:47 ` Ali Alnubani
2023-08-01 14:00 ` Bruce Richardson
2023-08-02 10:10 ` Bruce Richardson
2023-08-01 10:37 ` Thomas Monjalon
2023-08-01 14:00 ` Ali Alnubani
2023-08-01 13:15 ` [PATCH v4] " Bruce Richardson
2023-08-01 13:24 ` David Marchand
2023-08-01 13:29 ` Bruce Richardson
2023-08-01 13:34 ` David Marchand
2023-08-01 15:47 ` Ali Alnubani
2023-08-01 15:50 ` Bruce Richardson
2023-08-01 16:20 ` Tyler Retzlaff
2023-08-01 20:12 ` Patrick Robb
2023-08-02 6:32 ` David Marchand
2023-08-02 13:40 ` Patrick Robb
2023-08-03 9:21 ` David Marchand
2023-08-02 12:31 ` [PATCH v5] " Bruce Richardson
2023-08-02 12:35 ` Bruce Richardson
2023-08-03 12:38 ` Ali Alnubani
2023-08-03 13:36 ` David Marchand
2023-08-10 13:34 ` Thomas Monjalon
2023-08-10 14:48 ` Stephen Hemminger
2023-08-10 16:35 ` Bruce Richardson
2023-08-10 16:49 ` Thomas Monjalon
2023-08-10 17:02 ` Stephen Hemminger
2023-08-10 18:17 ` Morten Brørup
2023-08-10 22:34 ` Tyler Retzlaff
2023-08-11 8:52 ` Bruce Richardson [this message]
2023-08-11 10:12 ` Morten Brørup
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=ZNX20iUI4YV4jPvZ@bricha3-MOBL.ger.corp.intel.com \
--to=bruce.richardson@intel.com \
--cc=alialnu@nvidia.com \
--cc=david.marchand@redhat.com \
--cc=dev@dpdk.org \
--cc=galco@nvidia.com \
--cc=mb@smartsharesystems.com \
--cc=roretzla@linux.microsoft.com \
--cc=stephen@networkplumber.org \
--cc=thomas@monjalon.net \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).