* [PATCH] build: update DPDK to use C11 standard @ 2023-07-31 10:38 Bruce Richardson 2023-07-31 10:51 ` Morten Brørup ` (4 more replies) 0 siblings, 5 replies; 45+ messages in thread From: Bruce Richardson @ 2023-07-31 10:38 UTC (permalink / raw) To: dev; +Cc: Bruce Richardson As previously announced, DPDK 23.11 will require a C11 supporting compiler and will use the C11 standard in all builds. Signed-off-by: Bruce Richardson <bruce.richardson@intel.com> --- When moving the information about the new requirement to the release notes, a change like this doesn't seem to fit into any existing section. Given its global scope and importance, I've therefore just put it on top of the file, rather than in any section. --- doc/guides/linux_gsg/sys_reqs.rst | 3 ++- doc/guides/rel_notes/deprecation.rst | 18 ------------------ doc/guides/rel_notes/release_23_11.rst | 17 +++++++++++++++++ meson.build | 1 + 4 files changed, 20 insertions(+), 19 deletions(-) diff --git a/doc/guides/linux_gsg/sys_reqs.rst b/doc/guides/linux_gsg/sys_reqs.rst index dfeaf4e1c5..13be715933 100644 --- a/doc/guides/linux_gsg/sys_reqs.rst +++ b/doc/guides/linux_gsg/sys_reqs.rst @@ -27,7 +27,8 @@ Compilation of the DPDK The setup commands and installed packages needed on various systems may be different. For details on Linux distributions and the versions tested, please consult the DPDK Release Notes. -* General development tools including a supported C compiler such as gcc (version 4.9+) or clang (version 3.4+), +* General development tools including a C compiler supporting the C11 standard, + including standard atomics, for example: GCC (version 5.0+) or Clang (version 3.6+), and ``pkg-config`` or ``pkgconf`` to be used when building end-user binaries against DPDK. * For RHEL/Fedora systems these can be installed using ``dnf groupinstall "Development Tools"`` diff --git a/doc/guides/rel_notes/deprecation.rst b/doc/guides/rel_notes/deprecation.rst index 494b401cda..cc939d3c67 100644 --- a/doc/guides/rel_notes/deprecation.rst +++ b/doc/guides/rel_notes/deprecation.rst @@ -17,24 +17,6 @@ Other API and ABI deprecation notices are to be posted below. Deprecation Notices ------------------- -* C Compiler: From DPDK 23.11 onwards, - building DPDK will require a C compiler which supports the C11 standard, - including support for C11 standard atomics. - - More specifically, the requirements will be: - - * Support for flag "-std=c11" (or similar) - * __STDC_NO_ATOMICS__ is *not defined* when using c11 flag - - Please note: - - * C11, including standard atomics, is supported from GCC version 5 onwards, - and is the default language version in that release - (Ref: https://gcc.gnu.org/gcc-5/changes.html) - * C11 is the default compilation mode in Clang from version 3.6, - which also added support for standard atomics - (Ref: https://releases.llvm.org/3.6.0/tools/clang/docs/ReleaseNotes.html) - * build: Enabling deprecated libraries (``flow_classify``, ``kni``) won't be possible anymore through the use of the ``disable_libs`` build option. A new build option for deprecated libraries will be introduced instead. diff --git a/doc/guides/rel_notes/release_23_11.rst b/doc/guides/rel_notes/release_23_11.rst index 6b4dd21fd0..c8b9ed456c 100644 --- a/doc/guides/rel_notes/release_23_11.rst +++ b/doc/guides/rel_notes/release_23_11.rst @@ -20,6 +20,23 @@ DPDK Release 23.11 ninja -C build doc xdg-open build/doc/guides/html/rel_notes/release_23_11.html +* Build Requirements: From DPDK 23.11 onwards, + building DPDK will require a C compiler which supports the C11 standard, + including support for C11 standard atomics. + + More specifically, the requirements will be: + + * Support for flag "-std=c11" (or similar) + * __STDC_NO_ATOMICS__ is *not defined* when using c11 flag + + Please note: + + * C11, including standard atomics, is supported from GCC version 5 onwards, + and is the default language version in that release + (Ref: https://gcc.gnu.org/gcc-5/changes.html) + * C11 is the default compilation mode in Clang from version 3.6, + which also added support for standard atomics + (Ref: https://releases.llvm.org/3.6.0/tools/clang/docs/ReleaseNotes.html) New Features ------------ diff --git a/meson.build b/meson.build index 39cb73846d..70b54f0c98 100644 --- a/meson.build +++ b/meson.build @@ -9,6 +9,7 @@ project('DPDK', 'c', license: 'BSD', default_options: [ 'buildtype=release', + 'c_std=c11', 'default_library=static', 'warning_level=2', ], -- 2.39.2 ^ permalink raw reply [flat|nested] 45+ messages in thread
* RE: [PATCH] build: update DPDK to use C11 standard 2023-07-31 10:38 [PATCH] build: update DPDK to use C11 standard Bruce Richardson @ 2023-07-31 10:51 ` Morten Brørup 2023-07-31 15:58 ` [PATCH v2] " Bruce Richardson ` (3 subsequent siblings) 4 siblings, 0 replies; 45+ messages in thread From: Morten Brørup @ 2023-07-31 10:51 UTC (permalink / raw) To: Bruce Richardson, dev > From: Bruce Richardson [mailto:bruce.richardson@intel.com] > Sent: Monday, 31 July 2023 12.39 > > As previously announced, DPDK 23.11 will require a C11 supporting > compiler and will use the C11 standard in all builds. > > Signed-off-by: Bruce Richardson <bruce.richardson@intel.com> > > --- Acked-by: Morten Brørup <mb@smartsharesystems.com> ^ permalink raw reply [flat|nested] 45+ messages in thread
* [PATCH v2] build: update DPDK to use C11 standard 2023-07-31 10:38 [PATCH] build: update DPDK to use C11 standard Bruce Richardson 2023-07-31 10:51 ` Morten Brørup @ 2023-07-31 15:58 ` 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 ` (2 subsequent siblings) 4 siblings, 2 replies; 45+ messages in thread From: Bruce Richardson @ 2023-07-31 15:58 UTC (permalink / raw) To: dev; +Cc: Bruce Richardson, Morten Brørup As previously announced, DPDK 23.11 will require a C11 supporting compiler and will use the C11 standard in all builds. Signed-off-by: Bruce Richardson <bruce.richardson@intel.com> Acked-by: Morten Brørup <mb@smartsharesystems.com> --- V2: * Resubmit now that 23.11-rc0 patch applied * Add _POSIX_C_SOURCE macro to eal_common_errno.c to get POSIX definition of strerror_r() with c11 standard. --- doc/guides/linux_gsg/sys_reqs.rst | 3 ++- doc/guides/rel_notes/deprecation.rst | 18 ------------------ doc/guides/rel_notes/release_23_11.rst | 17 +++++++++++++++++ lib/eal/common/eal_common_errno.c | 1 + meson.build | 1 + 5 files changed, 21 insertions(+), 19 deletions(-) diff --git a/doc/guides/linux_gsg/sys_reqs.rst b/doc/guides/linux_gsg/sys_reqs.rst index dfeaf4e1c5..13be715933 100644 --- a/doc/guides/linux_gsg/sys_reqs.rst +++ b/doc/guides/linux_gsg/sys_reqs.rst @@ -27,7 +27,8 @@ Compilation of the DPDK The setup commands and installed packages needed on various systems may be different. For details on Linux distributions and the versions tested, please consult the DPDK Release Notes. -* General development tools including a supported C compiler such as gcc (version 4.9+) or clang (version 3.4+), +* General development tools including a C compiler supporting the C11 standard, + including standard atomics, for example: GCC (version 5.0+) or Clang (version 3.6+), and ``pkg-config`` or ``pkgconf`` to be used when building end-user binaries against DPDK. * For RHEL/Fedora systems these can be installed using ``dnf groupinstall "Development Tools"`` diff --git a/doc/guides/rel_notes/deprecation.rst b/doc/guides/rel_notes/deprecation.rst index 494b401cda..cc939d3c67 100644 --- a/doc/guides/rel_notes/deprecation.rst +++ b/doc/guides/rel_notes/deprecation.rst @@ -17,24 +17,6 @@ Other API and ABI deprecation notices are to be posted below. Deprecation Notices ------------------- -* C Compiler: From DPDK 23.11 onwards, - building DPDK will require a C compiler which supports the C11 standard, - including support for C11 standard atomics. - - More specifically, the requirements will be: - - * Support for flag "-std=c11" (or similar) - * __STDC_NO_ATOMICS__ is *not defined* when using c11 flag - - Please note: - - * C11, including standard atomics, is supported from GCC version 5 onwards, - and is the default language version in that release - (Ref: https://gcc.gnu.org/gcc-5/changes.html) - * C11 is the default compilation mode in Clang from version 3.6, - which also added support for standard atomics - (Ref: https://releases.llvm.org/3.6.0/tools/clang/docs/ReleaseNotes.html) - * build: Enabling deprecated libraries (``flow_classify``, ``kni``) won't be possible anymore through the use of the ``disable_libs`` build option. A new build option for deprecated libraries will be introduced instead. diff --git a/doc/guides/rel_notes/release_23_11.rst b/doc/guides/rel_notes/release_23_11.rst index 6b4dd21fd0..c8b9ed456c 100644 --- a/doc/guides/rel_notes/release_23_11.rst +++ b/doc/guides/rel_notes/release_23_11.rst @@ -20,6 +20,23 @@ DPDK Release 23.11 ninja -C build doc xdg-open build/doc/guides/html/rel_notes/release_23_11.html +* Build Requirements: From DPDK 23.11 onwards, + building DPDK will require a C compiler which supports the C11 standard, + including support for C11 standard atomics. + + More specifically, the requirements will be: + + * Support for flag "-std=c11" (or similar) + * __STDC_NO_ATOMICS__ is *not defined* when using c11 flag + + Please note: + + * C11, including standard atomics, is supported from GCC version 5 onwards, + and is the default language version in that release + (Ref: https://gcc.gnu.org/gcc-5/changes.html) + * C11 is the default compilation mode in Clang from version 3.6, + which also added support for standard atomics + (Ref: https://releases.llvm.org/3.6.0/tools/clang/docs/ReleaseNotes.html) New Features ------------ diff --git a/lib/eal/common/eal_common_errno.c b/lib/eal/common/eal_common_errno.c index ef8f782abb..b30e2f0ad4 100644 --- a/lib/eal/common/eal_common_errno.c +++ b/lib/eal/common/eal_common_errno.c @@ -4,6 +4,7 @@ /* Use XSI-compliant portable version of strerror_r() */ #undef _GNU_SOURCE +#define _POSIX_C_SOURCE 200809L #include <stdio.h> #include <string.h> diff --git a/meson.build b/meson.build index 39cb73846d..70b54f0c98 100644 --- a/meson.build +++ b/meson.build @@ -9,6 +9,7 @@ project('DPDK', 'c', license: 'BSD', default_options: [ 'buildtype=release', + 'c_std=c11', 'default_library=static', 'warning_level=2', ], -- 2.39.2 ^ permalink raw reply [flat|nested] 45+ messages in thread
* Re: [PATCH v2] build: update DPDK to use C11 standard 2023-07-31 15:58 ` [PATCH v2] " Bruce Richardson @ 2023-07-31 16:24 ` Tyler Retzlaff 2023-07-31 16:42 ` Tyler Retzlaff 1 sibling, 0 replies; 45+ messages in thread From: Tyler Retzlaff @ 2023-07-31 16:24 UTC (permalink / raw) To: Bruce Richardson; +Cc: dev, Morten Brørup On Mon, Jul 31, 2023 at 04:58:02PM +0100, Bruce Richardson wrote: > As previously announced, DPDK 23.11 will require a C11 supporting > compiler and will use the C11 standard in all builds. > > 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> ^ permalink raw reply [flat|nested] 45+ messages in thread
* Re: [PATCH v2] build: update DPDK to use C11 standard 2023-07-31 15:58 ` [PATCH v2] " Bruce Richardson 2023-07-31 16:24 ` Tyler Retzlaff @ 2023-07-31 16:42 ` Tyler Retzlaff 1 sibling, 0 replies; 45+ messages in thread From: Tyler Retzlaff @ 2023-07-31 16:42 UTC (permalink / raw) To: Bruce Richardson; +Cc: dev, Morten Brørup On Mon, Jul 31, 2023 at 04:58:02PM +0100, Bruce Richardson wrote: > As previously announced, DPDK 23.11 will require a C11 supporting > compiler and will use the C11 standard in all builds. > > Signed-off-by: Bruce Richardson <bruce.richardson@intel.com> > Acked-by: Morten Brørup <mb@smartsharesystems.com> > > --- > V2: > * Resubmit now that 23.11-rc0 patch applied > * Add _POSIX_C_SOURCE macro to eal_common_errno.c to get POSIX > definition of strerror_r() with c11 standard. > --- > doc/guides/linux_gsg/sys_reqs.rst | 3 ++- > doc/guides/rel_notes/deprecation.rst | 18 ------------------ > doc/guides/rel_notes/release_23_11.rst | 17 +++++++++++++++++ > lib/eal/common/eal_common_errno.c | 1 + > meson.build | 1 + > 5 files changed, 21 insertions(+), 19 deletions(-) > > diff --git a/doc/guides/linux_gsg/sys_reqs.rst b/doc/guides/linux_gsg/sys_reqs.rst > index dfeaf4e1c5..13be715933 100644 > --- a/doc/guides/linux_gsg/sys_reqs.rst > +++ b/doc/guides/linux_gsg/sys_reqs.rst > @@ -27,7 +27,8 @@ Compilation of the DPDK > The setup commands and installed packages needed on various systems may be different. > For details on Linux distributions and the versions tested, please consult the DPDK Release Notes. > > -* General development tools including a supported C compiler such as gcc (version 4.9+) or clang (version 3.4+), > +* General development tools including a C compiler supporting the C11 standard, > + including standard atomics, for example: GCC (version 5.0+) or Clang (version 3.6+), > and ``pkg-config`` or ``pkgconf`` to be used when building end-user binaries against DPDK. > > * For RHEL/Fedora systems these can be installed using ``dnf groupinstall "Development Tools"`` > diff --git a/doc/guides/rel_notes/deprecation.rst b/doc/guides/rel_notes/deprecation.rst > index 494b401cda..cc939d3c67 100644 > --- a/doc/guides/rel_notes/deprecation.rst > +++ b/doc/guides/rel_notes/deprecation.rst > @@ -17,24 +17,6 @@ Other API and ABI deprecation notices are to be posted below. > Deprecation Notices > ------------------- > > -* C Compiler: From DPDK 23.11 onwards, > - building DPDK will require a C compiler which supports the C11 standard, > - including support for C11 standard atomics. > - > - More specifically, the requirements will be: > - > - * Support for flag "-std=c11" (or similar) > - * __STDC_NO_ATOMICS__ is *not defined* when using c11 flag > - > - Please note: > - > - * C11, including standard atomics, is supported from GCC version 5 onwards, > - and is the default language version in that release > - (Ref: https://gcc.gnu.org/gcc-5/changes.html) > - * C11 is the default compilation mode in Clang from version 3.6, > - which also added support for standard atomics > - (Ref: https://releases.llvm.org/3.6.0/tools/clang/docs/ReleaseNotes.html) > - > * build: Enabling deprecated libraries (``flow_classify``, ``kni``) > won't be possible anymore through the use of the ``disable_libs`` build option. > A new build option for deprecated libraries will be introduced instead. > diff --git a/doc/guides/rel_notes/release_23_11.rst b/doc/guides/rel_notes/release_23_11.rst > index 6b4dd21fd0..c8b9ed456c 100644 > --- a/doc/guides/rel_notes/release_23_11.rst > +++ b/doc/guides/rel_notes/release_23_11.rst > @@ -20,6 +20,23 @@ DPDK Release 23.11 > ninja -C build doc > xdg-open build/doc/guides/html/rel_notes/release_23_11.html > > +* Build Requirements: From DPDK 23.11 onwards, > + building DPDK will require a C compiler which supports the C11 standard, > + including support for C11 standard atomics. > + > + More specifically, the requirements will be: > + > + * Support for flag "-std=c11" (or similar) > + * __STDC_NO_ATOMICS__ is *not defined* when using c11 flag > + > + Please note: > + > + * C11, including standard atomics, is supported from GCC version 5 onwards, > + and is the default language version in that release > + (Ref: https://gcc.gnu.org/gcc-5/changes.html) > + * C11 is the default compilation mode in Clang from version 3.6, > + which also added support for standard atomics > + (Ref: https://releases.llvm.org/3.6.0/tools/clang/docs/ReleaseNotes.html) > > New Features > ------------ > diff --git a/lib/eal/common/eal_common_errno.c b/lib/eal/common/eal_common_errno.c > index ef8f782abb..b30e2f0ad4 100644 > --- a/lib/eal/common/eal_common_errno.c > +++ b/lib/eal/common/eal_common_errno.c > @@ -4,6 +4,7 @@ > > /* Use XSI-compliant portable version of strerror_r() */ > #undef _GNU_SOURCE > +#define _POSIX_C_SOURCE 200809L > > #include <stdio.h> > #include <string.h> > diff --git a/meson.build b/meson.build > index 39cb73846d..70b54f0c98 100644 > --- a/meson.build > +++ b/meson.build > @@ -9,6 +9,7 @@ project('DPDK', 'c', > license: 'BSD', > default_options: [ > 'buildtype=release', > + 'c_std=c11', > 'default_library=static', > 'warning_level=2', > ], > -- oh I acked v2 (and you can maintain that ack) but one additional removal of forced -std=gnu99 is maybe necessary? drivers/net/failsafe/meson.build probably should remove cflags += '-std=gnu99' if we remove it we inherit the -std=c11 from meson project configuration and define a _POSIX_C_SOURCE narrowly where necessary (if it is needed). ^ permalink raw reply [flat|nested] 45+ messages in thread
* [PATCH v3] build: update DPDK to use C11 standard 2023-07-31 10:38 [PATCH] build: update DPDK to use C11 standard Bruce Richardson 2023-07-31 10:51 ` Morten Brørup 2023-07-31 15:58 ` [PATCH v2] " Bruce Richardson @ 2023-07-31 16:58 ` Bruce Richardson 2023-07-31 17:05 ` Tyler Retzlaff 2023-08-01 13:15 ` [PATCH v4] " Bruce Richardson 2023-08-02 12:31 ` [PATCH v5] " Bruce Richardson 4 siblings, 1 reply; 45+ messages in thread From: Bruce Richardson @ 2023-07-31 16:58 UTC (permalink / raw) To: dev; +Cc: Bruce Richardson, Morten Brørup, Tyler Retzlaff As previously announced, DPDK 23.11 will require a C11 supporting compiler and will use the C11 standard in all builds. 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> --- V3: * remove (now unneeded) use of -std=gnu99 in failsafe net driver. V2: * Resubmit now that 23.11-rc0 patch applied * Add _POSIX_C_SOURCE macro to eal_common_errno.c to get POSIX definition of strerror_r() with c11 standard. --- doc/guides/linux_gsg/sys_reqs.rst | 3 ++- doc/guides/rel_notes/deprecation.rst | 18 ------------------ doc/guides/rel_notes/release_23_11.rst | 17 +++++++++++++++++ drivers/net/failsafe/meson.build | 1 - lib/eal/common/eal_common_errno.c | 1 + meson.build | 1 + 6 files changed, 21 insertions(+), 20 deletions(-) diff --git a/doc/guides/linux_gsg/sys_reqs.rst b/doc/guides/linux_gsg/sys_reqs.rst index dfeaf4e1c5..13be715933 100644 --- a/doc/guides/linux_gsg/sys_reqs.rst +++ b/doc/guides/linux_gsg/sys_reqs.rst @@ -27,7 +27,8 @@ Compilation of the DPDK The setup commands and installed packages needed on various systems may be different. For details on Linux distributions and the versions tested, please consult the DPDK Release Notes. -* General development tools including a supported C compiler such as gcc (version 4.9+) or clang (version 3.4+), +* General development tools including a C compiler supporting the C11 standard, + including standard atomics, for example: GCC (version 5.0+) or Clang (version 3.6+), and ``pkg-config`` or ``pkgconf`` to be used when building end-user binaries against DPDK. * For RHEL/Fedora systems these can be installed using ``dnf groupinstall "Development Tools"`` diff --git a/doc/guides/rel_notes/deprecation.rst b/doc/guides/rel_notes/deprecation.rst index 494b401cda..cc939d3c67 100644 --- a/doc/guides/rel_notes/deprecation.rst +++ b/doc/guides/rel_notes/deprecation.rst @@ -17,24 +17,6 @@ Other API and ABI deprecation notices are to be posted below. Deprecation Notices ------------------- -* C Compiler: From DPDK 23.11 onwards, - building DPDK will require a C compiler which supports the C11 standard, - including support for C11 standard atomics. - - More specifically, the requirements will be: - - * Support for flag "-std=c11" (or similar) - * __STDC_NO_ATOMICS__ is *not defined* when using c11 flag - - Please note: - - * C11, including standard atomics, is supported from GCC version 5 onwards, - and is the default language version in that release - (Ref: https://gcc.gnu.org/gcc-5/changes.html) - * C11 is the default compilation mode in Clang from version 3.6, - which also added support for standard atomics - (Ref: https://releases.llvm.org/3.6.0/tools/clang/docs/ReleaseNotes.html) - * build: Enabling deprecated libraries (``flow_classify``, ``kni``) won't be possible anymore through the use of the ``disable_libs`` build option. A new build option for deprecated libraries will be introduced instead. diff --git a/doc/guides/rel_notes/release_23_11.rst b/doc/guides/rel_notes/release_23_11.rst index 6b4dd21fd0..c8b9ed456c 100644 --- a/doc/guides/rel_notes/release_23_11.rst +++ b/doc/guides/rel_notes/release_23_11.rst @@ -20,6 +20,23 @@ DPDK Release 23.11 ninja -C build doc xdg-open build/doc/guides/html/rel_notes/release_23_11.html +* Build Requirements: From DPDK 23.11 onwards, + building DPDK will require a C compiler which supports the C11 standard, + including support for C11 standard atomics. + + More specifically, the requirements will be: + + * Support for flag "-std=c11" (or similar) + * __STDC_NO_ATOMICS__ is *not defined* when using c11 flag + + Please note: + + * C11, including standard atomics, is supported from GCC version 5 onwards, + and is the default language version in that release + (Ref: https://gcc.gnu.org/gcc-5/changes.html) + * C11 is the default compilation mode in Clang from version 3.6, + which also added support for standard atomics + (Ref: https://releases.llvm.org/3.6.0/tools/clang/docs/ReleaseNotes.html) New Features ------------ diff --git a/drivers/net/failsafe/meson.build b/drivers/net/failsafe/meson.build index 6013e13722..c1d361083b 100644 --- a/drivers/net/failsafe/meson.build +++ b/drivers/net/failsafe/meson.build @@ -7,7 +7,6 @@ if is_windows subdir_done() endif -cflags += '-std=gnu99' cflags += '-D_DEFAULT_SOURCE' cflags += '-D_XOPEN_SOURCE=700' cflags += '-pedantic' diff --git a/lib/eal/common/eal_common_errno.c b/lib/eal/common/eal_common_errno.c index ef8f782abb..b30e2f0ad4 100644 --- a/lib/eal/common/eal_common_errno.c +++ b/lib/eal/common/eal_common_errno.c @@ -4,6 +4,7 @@ /* Use XSI-compliant portable version of strerror_r() */ #undef _GNU_SOURCE +#define _POSIX_C_SOURCE 200809L #include <stdio.h> #include <string.h> diff --git a/meson.build b/meson.build index 39cb73846d..70b54f0c98 100644 --- a/meson.build +++ b/meson.build @@ -9,6 +9,7 @@ project('DPDK', 'c', license: 'BSD', default_options: [ 'buildtype=release', + 'c_std=c11', 'default_library=static', 'warning_level=2', ], -- 2.39.2 ^ permalink raw reply [flat|nested] 45+ messages in thread
* Re: [PATCH v3] build: update DPDK to use C11 standard 2023-07-31 16:58 ` [PATCH v3] " Bruce Richardson @ 2023-07-31 17:05 ` Tyler Retzlaff 2023-08-01 0:39 ` Patrick Robb 0 siblings, 1 reply; 45+ messages in thread From: Tyler Retzlaff @ 2023-07-31 17:05 UTC (permalink / raw) To: Bruce Richardson; +Cc: dev, Morten Brørup, david.marchand, thomas On Mon, Jul 31, 2023 at 05:58:11PM +0100, Bruce Richardson wrote: > As previously announced, DPDK 23.11 will require a C11 supporting > compiler and will use the C11 standard in all builds. > > 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> > > --- > V3: > * remove (now unneeded) use of -std=gnu99 in failsafe net driver. > > V2: > * Resubmit now that 23.11-rc0 patch applied > * Add _POSIX_C_SOURCE macro to eal_common_errno.c to get POSIX > definition of strerror_r() with c11 standard. > --- Acked-by: Tyler Retzlaff <roretzla@linux.microsoft.com> if there is no objection from others i would like to suggest expedited merge of this series to make it easy to take a dependency on it for atomics changes. thanks! ^ permalink raw reply [flat|nested] 45+ messages in thread
* Re: [PATCH v3] build: update DPDK to use C11 standard 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 0 siblings, 2 replies; 45+ messages in thread From: Patrick Robb @ 2023-08-01 0:39 UTC (permalink / raw) To: Tyler Retzlaff Cc: Bruce Richardson, dev, Morten Brørup, david.marchand, thomas [-- Attachment #1: Type: text/plain, Size: 3183 bytes --] Hi Bruce, I see some failures for this series for our Ubuntu 20.04 containers. And, our DTS testbeds which are on ubuntu 20.04 are skipping running testsuites because they can't compile DPDK. So, that's why it has some missing results for a couple of the Intel NICs. For context, I'll paste below where the compile job terminates in one of our containerized compile test runs. The GCC in use here is version 9.4, so it meets the requirements as described in your patch as far as I can tell. I'll check it out more tomorrow to see whether it's an infra failure, like some missing dependencies. Please let me know if we expect to have no issues with 20.04 or if this is anticipated. Thanks! [1638/2730] Generating symbol file 'drivers/a715181@@rte_net_ixgbe@sha /librte_net_ixgbe.so.24.0.symbols'. [1639/2730] Compiling C object 'drivers/a715181@@tmp_rte_net_mlx4@sta /net_mlx4_mlx4.c.o'. FAILED: drivers/a715181@@tmp_rte_net_mlx4@sta/net_mlx4_mlx4.c.o ccache cc -Idrivers/a715181@@tmp_rte_net_mlx4@sta -Idrivers -I../drivers -Idrivers/net/mlx4 -I../drivers/net/mlx4 -Ilib/ethdev -I../lib/ethdev -I. -I../ -Iconfig -I../config -Ilib/eal/include -I../lib/eal/include -Ilib/eal/linux/include -I../lib/eal/linux/include -Ilib/eal/x86/include -I../lib/eal/x86/include -Ilib/eal/common -I../lib/eal/common -Ilib/eal -I../lib/eal -Ilib/kvargs -I../lib/kvargs -Ilib/telemetry/../metrics -I../lib/telemetry/../metrics -Ilib/telemetry -I../lib/telemetry -Ilib/net -I../lib/net -Ilib/mbuf -I../lib/mbuf -Ilib/mempool -I../lib/mempool -Ilib/ring -I../lib/ring -Ilib/meter -I../lib/meter -Idrivers/bus/pci -I../drivers/bus/pci -I../drivers/bus/pci/linux -Ilib/pci -I../lib/pci -Idrivers/bus/vdev -I../drivers/bus/vdev -I/usr/include/libnl3 -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -Wall -Winvalid-pch -Wextra -Werror -std=c11 -O3 -include rte_config.h -Wcast-qual -Wdeprecated -Wformat -Wformat-nonliteral -Wformat-security -Wmissing-declarations -Wmissing-prototypes -Wnested-externs -Wold-style-definition -Wpointer-arith -Wsign-compare -Wstrict-prototypes -Wundef -Wwrite-strings -Wno-address-of-packed-member -Wno-packed-not-aligned -Wno-missing-field-initializers -D_GNU_SOURCE -fPIC -march=native -DALLOW_EXPERIMENTAL_API -DALLOW_INTERNAL_API -Wno-format-truncation -std=c11 -Wno-strict-prototypes -D_BSD_SOURCE -D_DEFAULT_SOURCE -D_XOPEN_SOURCE=600 -UPEDANTIC -DRTE_LOG_DEFAULT_LOGTYPE=pmd.net.mlx4 -MD -MQ 'drivers/a715181@@tmp_rte_net_mlx4@sta/net_mlx4_mlx4.c.o' -MF 'drivers/a715181@@tmp_rte_net_mlx4@sta/net_mlx4_mlx4.c.o.d' -o 'drivers/a715181@@tmp_rte_net_mlx4@sta/net_mlx4_mlx4.c.o' -c ../drivers/net/mlx4/mlx4.c In file included from ../drivers/net/mlx4/mlx4_rxtx.h:27, from ../drivers/net/mlx4/mlx4.c:49: ../drivers/net/mlx4/mlx4_prm.h:111:8: error: redefinition of 'struct mlx4_wqe_lso_seg' 111 | struct mlx4_wqe_lso_seg { | ^~~~~~~~~~~~~~~~ In file included from ../drivers/net/mlx4/mlx4_glue.h:16, from ../drivers/net/mlx4/mlx4.c:46: /usr/include/infiniband/mlx4dv.h:410:8: note: originally defined here 410 | struct mlx4_wqe_lso_seg { | ^~~~~~~~~~~~~~~~ ninja: build stopped: subcommand failed. [-- Attachment #2: Type: text/html, Size: 3425 bytes --] ^ permalink raw reply [flat|nested] 45+ messages in thread
* Re: [PATCH v3] build: update DPDK to use C11 standard 2023-08-01 0:39 ` Patrick Robb @ 2023-08-01 9:20 ` Bruce Richardson 2023-08-01 10:19 ` Bruce Richardson 1 sibling, 0 replies; 45+ messages in thread From: Bruce Richardson @ 2023-08-01 9:20 UTC (permalink / raw) To: Patrick Robb Cc: Tyler Retzlaff, dev, Morten Brørup, david.marchand, thomas On Mon, Jul 31, 2023 at 08:39:31PM -0400, Patrick Robb wrote: > Hi Bruce, > I see some failures for this series for our Ubuntu 20.04 containers. > And, our DTS testbeds which are on ubuntu 20.04 are skipping running > testsuites because they can't compile DPDK. So, that's why it has some > missing results for a couple of the Intel NICs. For context, I'll paste > below where the compile job terminates in one of our containerized > compile test runs. The GCC in use here is version 9.4, so it meets the > requirements as described in your patch as far as I can tell. I'll > check it out more tomorrow to see whether it's an infra failure, like > some missing dependencies. Please let me know if we expect to have no > issues with 20.04 or if this is anticipated. > Thanks! While not anticipated, this is why we have CI so these range of distros can all be checked. There are a lot of failure reports from Ubuntu 20.04 so I think this is a genuine issue. I will fire up a 20.04 VM myself and see what I can find, and submit a new patch revision. /Bruce ^ permalink raw reply [flat|nested] 45+ messages in thread
* Re: [PATCH v3] build: update DPDK to use C11 standard 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:37 ` Thomas Monjalon 1 sibling, 2 replies; 45+ messages in thread From: Bruce Richardson @ 2023-08-01 10:19 UTC (permalink / raw) To: Patrick Robb Cc: Tyler Retzlaff, dev, Morten Brørup, david.marchand, thomas On Mon, Jul 31, 2023 at 08:39:31PM -0400, Patrick Robb wrote: > Hi Bruce, > I see some failures for this series for our Ubuntu 20.04 containers. > And, our DTS testbeds which are on ubuntu 20.04 are skipping running > testsuites because they can't compile DPDK. So, that's why it has some > missing results for a couple of the Intel NICs. For context, I'll paste > below where the compile job terminates in one of our containerized > compile test runs. The GCC in use here is version 9.4, so it meets the > requirements as described in your patch as far as I can tell. I'll > check it out more tomorrow to see whether it's an infra failure, like > some missing dependencies. Please let me know if we expect to have no > issues with 20.04 or if this is anticipated. > Thanks! > [1638/2730] Generating symbol file > 'drivers/a715181@@rte_net_ixgbe@sha/librte_net_ixgbe.so.24.0.symbols'. > [1639/2730] Compiling C object > 'drivers/a715181@@tmp_rte_net_mlx4@sta/net_mlx4_mlx4.c.o'. > FAILED: drivers/a715181@@tmp_rte_net_mlx4@sta/net_mlx4_mlx4.c.o > ccache cc -Idrivers/a715181@@tmp_rte_net_mlx4@sta -Idrivers > -I../drivers -Idrivers/net/mlx4 -I../drivers/net/mlx4 -Ilib/ethdev > -I../lib/ethdev -I. -I../ -Iconfig -I../config -Ilib/eal/include > -I../lib/eal/include -Ilib/eal/linux/include -I../lib/eal/linux/include > -Ilib/eal/x86/include -I../lib/eal/x86/include -Ilib/eal/common > -I../lib/eal/common -Ilib/eal -I../lib/eal -Ilib/kvargs -I../lib/kvargs > -Ilib/telemetry/../metrics -I../lib/telemetry/../metrics > -Ilib/telemetry -I../lib/telemetry -Ilib/net -I../lib/net -Ilib/mbuf > -I../lib/mbuf -Ilib/mempool -I../lib/mempool -Ilib/ring -I../lib/ring > -Ilib/meter -I../lib/meter -Idrivers/bus/pci -I../drivers/bus/pci > -I../drivers/bus/pci/linux -Ilib/pci -I../lib/pci -Idrivers/bus/vdev > -I../drivers/bus/vdev -I/usr/include/libnl3 -fdiagnostics-color=always > -pipe -D_FILE_OFFSET_BITS=64 -Wall -Winvalid-pch -Wextra -Werror > -std=c11 -O3 -include rte_config.h -Wcast-qual -Wdeprecated -Wformat > -Wformat-nonliteral -Wformat-security -Wmissing-declarations > -Wmissing-prototypes -Wnested-externs -Wold-style-definition > -Wpointer-arith -Wsign-compare -Wstrict-prototypes -Wundef > -Wwrite-strings -Wno-address-of-packed-member -Wno-packed-not-aligned > -Wno-missing-field-initializers -D_GNU_SOURCE -fPIC -march=native > -DALLOW_EXPERIMENTAL_API -DALLOW_INTERNAL_API -Wno-format-truncation > -std=c11 -Wno-strict-prototypes -D_BSD_SOURCE -D_DEFAULT_SOURCE > -D_XOPEN_SOURCE=600 -UPEDANTIC -DRTE_LOG_DEFAULT_LOGTYPE=pmd.net.mlx4 > -MD -MQ 'drivers/a715181@@tmp_rte_net_mlx4@sta/net_mlx4_mlx4.c.o' -MF > 'drivers/a715181@@tmp_rte_net_mlx4@sta/net_mlx4_mlx4.c.o.d' -o > 'drivers/a715181@@tmp_rte_net_mlx4@sta/net_mlx4_mlx4.c.o' -c > ../drivers/net/mlx4/mlx4.c > In file included from ../drivers/net/mlx4/mlx4_rxtx.h:27, > from ../drivers/net/mlx4/mlx4.c:49: > ../drivers/net/mlx4/mlx4_prm.h:111:8: error: redefinition of 'struct > mlx4_wqe_lso_seg' > 111 | struct mlx4_wqe_lso_seg { > | ^~~~~~~~~~~~~~~~ > In file included from ../drivers/net/mlx4/mlx4_glue.h:16, > from ../drivers/net/mlx4/mlx4.c:46: > /usr/include/infiniband/mlx4dv.h:410:8: note: originally defined here > 410 | struct mlx4_wqe_lso_seg { > | ^~~~~~~~~~~~~~~~ > ninja: build stopped: subcommand failed. Hi again, I've attempted to reproduce this on my Ubuntu 20.04 VM and failed, everything seems to build ok. Looking through the logs, though, there does appear to be a difference in the configurations in the two cases. I suspect my Ubuntu has an updated verbs package compared to the image you are using. In the log of the failed build, I see: Checking whether type "struct mlx4_wqe_lso_seg" has member "mss_hdr_size" with dependencies libmlx4, libibverbs: NO Configuring mlx4_autoconf.h using configuration While building in my VM, I have: Checking whether type "struct mlx4_wqe_lso_seg" has member "mss_hdr_size" with dependencies libmlx4, libibverbs: YES (cached) Configuring mlx4_autoconf.h using configuration So my verbs mlx4 header has got a different set of definitions to those in the CI machine. My Ubuntu reports as 20.04.6 with libibverbs-dev package version "28.0-1ubuntu1" Can the CI image be updated to latest 20.04 packages? /Bruce ^ permalink raw reply [flat|nested] 45+ messages in thread
* Re: [PATCH v3] build: update DPDK to use C11 standard 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:37 ` Thomas Monjalon 1 sibling, 1 reply; 45+ messages in thread From: David Marchand @ 2023-08-01 10:35 UTC (permalink / raw) To: Bruce Richardson Cc: Patrick Robb, Tyler Retzlaff, dev, Morten Brørup, thomas On Tue, Aug 1, 2023 at 12:19 PM Bruce Richardson <bruce.richardson@intel.com> wrote: > > On Mon, Jul 31, 2023 at 08:39:31PM -0400, Patrick Robb wrote: > > Hi Bruce, > > I see some failures for this series for our Ubuntu 20.04 containers. > > And, our DTS testbeds which are on ubuntu 20.04 are skipping running > > testsuites because they can't compile DPDK. So, that's why it has some > > missing results for a couple of the Intel NICs. For context, I'll paste > > below where the compile job terminates in one of our containerized > > compile test runs. The GCC in use here is version 9.4, so it meets the > > requirements as described in your patch as far as I can tell. I'll > > check it out more tomorrow to see whether it's an infra failure, like > > some missing dependencies. Please let me know if we expect to have no > > issues with 20.04 or if this is anticipated. > > Thanks! > > [1638/2730] Generating symbol file > > 'drivers/a715181@@rte_net_ixgbe@sha/librte_net_ixgbe.so.24.0.symbols'. > > [1639/2730] Compiling C object > > 'drivers/a715181@@tmp_rte_net_mlx4@sta/net_mlx4_mlx4.c.o'. > > FAILED: drivers/a715181@@tmp_rte_net_mlx4@sta/net_mlx4_mlx4.c.o > > ccache cc -Idrivers/a715181@@tmp_rte_net_mlx4@sta -Idrivers > > -I../drivers -Idrivers/net/mlx4 -I../drivers/net/mlx4 -Ilib/ethdev > > -I../lib/ethdev -I. -I../ -Iconfig -I../config -Ilib/eal/include > > -I../lib/eal/include -Ilib/eal/linux/include -I../lib/eal/linux/include > > -Ilib/eal/x86/include -I../lib/eal/x86/include -Ilib/eal/common > > -I../lib/eal/common -Ilib/eal -I../lib/eal -Ilib/kvargs -I../lib/kvargs > > -Ilib/telemetry/../metrics -I../lib/telemetry/../metrics > > -Ilib/telemetry -I../lib/telemetry -Ilib/net -I../lib/net -Ilib/mbuf > > -I../lib/mbuf -Ilib/mempool -I../lib/mempool -Ilib/ring -I../lib/ring > > -Ilib/meter -I../lib/meter -Idrivers/bus/pci -I../drivers/bus/pci > > -I../drivers/bus/pci/linux -Ilib/pci -I../lib/pci -Idrivers/bus/vdev > > -I../drivers/bus/vdev -I/usr/include/libnl3 -fdiagnostics-color=always > > -pipe -D_FILE_OFFSET_BITS=64 -Wall -Winvalid-pch -Wextra -Werror > > -std=c11 -O3 -include rte_config.h -Wcast-qual -Wdeprecated -Wformat > > -Wformat-nonliteral -Wformat-security -Wmissing-declarations > > -Wmissing-prototypes -Wnested-externs -Wold-style-definition > > -Wpointer-arith -Wsign-compare -Wstrict-prototypes -Wundef > > -Wwrite-strings -Wno-address-of-packed-member -Wno-packed-not-aligned > > -Wno-missing-field-initializers -D_GNU_SOURCE -fPIC -march=native > > -DALLOW_EXPERIMENTAL_API -DALLOW_INTERNAL_API -Wno-format-truncation > > -std=c11 -Wno-strict-prototypes -D_BSD_SOURCE -D_DEFAULT_SOURCE > > -D_XOPEN_SOURCE=600 -UPEDANTIC -DRTE_LOG_DEFAULT_LOGTYPE=pmd.net.mlx4 > > -MD -MQ 'drivers/a715181@@tmp_rte_net_mlx4@sta/net_mlx4_mlx4.c.o' -MF > > 'drivers/a715181@@tmp_rte_net_mlx4@sta/net_mlx4_mlx4.c.o.d' -o > > 'drivers/a715181@@tmp_rte_net_mlx4@sta/net_mlx4_mlx4.c.o' -c > > ../drivers/net/mlx4/mlx4.c > > In file included from ../drivers/net/mlx4/mlx4_rxtx.h:27, > > from ../drivers/net/mlx4/mlx4.c:49: > > ../drivers/net/mlx4/mlx4_prm.h:111:8: error: redefinition of 'struct > > mlx4_wqe_lso_seg' > > 111 | struct mlx4_wqe_lso_seg { > > | ^~~~~~~~~~~~~~~~ > > In file included from ../drivers/net/mlx4/mlx4_glue.h:16, > > from ../drivers/net/mlx4/mlx4.c:46: > > /usr/include/infiniband/mlx4dv.h:410:8: note: originally defined here > > 410 | struct mlx4_wqe_lso_seg { > > | ^~~~~~~~~~~~~~~~ > > ninja: build stopped: subcommand failed. > > Hi again, > > I've attempted to reproduce this on my Ubuntu 20.04 VM and failed, > everything seems to build ok. > > Looking through the logs, though, there does appear to be a difference in > the configurations in the two cases. I suspect my Ubuntu has an updated > verbs package compared to the image you are using. In the log of the failed > build, I see: > > Checking whether type "struct mlx4_wqe_lso_seg" has member "mss_hdr_size" with dependencies libmlx4, libibverbs: NO > Configuring mlx4_autoconf.h using configuration > > While building in my VM, I have: > > Checking whether type "struct mlx4_wqe_lso_seg" has member "mss_hdr_size" with dependencies libmlx4, libibverbs: YES (cached) > Configuring mlx4_autoconf.h using configuration > > So my verbs mlx4 header has got a different set of definitions to those in > the CI machine. My Ubuntu reports as 20.04.6 with libibverbs-dev package > version "28.0-1ubuntu1" > > Can the CI image be updated to latest 20.04 packages? > > /Bruce > I can reproduce the issue seen at UNH, with a 20.04.6 container and the same libibverbs as you: ii libibverbs-dev:amd64 28.0-1ubuntu1 amd64 Development files for the libibverbs library So I suspect something is different in container images.. Pasting the (hopefully) relevant meson logs: Running compile: Working directory: /root/dpdk/build/meson-private/tmp0ovvvd9g Command line: ccache cc -I/usr/include/libnl3 /root/dpdk/build/meson-private/tmp0ovvvd9g/testfile.c -o /root/dpdk/build/meson-private/tmp0ovvvd9g/output.obj -pipe -c -D_FILE_OFFSET_BITS=64 -O0 -std=c11 Code: #include <infiniband/mlx4dv.h> void bar(void) { struct mlx4_wqe_lso_seg foo; foo.mss_hdr_size; }; Compiler stdout: Compiler stderr: In file included from /root/dpdk/build/meson-private/tmp0ovvvd9g/testfile.c:1: /usr/include/infiniband/mlx4dv.h:176:2: error: unknown type name 'off_t' 176 | off_t uar_mmap_offset; | ^~~~~ Checking whether type "struct mlx4_wqe_lso_seg" has member "mss_hdr_size" with dependencies libmlx4, libibverbs: NO -- David Marchand ^ permalink raw reply [flat|nested] 45+ messages in thread
* Re: [PATCH v3] build: update DPDK to use C11 standard 2023-08-01 10:35 ` David Marchand @ 2023-08-01 10:39 ` Bruce Richardson 2023-08-01 10:50 ` Bruce Richardson 0 siblings, 1 reply; 45+ messages in thread From: Bruce Richardson @ 2023-08-01 10:39 UTC (permalink / raw) To: David Marchand Cc: Patrick Robb, Tyler Retzlaff, dev, Morten Brørup, thomas On Tue, Aug 01, 2023 at 12:35:21PM +0200, David Marchand wrote: > On Tue, Aug 1, 2023 at 12:19 PM Bruce Richardson > <bruce.richardson@intel.com> wrote: > > > > On Mon, Jul 31, 2023 at 08:39:31PM -0400, Patrick Robb wrote: > > > Hi Bruce, > > > I see some failures for this series for our Ubuntu 20.04 containers. <snip> > > > > Hi again, > > > > I've attempted to reproduce this on my Ubuntu 20.04 VM and failed, > > everything seems to build ok. > > > > Looking through the logs, though, there does appear to be a difference in > > the configurations in the two cases. I suspect my Ubuntu has an updated > > verbs package compared to the image you are using. In the log of the failed > > build, I see: > > > > Checking whether type "struct mlx4_wqe_lso_seg" has member "mss_hdr_size" with dependencies libmlx4, libibverbs: NO > > Configuring mlx4_autoconf.h using configuration > > > > While building in my VM, I have: > > > > Checking whether type "struct mlx4_wqe_lso_seg" has member "mss_hdr_size" with dependencies libmlx4, libibverbs: YES (cached) > > Configuring mlx4_autoconf.h using configuration > > > > So my verbs mlx4 header has got a different set of definitions to those in > > the CI machine. My Ubuntu reports as 20.04.6 with libibverbs-dev package > > version "28.0-1ubuntu1" > > > > Can the CI image be updated to latest 20.04 packages? > > > > /Bruce > > > > I can reproduce the issue seen at UNH, with a 20.04.6 container and > the same libibverbs as you: > ii libibverbs-dev:amd64 28.0-1ubuntu1 > amd64 Development files for the libibverbs library > > So I suspect something is different in container images.. > > Pasting the (hopefully) relevant meson logs: > > Running compile: > Working directory: /root/dpdk/build/meson-private/tmp0ovvvd9g > Command line: ccache cc -I/usr/include/libnl3 > /root/dpdk/build/meson-private/tmp0ovvvd9g/testfile.c -o > /root/dpdk/build/meson-private/tmp0ovvvd9g/output.obj -pipe -c > -D_FILE_OFFSET_BITS=64 -O0 -std=c11 > > Code: > #include <infiniband/mlx4dv.h> > void bar(void) { > struct mlx4_wqe_lso_seg foo; > foo.mss_hdr_size; > > }; > Compiler stdout: > > Compiler stderr: > In file included from /root/dpdk/build/meson-private/tmp0ovvvd9g/testfile.c:1: > /usr/include/infiniband/mlx4dv.h:176:2: error: unknown type name 'off_t' > 176 | off_t uar_mmap_offset; > | ^~~~~ > > Checking whether type "struct mlx4_wqe_lso_seg" has member > "mss_hdr_size" with dependencies libmlx4, libibverbs: NO > Thanks. I'll dig some more. ^ permalink raw reply [flat|nested] 45+ messages in thread
* Re: [PATCH v3] build: update DPDK to use C11 standard 2023-08-01 10:39 ` Bruce Richardson @ 2023-08-01 10:50 ` Bruce Richardson 2023-08-01 12:42 ` Ali Alnubani 0 siblings, 1 reply; 45+ messages in thread From: Bruce Richardson @ 2023-08-01 10:50 UTC (permalink / raw) To: David Marchand Cc: Patrick Robb, Tyler Retzlaff, dev, Morten Brørup, thomas On Tue, Aug 01, 2023 at 11:39:06AM +0100, Bruce Richardson wrote: > On Tue, Aug 01, 2023 at 12:35:21PM +0200, David Marchand wrote: > > On Tue, Aug 1, 2023 at 12:19 PM Bruce Richardson > > <bruce.richardson@intel.com> wrote: > > > > > > On Mon, Jul 31, 2023 at 08:39:31PM -0400, Patrick Robb wrote: > > > > Hi Bruce, > > > > I see some failures for this series for our Ubuntu 20.04 containers. > <snip> > > > > > > Hi again, > > > > > > I've attempted to reproduce this on my Ubuntu 20.04 VM and failed, > > > everything seems to build ok. > > > > > > Looking through the logs, though, there does appear to be a difference in > > > the configurations in the two cases. I suspect my Ubuntu has an updated > > > verbs package compared to the image you are using. In the log of the failed > > > build, I see: > > > > > > Checking whether type "struct mlx4_wqe_lso_seg" has member "mss_hdr_size" with dependencies libmlx4, libibverbs: NO > > > Configuring mlx4_autoconf.h using configuration > > > > > > While building in my VM, I have: > > > > > > Checking whether type "struct mlx4_wqe_lso_seg" has member "mss_hdr_size" with dependencies libmlx4, libibverbs: YES (cached) > > > Configuring mlx4_autoconf.h using configuration > > > > > > So my verbs mlx4 header has got a different set of definitions to those in > > > the CI machine. My Ubuntu reports as 20.04.6 with libibverbs-dev package > > > version "28.0-1ubuntu1" > > > > > > Can the CI image be updated to latest 20.04 packages? > > > > > > /Bruce > > > > > > > I can reproduce the issue seen at UNH, with a 20.04.6 container and > > the same libibverbs as you: > > ii libibverbs-dev:amd64 28.0-1ubuntu1 > > amd64 Development files for the libibverbs library > > > > So I suspect something is different in container images.. > > > > Pasting the (hopefully) relevant meson logs: > > > > Running compile: > > Working directory: /root/dpdk/build/meson-private/tmp0ovvvd9g > > Command line: ccache cc -I/usr/include/libnl3 > > /root/dpdk/build/meson-private/tmp0ovvvd9g/testfile.c -o > > /root/dpdk/build/meson-private/tmp0ovvvd9g/output.obj -pipe -c > > -D_FILE_OFFSET_BITS=64 -O0 -std=c11 > > > > Code: > > #include <infiniband/mlx4dv.h> > > void bar(void) { > > struct mlx4_wqe_lso_seg foo; > > foo.mss_hdr_size; > > > > }; > > Compiler stdout: > > > > Compiler stderr: > > In file included from /root/dpdk/build/meson-private/tmp0ovvvd9g/testfile.c:1: > > /usr/include/infiniband/mlx4dv.h:176:2: error: unknown type name 'off_t' > > 176 | off_t uar_mmap_offset; > > | ^~~~~ > > > > Checking whether type "struct mlx4_wqe_lso_seg" has member > > "mss_hdr_size" with dependencies libmlx4, libibverbs: NO > > > Thanks. I'll dig some more. I think the meson version may be the culprit here. In my meson log I don't see the -std=c11 flag appended to the test compilation command. Let me downgrade my meson version and see if I can reproduce. /Bruce ^ permalink raw reply [flat|nested] 45+ messages in thread
* RE: [PATCH v3] build: update DPDK to use C11 standard 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 0 siblings, 2 replies; 45+ messages in thread From: Ali Alnubani @ 2023-08-01 12:42 UTC (permalink / raw) To: Bruce Richardson, David Marchand Cc: Patrick Robb, Tyler Retzlaff, dev, Morten Brørup, NBU-Contact-Thomas Monjalon (EXTERNAL) > -----Original Message----- > From: Bruce Richardson <bruce.richardson@intel.com> > Sent: Tuesday, August 1, 2023 1:51 PM > To: David Marchand <david.marchand@redhat.com> > Cc: Patrick Robb <probb@iol.unh.edu>; Tyler Retzlaff > <roretzla@linux.microsoft.com>; dev@dpdk.org; Morten Brørup > <mb@smartsharesystems.com>; NBU-Contact-Thomas Monjalon > (EXTERNAL) <thomas@monjalon.net> > Subject: Re: [PATCH v3] build: update DPDK to use C11 standard > > On Tue, Aug 01, 2023 at 11:39:06AM +0100, Bruce Richardson wrote: > > On Tue, Aug 01, 2023 at 12:35:21PM +0200, David Marchand wrote: > > > On Tue, Aug 1, 2023 at 12:19 PM Bruce Richardson > > > <bruce.richardson@intel.com> wrote: > > > > > > > > On Mon, Jul 31, 2023 at 08:39:31PM -0400, Patrick Robb wrote: > > > > > Hi Bruce, > > > > > I see some failures for this series for our Ubuntu 20.04 containers. > > <snip> > > > > > > > > Hi again, > > > > > > > > I've attempted to reproduce this on my Ubuntu 20.04 VM and failed, > > > > everything seems to build ok. > > > > > > > > Looking through the logs, though, there does appear to be a difference in > > > > the configurations in the two cases. I suspect my Ubuntu has an updated > > > > verbs package compared to the image you are using. In the log of the > failed > > > > build, I see: > > > > > > > > Checking whether type "struct mlx4_wqe_lso_seg" has member > "mss_hdr_size" with dependencies libmlx4, libibverbs: NO > > > > Configuring mlx4_autoconf.h using configuration > > > > > > > > While building in my VM, I have: > > > > > > > > Checking whether type "struct mlx4_wqe_lso_seg" has member > "mss_hdr_size" with dependencies libmlx4, libibverbs: YES (cached) > > > > Configuring mlx4_autoconf.h using configuration > > > > > > > > So my verbs mlx4 header has got a different set of definitions to those in > > > > the CI machine. My Ubuntu reports as 20.04.6 with libibverbs-dev > package > > > > version "28.0-1ubuntu1" > > > > > > > > Can the CI image be updated to latest 20.04 packages? > > > > > > > > /Bruce > > > > > > > > > > I can reproduce the issue seen at UNH, with a 20.04.6 container and > > > the same libibverbs as you: > > > ii libibverbs-dev:amd64 28.0-1ubuntu1 > > > amd64 Development files for the libibverbs library > > > > > > So I suspect something is different in container images.. > > > > > > Pasting the (hopefully) relevant meson logs: > > > > > > Running compile: > > > Working directory: /root/dpdk/build/meson-private/tmp0ovvvd9g > > > Command line: ccache cc -I/usr/include/libnl3 > > > /root/dpdk/build/meson-private/tmp0ovvvd9g/testfile.c -o > > > /root/dpdk/build/meson-private/tmp0ovvvd9g/output.obj -pipe -c > > > -D_FILE_OFFSET_BITS=64 -O0 -std=c11 > > > > > > Code: > > > #include <infiniband/mlx4dv.h> > > > void bar(void) { > > > struct mlx4_wqe_lso_seg foo; > > > foo.mss_hdr_size; > > > > > > }; > > > Compiler stdout: > > > > > > Compiler stderr: > > > In file included from /root/dpdk/build/meson- > private/tmp0ovvvd9g/testfile.c:1: > > > /usr/include/infiniband/mlx4dv.h:176:2: error: unknown type name 'off_t' > > > 176 | off_t uar_mmap_offset; > > > | ^~~~~ > > > > > > Checking whether type "struct mlx4_wqe_lso_seg" has member > > > "mss_hdr_size" with dependencies libmlx4, libibverbs: NO > > > > > Thanks. I'll dig some more. > > I think the meson version may be the culprit here. In my meson log I don't > see the -std=c11 flag appended to the test compilation command. > > Let me downgrade my meson version and see if I can reproduce. > > /Bruce Hello, I see two other build failures. On Ubuntu 20.04 with clang 10 and rdma-core v47.0 (built from source), I see errors similar to these: drivers/common/mlx5/linux/mlx5_glue.h:58:6: error: redefinition of 'mlx5_ib_uapi_flow_action_packet_reformat_type' [..] drivers/common/mlx5/linux/mlx5_glue.h:59:6: error: redefinition of 'mlx5_ib_uapi_flow_table_type' [..] drivers/common/mlx5/linux/mlx5_glue.h:121:2: error: redefinition of enumerator 'MLX5DV_DR_ACTION_DEST_REFORMAT' [..] On Ubuntu 20.04 while cross compiling for ppc64le with powerpc64le-linux-gnu-gcc 9.4, I see: [..] lib/acl/acl_run_altivec.h:44:16: error: two or more data types in declaration specifiers [..] lib/acl/acl_run_altivec.h:44:2: error: use of boolean types in AltiVec types is invalid [..] error: incompatible types when assigning to type '__vector unsigned char' {aka '__vector(16) unsigned char'} from type '__vector __bool int' {aka '__vector(4) __bool int'} [..] lib/acl/acl_run_altivec.h:66:4: error: invalid parameter combination for AltiVec intrinsic '__builtin_vec_sel' [..] Regards, Ali ^ permalink raw reply [flat|nested] 45+ messages in thread
* Re: [PATCH v3] build: update DPDK to use C11 standard 2023-08-01 12:42 ` Ali Alnubani @ 2023-08-01 13:03 ` Bruce Richardson 2023-08-01 13:22 ` Bruce Richardson 1 sibling, 0 replies; 45+ messages in thread From: Bruce Richardson @ 2023-08-01 13:03 UTC (permalink / raw) To: Ali Alnubani Cc: David Marchand, Patrick Robb, Tyler Retzlaff, dev, Morten Brørup, NBU-Contact-Thomas Monjalon (EXTERNAL) On Tue, Aug 01, 2023 at 12:42:36PM +0000, Ali Alnubani wrote: > > -----Original Message----- > > From: Bruce Richardson <bruce.richardson@intel.com> > > Sent: Tuesday, August 1, 2023 1:51 PM > > To: David Marchand <david.marchand@redhat.com> > > Cc: Patrick Robb <probb@iol.unh.edu>; Tyler Retzlaff > > <roretzla@linux.microsoft.com>; dev@dpdk.org; Morten Brørup > > <mb@smartsharesystems.com>; NBU-Contact-Thomas Monjalon > > (EXTERNAL) <thomas@monjalon.net> > > Subject: Re: [PATCH v3] build: update DPDK to use C11 standard > > > > On Tue, Aug 01, 2023 at 11:39:06AM +0100, Bruce Richardson wrote: > > > On Tue, Aug 01, 2023 at 12:35:21PM +0200, David Marchand wrote: > > > > On Tue, Aug 1, 2023 at 12:19 PM Bruce Richardson > > > > <bruce.richardson@intel.com> wrote: > > > > > > > > > > On Mon, Jul 31, 2023 at 08:39:31PM -0400, Patrick Robb wrote: > > > > > > Hi Bruce, > > > > > > I see some failures for this series for our Ubuntu 20.04 containers. > > > <snip> > > > > > > > > > > Hi again, > > > > > > > > > > I've attempted to reproduce this on my Ubuntu 20.04 VM and failed, > > > > > everything seems to build ok. > > > > > > > > > > Looking through the logs, though, there does appear to be a difference in > > > > > the configurations in the two cases. I suspect my Ubuntu has an updated > > > > > verbs package compared to the image you are using. In the log of the > > failed > > > > > build, I see: > > > > > > > > > > Checking whether type "struct mlx4_wqe_lso_seg" has member > > "mss_hdr_size" with dependencies libmlx4, libibverbs: NO > > > > > Configuring mlx4_autoconf.h using configuration > > > > > > > > > > While building in my VM, I have: > > > > > > > > > > Checking whether type "struct mlx4_wqe_lso_seg" has member > > "mss_hdr_size" with dependencies libmlx4, libibverbs: YES (cached) > > > > > Configuring mlx4_autoconf.h using configuration > > > > > > > > > > So my verbs mlx4 header has got a different set of definitions to those in > > > > > the CI machine. My Ubuntu reports as 20.04.6 with libibverbs-dev > > package > > > > > version "28.0-1ubuntu1" > > > > > > > > > > Can the CI image be updated to latest 20.04 packages? > > > > > > > > > > /Bruce > > > > > > > > > > > > > I can reproduce the issue seen at UNH, with a 20.04.6 container and > > > > the same libibverbs as you: > > > > ii libibverbs-dev:amd64 28.0-1ubuntu1 > > > > amd64 Development files for the libibverbs library > > > > > > > > So I suspect something is different in container images.. > > > > > > > > Pasting the (hopefully) relevant meson logs: > > > > > > > > Running compile: > > > > Working directory: /root/dpdk/build/meson-private/tmp0ovvvd9g > > > > Command line: ccache cc -I/usr/include/libnl3 > > > > /root/dpdk/build/meson-private/tmp0ovvvd9g/testfile.c -o > > > > /root/dpdk/build/meson-private/tmp0ovvvd9g/output.obj -pipe -c > > > > -D_FILE_OFFSET_BITS=64 -O0 -std=c11 > > > > > > > > Code: > > > > #include <infiniband/mlx4dv.h> > > > > void bar(void) { > > > > struct mlx4_wqe_lso_seg foo; > > > > foo.mss_hdr_size; > > > > > > > > }; > > > > Compiler stdout: > > > > > > > > Compiler stderr: > > > > In file included from /root/dpdk/build/meson- > > private/tmp0ovvvd9g/testfile.c:1: > > > > /usr/include/infiniband/mlx4dv.h:176:2: error: unknown type name 'off_t' > > > > 176 | off_t uar_mmap_offset; > > > > | ^~~~~ > > > > > > > > Checking whether type "struct mlx4_wqe_lso_seg" has member > > > > "mss_hdr_size" with dependencies libmlx4, libibverbs: NO > > > > > > > Thanks. I'll dig some more. > > > > I think the meson version may be the culprit here. In my meson log I don't > > see the -std=c11 flag appended to the test compilation command. > > > > Let me downgrade my meson version and see if I can reproduce. > > > > /Bruce > > Hello, > > I see two other build failures. > > On Ubuntu 20.04 with clang 10 and rdma-core v47.0 (built from source), I see errors similar to these: > > drivers/common/mlx5/linux/mlx5_glue.h:58:6: error: redefinition of 'mlx5_ib_uapi_flow_action_packet_reformat_type' > [..] > drivers/common/mlx5/linux/mlx5_glue.h:59:6: error: redefinition of 'mlx5_ib_uapi_flow_table_type' > [..] > drivers/common/mlx5/linux/mlx5_glue.h:121:2: error: redefinition of enumerator 'MLX5DV_DR_ACTION_DEST_REFORMAT' > [..] > I believe I have a fix for these. The checks for the various structure members need the driver "cflags" passed as args to the check, as the std=c11 means that some things like off_t type are no longer defined (off_t is posix) > On Ubuntu 20.04 while cross compiling for ppc64le with powerpc64le-linux-gnu-gcc 9.4, I see: > > [..] > lib/acl/acl_run_altivec.h:44:16: error: two or more data types in declaration specifiers > [..] > lib/acl/acl_run_altivec.h:44:2: error: use of boolean types in AltiVec types is invalid > [..] > error: incompatible types when assigning to type '__vector unsigned char' {aka '__vector(16) unsigned char'} from type '__vector __bool int' {aka '__vector(4) __bool int'} > [..] > lib/acl/acl_run_altivec.h:66:4: error: invalid parameter combination for AltiVec intrinsic '__builtin_vec_sel' > [..] > This I still need to investigate. In the meantime, I'll do a new version to see if the Ubuntu 20.04 issues with the mlx drivers goes away with my fix. /Bruce ^ permalink raw reply [flat|nested] 45+ messages in thread
* Re: [PATCH v3] build: update DPDK to use C11 standard 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 1 sibling, 1 reply; 45+ messages in thread From: Bruce Richardson @ 2023-08-01 13:22 UTC (permalink / raw) To: Ali Alnubani Cc: David Marchand, Patrick Robb, Tyler Retzlaff, dev, Morten Brørup, NBU-Contact-Thomas Monjalon (EXTERNAL) On Tue, Aug 01, 2023 at 12:42:36PM +0000, Ali Alnubani wrote: <snip> > > On Ubuntu 20.04 while cross compiling for ppc64le with powerpc64le-linux-gnu-gcc 9.4, I see: > > [..] > lib/acl/acl_run_altivec.h:44:16: error: two or more data types in declaration specifiers > [..] > lib/acl/acl_run_altivec.h:44:2: error: use of boolean types in AltiVec types is invalid > [..] > error: incompatible types when assigning to type '__vector unsigned char' {aka '__vector(16) unsigned char'} from type '__vector __bool int' {aka '__vector(4) __bool int'} > [..] > lib/acl/acl_run_altivec.h:66:4: error: invalid parameter combination for AltiVec intrinsic '__builtin_vec_sel' > [..] > Hi Ali, where can I get the full log for this error? Is it recorded in patchwork under a particular test set? I see compile runs for loongarch and aarch(64), but nothing listed for PPC. /Bruce ^ permalink raw reply [flat|nested] 45+ messages in thread
* RE: [PATCH v3] build: update DPDK to use C11 standard 2023-08-01 13:22 ` Bruce Richardson @ 2023-08-01 13:47 ` Ali Alnubani 2023-08-01 14:00 ` Bruce Richardson 0 siblings, 1 reply; 45+ messages in thread From: Ali Alnubani @ 2023-08-01 13:47 UTC (permalink / raw) To: Bruce Richardson Cc: David Marchand, Patrick Robb, Tyler Retzlaff, dev, Morten Brørup, NBU-Contact-Thomas Monjalon (EXTERNAL) [-- Attachment #1: Type: text/plain, Size: 1643 bytes --] > -----Original Message----- > From: Bruce Richardson <bruce.richardson@intel.com> > Sent: Tuesday, August 1, 2023 4:22 PM > To: Ali Alnubani <alialnu@nvidia.com> > Cc: David Marchand <david.marchand@redhat.com>; Patrick Robb > <probb@iol.unh.edu>; Tyler Retzlaff <roretzla@linux.microsoft.com>; > dev@dpdk.org; Morten Brørup <mb@smartsharesystems.com>; NBU- > Contact-Thomas Monjalon (EXTERNAL) <thomas@monjalon.net> > Subject: Re: [PATCH v3] build: update DPDK to use C11 standard > > On Tue, Aug 01, 2023 at 12:42:36PM +0000, Ali Alnubani wrote: > <snip> > > > > On Ubuntu 20.04 while cross compiling for ppc64le with powerpc64le-linux- > gnu-gcc 9.4, I see: > > > > [..] > > lib/acl/acl_run_altivec.h:44:16: error: two or more data types in declaration > specifiers > > [..] > > lib/acl/acl_run_altivec.h:44:2: error: use of boolean types in AltiVec types is > invalid > > [..] > > error: incompatible types when assigning to type '__vector unsigned char' > {aka '__vector(16) unsigned char'} from type '__vector __bool int' {aka > '__vector(4) __bool int'} > > [..] > > lib/acl/acl_run_altivec.h:66:4: error: invalid parameter combination for > AltiVec intrinsic '__builtin_vec_sel' > > [..] > > > Hi Ali, > > where can I get the full log for this error? Is it recorded in patchwork > under a particular test set? I see compile runs for loongarch and > aarch(64), but nothing listed for PPC. Hello Bruce, I run this build internally. Attaching build log with more info about the environment. Note: I'm using an out-of-tree cross file because the in-tree one doesn't set binaries.pkgconfig. [-- Attachment #2: c11_ppc64le_build_log.txt --] [-- Type: text/plain, Size: 55196 bytes --] $ meson --werror --buildtype=debugoptimized --cross-file /tmp/ppc64le-power8-linux-gcc -Dexamples=all -Ddisable_drivers=*/cnxk,*/octeontx -Dc_args='-I/opt/cudart' /tmp/build-ppc64-gcc The Meson build system Version: 1.2.0 Source dir: /root/dpdk Build dir: /tmp/build-ppc64-gcc Build type: cross build Program cat found: YES (/usr/bin/cat) Project name: DPDK Project version: 23.11.0-rc0 C compiler for the host machine: powerpc64le-linux-gnu-gcc (gcc 9.4.0 "powerpc64le-linux-gnu-gcc (Ubuntu 9.4.0-1ubuntu1~20.04.1) 9.4.0") C linker for the host machine: powerpc64le-linux-gnu-gcc ld.bfd 2.34 C compiler for the build machine: ccache cc (gcc 9.4.0 "cc (Ubuntu 9.4.0-1ubuntu1~20.04.1) 9.4.0") C linker for the build machine: cc ld.bfd 2.34 Build machine cpu family: x86_64 Build machine cpu: x86_64 Host machine cpu family: ppc64 Host machine cpu: power8 Target machine cpu family: ppc64 Target machine cpu: power8 Message: ## Building in Developer Mode ## Program pkg-config found: YES (/usr/bin/pkg-config) Program check-symbols.sh found: YES (/root/dpdk/buildtools/check-symbols.sh) Program options-ibverbs-static.sh found: YES (/root/dpdk/buildtools/options-ibverbs-static.sh) Program objdump found: YES (/usr/bin/objdump) Program python3 found: YES (/usr/bin/python3) Program cat found: YES (/usr/bin/cat) Checking for size of "void *" : 8 Checking for size of "void *" : 8 Library m found: YES Library numa found: NO Library fdt found: NO Library execinfo found: NO Has header "execinfo.h" : YES Found pkg-config: /usr/bin/powerpc64le-linux-gnu-pkg-config (0.29.1) Run-time dependency libarchive found: NO (tried pkgconfig) Run-time dependency libbsd found: NO (tried pkgconfig) Run-time dependency jansson found: NO (tried pkgconfig) Run-time dependency openssl found: NO (tried pkgconfig) Run-time dependency libpcap found: NO (tried pkgconfig) Library pcap found: NO Compiler for C supports arguments -Wcast-qual: YES Compiler for C supports arguments -Wdeprecated: YES Compiler for C supports arguments -Wformat: YES Compiler for C supports arguments -Wformat-nonliteral: YES Compiler for C supports arguments -Wformat-security: YES Compiler for C supports arguments -Wmissing-declarations: YES Compiler for C supports arguments -Wmissing-prototypes: YES Compiler for C supports arguments -Wnested-externs: YES Compiler for C supports arguments -Wold-style-definition: YES Compiler for C supports arguments -Wpointer-arith: YES Compiler for C supports arguments -Wsign-compare: YES Compiler for C supports arguments -Wstrict-prototypes: YES Compiler for C supports arguments -Wundef: YES Compiler for C supports arguments -Wwrite-strings: YES Compiler for C supports arguments -Wno-address-of-packed-member: YES Compiler for C supports arguments -Wno-packed-not-aligned: YES Compiler for C supports arguments -Wno-missing-field-initializers: YES Compiler for C supports arguments -mcpu=power9: YES Compiler for C supports arguments -Wno-format-truncation: YES Message: lib/kvargs: Defining dependency "kvargs" Message: lib/telemetry: Defining dependency "telemetry" Checking for function "getentropy" : NO Message: lib/eal: Defining dependency "eal" Message: lib/ring: Defining dependency "ring" Message: lib/rcu: Defining dependency "rcu" Message: lib/mempool: Defining dependency "mempool" Message: lib/mbuf: Defining dependency "mbuf" Message: lib/net: Defining dependency "net" Message: lib/meter: Defining dependency "meter" Message: lib/ethdev: Defining dependency "ethdev" Message: lib/pci: Defining dependency "pci" Message: lib/cmdline: Defining dependency "cmdline" Message: lib/metrics: Defining dependency "metrics" Message: lib/hash: Defining dependency "hash" Message: lib/timer: Defining dependency "timer" Message: lib/acl: Defining dependency "acl" Message: lib/bbdev: Defining dependency "bbdev" Message: lib/bitratestats: Defining dependency "bitratestats" Run-time dependency libelf found: NO (tried pkgconfig) lib/bpf/meson.build:36: WARNING: libelf is missing, rte_bpf_elf_load API will be disabled lib/bpf/meson.build:43: WARNING: libpcap is missing, rte_bpf_convert API will be disabled Message: lib/bpf: Defining dependency "bpf" Message: lib/cfgfile: Defining dependency "cfgfile" Message: lib/compressdev: Defining dependency "compressdev" Message: lib/cryptodev: Defining dependency "cryptodev" Message: lib/distributor: Defining dependency "distributor" Message: lib/efd: Defining dependency "efd" Message: lib/eventdev: Defining dependency "eventdev" Message: lib/gpudev: Defining dependency "gpudev" Message: lib/gro: Defining dependency "gro" Message: lib/gso: Defining dependency "gso" Message: lib/ip_frag: Defining dependency "ip_frag" Message: lib/jobstats: Defining dependency "jobstats" Message: lib/latencystats: Defining dependency "latencystats" Message: lib/lpm: Defining dependency "lpm" Message: lib/member: Defining dependency "member" Message: lib/pcapng: Defining dependency "pcapng" Compiler for C supports arguments -Wno-cast-qual: YES Message: lib/power: Defining dependency "power" Message: lib/rawdev: Defining dependency "rawdev" Message: lib/regexdev: Defining dependency "regexdev" Message: lib/mldev: Defining dependency "mldev" Message: lib/dmadev: Defining dependency "dmadev" Message: lib/rib: Defining dependency "rib" Message: lib/reorder: Defining dependency "reorder" Message: lib/sched: Defining dependency "sched" Message: lib/security: Defining dependency "security" Message: lib/stack: Defining dependency "stack" Has header "linux/userfaultfd.h" : YES Has header "linux/vduse.h" : NO Message: lib/vhost: Defining dependency "vhost" Message: lib/ipsec: Defining dependency "ipsec" Message: lib/pdcp: Defining dependency "pdcp" Message: lib/fib: Defining dependency "fib" Message: lib/port: Defining dependency "port" Message: lib/pdump: Defining dependency "pdump" Message: lib/table: Defining dependency "table" Message: lib/pipeline: Defining dependency "pipeline" Message: lib/graph: Defining dependency "graph" Message: lib/node: Defining dependency "node" Compiler for C supports arguments -Wno-format-truncation: YES (cached) Message: drivers/common/cpt: Defining dependency "common_cpt" Compiler for C supports arguments -Wno-cast-qual: YES (cached) Compiler for C supports arguments -Wno-pointer-arith: YES Message: drivers/common/dpaax: Defining dependency "common_dpaax" Compiler for C supports arguments -Wno-pointer-to-int-cast: YES Message: drivers/common/iavf: Defining dependency "common_iavf" Message: drivers/common/idpf: Defining dependency "common_idpf" Run-time dependency libmusdk found: NO (tried pkgconfig) Message: drivers/bus/auxiliary: Defining dependency "bus_auxiliary" Message: drivers/bus/cdx: Defining dependency "bus_cdx" Compiler for C supports arguments -Wno-cast-qual: YES (cached) Compiler for C supports arguments -Wno-pointer-arith: YES (cached) Message: drivers/bus/dpaa: Defining dependency "bus_dpaa" Message: drivers/bus/fslmc: Defining dependency "bus_fslmc" Message: drivers/bus/ifpga: Defining dependency "bus_ifpga" Message: drivers/bus/pci: Defining dependency "bus_pci" Message: drivers/bus/platform: Defining dependency "bus_platform" Message: drivers/bus/vdev: Defining dependency "bus_vdev" Message: drivers/bus/vmbus: Defining dependency "bus_vmbus" Compiler for C supports arguments -std=c11: YES Compiler for C supports arguments -Wno-strict-prototypes: YES Compiler for C supports arguments -D_BSD_SOURCE: YES Compiler for C supports arguments -D_DEFAULT_SOURCE: YES Compiler for C supports arguments -D_XOPEN_SOURCE=600: YES Run-time dependency libmlx5 found: YES 1.24.48.0 Run-time dependency libibverbs found: YES 1.14.48.0 Library mtcr_ul found: NO Header "infiniband/verbs.h" has symbol "IBV_FLOW_SPEC_ESP" with dependencies libmlx5, libibverbs: YES Header "infiniband/verbs.h" has symbol "IBV_RX_HASH_IPSEC_SPI" with dependencies libmlx5, libibverbs: YES Header "infiniband/verbs.h" has symbol "IBV_ACCESS_RELAXED_ORDERING " with dependencies libmlx5, libibverbs: YES Header "infiniband/mlx5dv.h" has symbol "MLX5DV_CQE_RES_FORMAT_CSUM_STRIDX" with dependencies libmlx5, libibverbs: YES Header "infiniband/mlx5dv.h" has symbol "MLX5DV_CONTEXT_MASK_TUNNEL_OFFLOADS" with dependencies libmlx5, libibverbs: YES Header "infiniband/mlx5dv.h" has symbol "MLX5DV_CONTEXT_FLAGS_MPW_ALLOWED" with dependencies libmlx5, libibverbs: YES Header "infiniband/mlx5dv.h" has symbol "MLX5DV_CONTEXT_FLAGS_CQE_128B_COMP" with dependencies libmlx5, libibverbs: YES Header "infiniband/mlx5dv.h" has symbol "MLX5DV_CQ_INIT_ATTR_FLAGS_CQE_PAD" with dependencies libmlx5, libibverbs: YES Header "infiniband/mlx5dv.h" has symbol "mlx5dv_create_flow_action_packet_reformat" with dependencies libmlx5, libibverbs: YES Header "infiniband/verbs.h" has symbol "IBV_FLOW_SPEC_MPLS" with dependencies libmlx5, libibverbs: YES Header "infiniband/verbs.h" has symbol "IBV_WQ_FLAGS_PCI_WRITE_END_PADDING" with dependencies libmlx5, libibverbs: YES Header "infiniband/verbs.h" has symbol "IBV_WQ_FLAG_RX_END_PADDING" with dependencies libmlx5, libibverbs: NO Header "infiniband/mlx5dv.h" has symbol "mlx5dv_query_devx_port" with dependencies libmlx5, libibverbs: NO Header "infiniband/mlx5dv.h" has symbol "mlx5dv_query_port" with dependencies libmlx5, libibverbs: YES Header "infiniband/mlx5dv.h" has symbol "mlx5dv_dr_action_create_dest_ib_port" with dependencies libmlx5, libibverbs: YES Header "infiniband/mlx5dv.h" has symbol "mlx5dv_devx_obj_create" with dependencies libmlx5, libibverbs: YES Header "infiniband/mlx5dv.h" has symbol "MLX5DV_FLOW_ACTION_COUNTERS_DEVX" with dependencies libmlx5, libibverbs: YES Header "infiniband/mlx5dv.h" has symbol "MLX5DV_FLOW_ACTION_DEFAULT_MISS" with dependencies libmlx5, libibverbs: YES Header "infiniband/mlx5dv.h" has symbol "mlx5dv_devx_obj_query_async" with dependencies libmlx5, libibverbs: YES Header "infiniband/mlx5dv.h" has symbol "mlx5dv_devx_qp_query" with dependencies libmlx5, libibverbs: YES Header "infiniband/mlx5dv.h" has symbol "mlx5dv_pp_alloc" with dependencies libmlx5, libibverbs: YES Header "infiniband/mlx5dv.h" has symbol "mlx5dv_dr_action_create_dest_devx_tir" with dependencies libmlx5, libibverbs: YES Header "infiniband/mlx5dv.h" has symbol "mlx5dv_devx_get_event" with dependencies libmlx5, libibverbs: YES Header "infiniband/mlx5dv.h" has symbol "mlx5dv_dr_action_create_flow_meter" with dependencies libmlx5, libibverbs: YES Header "infiniband/mlx5dv.h" has symbol "MLX5_MMAP_GET_NC_PAGES_CMD" with dependencies libmlx5, libibverbs: YES Header "infiniband/mlx5dv.h" has symbol "MLX5DV_DR_DOMAIN_TYPE_NIC_RX" with dependencies libmlx5, libibverbs: YES Header "infiniband/mlx5dv.h" has symbol "MLX5DV_DR_DOMAIN_TYPE_FDB" with dependencies libmlx5, libibverbs: YES Header "infiniband/mlx5dv.h" has symbol "mlx5dv_dr_action_create_push_vlan" with dependencies libmlx5, libibverbs: YES Header "infiniband/mlx5dv.h" has symbol "mlx5dv_alloc_var" with dependencies libmlx5, libibverbs: YES Header "infiniband/mlx5dv.h" has symbol "MLX5_OPCODE_ENHANCED_MPSW" with dependencies libmlx5, libibverbs: NO Header "infiniband/mlx5dv.h" has symbol "MLX5_OPCODE_SEND_EN" with dependencies libmlx5, libibverbs: NO Header "infiniband/mlx5dv.h" has symbol "MLX5_OPCODE_WAIT" with dependencies libmlx5, libibverbs: NO Header "infiniband/mlx5dv.h" has symbol "MLX5_OPCODE_ACCESS_ASO" with dependencies libmlx5, libibverbs: NO Header "linux/ethtool.h" has symbol "SUPPORTED_40000baseKR4_Full" with dependencies libmlx5, libibverbs: YES Header "linux/ethtool.h" has symbol "SUPPORTED_40000baseCR4_Full" with dependencies libmlx5, libibverbs: YES Header "linux/ethtool.h" has symbol "SUPPORTED_40000baseSR4_Full" with dependencies libmlx5, libibverbs: YES Header "linux/ethtool.h" has symbol "SUPPORTED_40000baseLR4_Full" with dependencies libmlx5, libibverbs: YES Header "linux/ethtool.h" has symbol "SUPPORTED_56000baseKR4_Full" with dependencies libmlx5, libibverbs: YES Header "linux/ethtool.h" has symbol "SUPPORTED_56000baseCR4_Full" with dependencies libmlx5, libibverbs: YES Header "linux/ethtool.h" has symbol "SUPPORTED_56000baseSR4_Full" with dependencies libmlx5, libibverbs: YES Header "linux/ethtool.h" has symbol "SUPPORTED_56000baseLR4_Full" with dependencies libmlx5, libibverbs: YES Header "linux/ethtool.h" has symbol "ETHTOOL_LINK_MODE_25000baseCR_Full_BIT" with dependencies libmlx5, libibverbs: YES Header "linux/ethtool.h" has symbol "ETHTOOL_LINK_MODE_50000baseCR2_Full_BIT" with dependencies libmlx5, libibverbs: YES Header "linux/ethtool.h" has symbol "ETHTOOL_LINK_MODE_100000baseKR4_Full_BIT" with dependencies libmlx5, libibverbs: YES Header "linux/if_link.h" has symbol "IFLA_NUM_VF" with dependencies libmlx5, libibverbs: YES Header "linux/if_link.h" has symbol "IFLA_EXT_MASK" with dependencies libmlx5, libibverbs: YES Header "linux/if_link.h" has symbol "IFLA_PHYS_SWITCH_ID" with dependencies libmlx5, libibverbs: YES Header "linux/if_link.h" has symbol "IFLA_PHYS_PORT_NAME" with dependencies libmlx5, libibverbs: YES Header "rdma/rdma_netlink.h" has symbol "RDMA_NL_NLDEV" with dependencies libmlx5, libibverbs: YES Header "rdma/rdma_netlink.h" has symbol "RDMA_NLDEV_CMD_GET" with dependencies libmlx5, libibverbs: YES Header "rdma/rdma_netlink.h" has symbol "RDMA_NLDEV_CMD_PORT_GET" with dependencies libmlx5, libibverbs: YES Header "rdma/rdma_netlink.h" has symbol "RDMA_NLDEV_ATTR_DEV_INDEX" with dependencies libmlx5, libibverbs: YES Header "rdma/rdma_netlink.h" has symbol "RDMA_NLDEV_ATTR_DEV_NAME" with dependencies libmlx5, libibverbs: YES Header "rdma/rdma_netlink.h" has symbol "RDMA_NLDEV_ATTR_PORT_INDEX" with dependencies libmlx5, libibverbs: YES Header "rdma/rdma_netlink.h" has symbol "RDMA_NLDEV_ATTR_PORT_STATE" with dependencies libmlx5, libibverbs: YES Header "rdma/rdma_netlink.h" has symbol "RDMA_NLDEV_ATTR_NDEV_INDEX" with dependencies libmlx5, libibverbs: YES Header "infiniband/mlx5dv.h" has symbol "mlx5dv_dump_dr_domain" with dependencies libmlx5, libibverbs: YES Header "infiniband/mlx5dv.h" has symbol "mlx5dv_dr_action_create_flow_sampler" with dependencies libmlx5, libibverbs: YES Header "infiniband/mlx5dv.h" has symbol "mlx5dv_dr_domain_set_reclaim_device_memory" with dependencies libmlx5, libibverbs: YES Header "infiniband/mlx5dv.h" has symbol "mlx5dv_dr_action_create_dest_array" with dependencies libmlx5, libibverbs: YES Header "linux/devlink.h" has symbol "DEVLINK_GENL_NAME" with dependencies libmlx5, libibverbs: YES Header "infiniband/mlx5dv.h" has symbol "mlx5dv_dr_action_create_aso" with dependencies libmlx5, libibverbs: YES Header "infiniband/verbs.h" has symbol "INFINIBAND_VERBS_H" with dependencies libmlx5, libibverbs: YES Header "infiniband/mlx5dv.h" has symbol "MLX5_WQE_UMR_CTRL_FLAG_INLINE" with dependencies libmlx5, libibverbs: YES Header "infiniband/mlx5dv.h" has symbol "mlx5dv_dump_dr_rule" with dependencies libmlx5, libibverbs: YES Header "infiniband/mlx5dv.h" has symbol "MLX5DV_DR_ACTION_FLAGS_ASO_CT_DIRECTION_INITIATOR" with dependencies libmlx5, libibverbs: YES Header "infiniband/mlx5dv.h" has symbol "mlx5dv_dr_domain_allow_duplicate_rules" with dependencies libmlx5, libibverbs: YES Header "infiniband/verbs.h" has symbol "ibv_reg_mr_iova" with dependencies libmlx5, libibverbs: YES Header "infiniband/verbs.h" has symbol "ibv_import_device" with dependencies libmlx5, libibverbs: YES Header "infiniband/mlx5dv.h" has symbol "mlx5dv_dr_action_create_dest_root_table" with dependencies libmlx5, libibverbs: YES Header "infiniband/mlx5dv.h" has symbol "mlx5dv_create_steering_anchor" with dependencies libmlx5, libibverbs: YES Header "infiniband/verbs.h" has symbol "ibv_is_fork_initialized" with dependencies libmlx5, libibverbs: YES Checking whether type "struct mlx5dv_sw_parsing_caps" has member "sw_parsing_offloads" with dependencies libmlx5, libibverbs: YES Checking whether type "struct ibv_counter_set_init_attr" has member "counter_set_id" with dependencies libmlx5, libibverbs: NO Checking whether type "struct ibv_counters_init_attr" has member "comp_mask" with dependencies libmlx5, libibverbs: YES Checking whether type "struct mlx5dv_devx_uar" has member "mmap_off" with dependencies libmlx5, libibverbs: YES Checking whether type "struct mlx5dv_flow_matcher_attr" has member "ft_type" with dependencies libmlx5, libibverbs: YES Configuring mlx5_autoconf.h using configuration Message: drivers/common/mlx5: Defining dependency "common_mlx5" Run-time dependency libcrypto found: NO (tried pkgconfig) Library IPSec_MB found: NO Message: drivers/common/qat: Defining dependency "common_qat" Compiler for C supports arguments -Wdisabled-optimization: YES Compiler for C supports arguments -Waggregate-return: YES Compiler for C supports arguments -Wbad-function-cast: YES Compiler for C supports arguments -Wno-sign-compare: YES Compiler for C supports arguments -Wno-unused-parameter: YES Compiler for C supports arguments -Wno-unused-variable: YES Compiler for C supports arguments -Wno-empty-body: YES Compiler for C supports arguments -Wno-unused-but-set-variable: YES Message: drivers/mempool/bucket: Defining dependency "mempool_bucket" Message: drivers/mempool/dpaa: Defining dependency "mempool_dpaa" Message: drivers/mempool/dpaa2: Defining dependency "mempool_dpaa2" Message: drivers/mempool/ring: Defining dependency "mempool_ring" Message: drivers/mempool/stack: Defining dependency "mempool_stack" Compiler for C supports arguments -Wno-pointer-arith: YES (cached) Message: drivers/dma/dpaa: Defining dependency "dma_dpaa" Compiler for C supports arguments -Wno-pointer-arith: YES (cached) Message: drivers/dma/dpaa2: Defining dependency "dma_dpaa2" Message: drivers/dma/skeleton: Defining dependency "dma_skeleton" Message: drivers/net/af_packet: Defining dependency "net_af_packet" Run-time dependency libxdp found: NO (tried pkgconfig) Run-time dependency libbpf found: NO (tried pkgconfig) Library bpf found: NO Has header "linux/if_xdp.h" : YES Message: drivers/net/ark: Defining dependency "net_ark" Message: drivers/net/atlantic: Defining dependency "net_atlantic" Message: drivers/net/avp: Defining dependency "net_avp" Message: drivers/net/axgbe: Defining dependency "net_axgbe" Run-time dependency zlib found: NO (tried pkgconfig) Compiler for C supports arguments -DSUPPORT_CFA_HW_ALL=1: YES Message: drivers/net/bnxt: Defining dependency "net_bnxt" Message: drivers/net/bonding: Defining dependency "net_bond" Message: drivers/net/cpfl: Defining dependency "net_cpfl" Message: drivers/net/cxgbe: Defining dependency "net_cxgbe" Compiler for C supports arguments -Wno-pointer-arith: YES (cached) Message: drivers/net/dpaa: Defining dependency "net_dpaa" Message: drivers/net/dpaa2: Defining dependency "net_dpaa2" Compiler for C supports arguments -Wno-uninitialized: YES Compiler for C supports arguments -Wno-unused-parameter: YES (cached) Compiler for C supports arguments -Wno-unused-variable: YES (cached) Compiler for C supports arguments -Wno-misleading-indentation: YES Compiler for C supports arguments -Wno-implicit-fallthrough: YES Message: drivers/net/e1000: Defining dependency "net_e1000" Message: drivers/net/ena: Defining dependency "net_ena" Message: drivers/net/enetc: Defining dependency "net_enetc" Message: drivers/net/enetfec: Defining dependency "net_enetfec" Fetching value of define "__AVX2__" : Compiler for C supports arguments -mavx2: NO Message: drivers/net/enic: Defining dependency "net_enic" Message: drivers/net/failsafe: Defining dependency "net_failsafe" Compiler for C supports arguments -Wno-unused-parameter: YES (cached) Compiler for C supports arguments -Wno-unused-value: YES Compiler for C supports arguments -Wno-strict-aliasing: YES Compiler for C supports arguments -Wno-format-extra-args: YES Compiler for C supports arguments -Wno-unused-variable: YES (cached) Compiler for C supports arguments -Wno-implicit-fallthrough: YES (cached) Message: drivers/net/fm10k: Defining dependency "net_fm10k" Message: drivers/net/gve: Defining dependency "net_gve" Message: drivers/net/hinic: Defining dependency "net_hinic" Compiler for C supports arguments -Wno-sign-compare: YES (cached) Compiler for C supports arguments -Wno-unused-value: YES (cached) Compiler for C supports arguments -Wno-format: YES Compiler for C supports arguments -Wno-format-security: YES Compiler for C supports arguments -Wno-format-nonliteral: YES Compiler for C supports arguments -Wno-strict-aliasing: YES (cached) Compiler for C supports arguments -Wno-unused-but-set-variable: YES (cached) Compiler for C supports arguments -Wno-unused-parameter: YES (cached) Message: drivers/net/i40e: Defining dependency "net_i40e" Message: drivers/net/iavf: Defining dependency "net_iavf" Compiler for C supports arguments -Wno-unused-value: YES (cached) Compiler for C supports arguments -Wno-unused-but-set-variable: YES (cached) Compiler for C supports arguments -Wno-unused-variable: YES (cached) Compiler for C supports arguments -Wno-unused-parameter: YES (cached) Message: drivers/net/ice: Defining dependency "net_ice" Message: drivers/net/idpf: Defining dependency "net_idpf" Message: drivers/net/igc: Defining dependency "net_igc" Message: drivers/net/ionic: Defining dependency "net_ionic" Compiler for C supports arguments -Wno-unused-value: YES (cached) Compiler for C supports arguments -Wno-unused-but-set-variable: YES (cached) Compiler for C supports arguments -Wno-unused-parameter: YES (cached) Message: drivers/net/ixgbe: Defining dependency "net_ixgbe" Message: Disabling kni [drivers/net/kni]: missing internal dependency "kni" Message: drivers/net/memif: Defining dependency "net_memif" Run-time dependency libmlx4 found: YES 1.0.48.0 Dependency libibverbs found: YES 1.14.48.0 (cached) Compiler for C supports arguments -std=c11: YES (cached) Compiler for C supports arguments -Wno-strict-prototypes: YES (cached) Compiler for C supports arguments -D_BSD_SOURCE: YES (cached) Compiler for C supports arguments -D_DEFAULT_SOURCE: YES (cached) Compiler for C supports arguments -D_XOPEN_SOURCE=600: YES (cached) Header "infiniband/mlx4dv.h" has symbol "MLX4DV_SET_CTX_ATTR_BUF_ALLOCATORS" with dependencies libmlx4, libibverbs: YES Header "infiniband/mlx4dv.h" has symbol "MLX4DV_QP_MASK_UAR_MMAP_OFFSET" with dependencies libmlx4, libibverbs: YES Checking whether type "struct mlx4_wqe_lso_seg" has member "mss_hdr_size" with dependencies libmlx4, libibverbs: YES Configuring mlx4_autoconf.h using configuration Message: drivers/net/mlx4: Defining dependency "net_mlx4" Compiler for C supports arguments -std=c11: YES (cached) Compiler for C supports arguments -Wno-strict-prototypes: YES (cached) Compiler for C supports arguments -D_BSD_SOURCE: YES (cached) Compiler for C supports arguments -D_DEFAULT_SOURCE: YES (cached) Compiler for C supports arguments -D_XOPEN_SOURCE=600: YES (cached) Message: drivers/net/mlx5: Defining dependency "net_mlx5" Run-time dependency libmusdk found: NO (tried pkgconfig) Run-time dependency libmusdk found: NO (tried pkgconfig) Message: drivers/net/netvsc: Defining dependency "net_netvsc" Run-time dependency netcope-common found: NO (tried pkgconfig) Message: drivers/net/nfp: Defining dependency "net_nfp" Message: drivers/net/ngbe: Defining dependency "net_ngbe" Message: drivers/net/null: Defining dependency "net_null" Message: drivers/net/octeon_ep: Defining dependency "net_octeon_ep" Compiler for C supports arguments -Wno-pointer-arith: YES (cached) Message: drivers/net/pfe: Defining dependency "net_pfe" Compiler for C supports arguments -Wno-unused-parameter: YES (cached) Compiler for C supports arguments -Wno-sign-compare: YES (cached) Compiler for C supports arguments -Wno-missing-prototypes: YES Compiler for C supports arguments -Wno-cast-qual: YES (cached) Compiler for C supports arguments -Wno-unused-function: YES Compiler for C supports arguments -Wno-unused-variable: YES (cached) Compiler for C supports arguments -Wno-strict-aliasing: YES (cached) Compiler for C supports arguments -Wno-missing-prototypes: YES (cached) Compiler for C supports arguments -Wno-unused-value: YES (cached) Compiler for C supports arguments -Wno-format-nonliteral: YES (cached) Compiler for C supports arguments -Wno-shift-negative-value: YES Compiler for C supports arguments -Wno-unused-but-set-variable: YES (cached) Compiler for C supports arguments -Wno-missing-declarations: YES Compiler for C supports arguments -Wno-maybe-uninitialized: YES Compiler for C supports arguments -Wno-strict-prototypes: YES (cached) Compiler for C supports arguments -Wno-shift-negative-value: YES (cached) Compiler for C supports arguments -Wno-implicit-fallthrough: YES (cached) Compiler for C supports arguments -Wno-format-extra-args: YES (cached) Compiler for C supports arguments -Wno-visibility: NO Compiler for C supports arguments -Wno-empty-body: YES (cached) Compiler for C supports arguments -Wno-invalid-source-encoding: NO Compiler for C supports arguments -Wno-sometimes-uninitialized: NO Compiler for C supports arguments -Wno-pointer-bool-conversion: NO Compiler for C supports arguments -Wno-format-nonliteral: YES (cached) Message: drivers/net/qede: Defining dependency "net_qede" Message: drivers/net/ring: Defining dependency "net_ring" Message: drivers/net/softnic: Defining dependency "net_softnic" Header "linux/pkt_cls.h" has symbol "TCA_FLOWER_UNSPEC" : YES Header "linux/pkt_cls.h" has symbol "TCA_FLOWER_KEY_VLAN_PRIO" : YES Header "linux/pkt_cls.h" has symbol "TCA_BPF_UNSPEC" : YES Header "linux/pkt_cls.h" has symbol "TCA_BPF_FD" : YES Header "linux/tc_act/tc_bpf.h" has symbol "TCA_ACT_BPF_UNSPEC" : YES Header "linux/tc_act/tc_bpf.h" has symbol "TCA_ACT_BPF_FD" : YES Configuring tap_autoconf.h using configuration Message: drivers/net/tap: Defining dependency "net_tap" Compiler for C supports arguments -fno-prefetch-loop-arrays: YES Compiler for C supports arguments -Wno-maybe-uninitialized: YES (cached) Message: drivers/net/thunderx: Defining dependency "net_thunderx" Message: drivers/net/txgbe: Defining dependency "net_txgbe" Compiler for C supports arguments -D_BSD_SOURCE: YES (cached) Compiler for C supports arguments -D_DEFAULT_SOURCE: YES (cached) Compiler for C supports arguments -D_XOPEN_SOURCE=600: YES (cached) Message: drivers/net/vdev_netvsc: Defining dependency "net_vdev_netvsc" Message: drivers/net/vhost: Defining dependency "net_vhost" Message: drivers/net/virtio: Defining dependency "net_virtio" Compiler for C supports arguments -Wno-unused-parameter: YES (cached) Compiler for C supports arguments -Wno-unused-value: YES (cached) Compiler for C supports arguments -Wno-strict-aliasing: YES (cached) Compiler for C supports arguments -Wno-format-extra-args: YES (cached) Message: drivers/net/vmxnet3: Defining dependency "net_vmxnet3" Message: Disabling cnxk_bphy [drivers/raw/cnxk_bphy]: missing internal dependency "common_cnxk" Message: Disabling cnxk_gpio [drivers/raw/cnxk_gpio]: missing internal dependency "common_cnxk" Message: drivers/raw/dpaa2_cmdif: Defining dependency "raw_dpaa2_cmdif" Message: drivers/raw/ntb: Defining dependency "raw_ntb" Message: drivers/raw/skeleton: Defining dependency "raw_skeleton" Run-time dependency libaarch64crypto found: NO (tried pkgconfig) Message: drivers/crypto/bcmfs: Defining dependency "crypto_bcmfs" Message: drivers/crypto/caam_jr: Defining dependency "crypto_caam_jr" Run-time dependency libcrypto found: NO (tried pkgconfig) Message: drivers/crypto/dpaa_sec: Defining dependency "crypto_dpaa_sec" Message: drivers/crypto/dpaa2_sec: Defining dependency "crypto_dpaa2_sec" Library IPSec_MB found: NO Compiler for C supports arguments -std=c11: YES (cached) Compiler for C supports arguments -Wno-strict-prototypes: YES (cached) Compiler for C supports arguments -D_BSD_SOURCE: YES (cached) Compiler for C supports arguments -D_DEFAULT_SOURCE: YES (cached) Compiler for C supports arguments -D_XOPEN_SOURCE=600: YES (cached) Message: drivers/crypto/mlx5: Defining dependency "crypto_mlx5" Run-time dependency libmusdk found: NO (tried pkgconfig) Message: drivers/crypto/nitrox: Defining dependency "crypto_nitrox" Message: drivers/crypto/null: Defining dependency "crypto_null" Run-time dependency libcrypto found: NO (tried pkgconfig) Message: drivers/crypto/scheduler: Defining dependency "crypto_scheduler" Run-time dependency libwd_crypto found: NO (tried pkgconfig) Run-time dependency libwd found: NO (tried pkgconfig) Message: drivers/crypto/virtio: Defining dependency "crypto_virtio" Run-time dependency libisal found: NO (tried pkgconfig) Compiler for C supports arguments -std=c11: YES (cached) Compiler for C supports arguments -Wno-strict-prototypes: YES (cached) Compiler for C supports arguments -D_BSD_SOURCE: YES (cached) Compiler for C supports arguments -D_DEFAULT_SOURCE: YES (cached) Compiler for C supports arguments -D_XOPEN_SOURCE=600: YES (cached) Message: drivers/compress/mlx5: Defining dependency "compress_mlx5" Run-time dependency zlib found: NO (tried pkgconfig) Compiler for C supports arguments -std=c11: YES (cached) Compiler for C supports arguments -Wno-strict-prototypes: YES (cached) Compiler for C supports arguments -D_BSD_SOURCE: YES (cached) Compiler for C supports arguments -D_DEFAULT_SOURCE: YES (cached) Compiler for C supports arguments -D_XOPEN_SOURCE=600: YES (cached) Message: drivers/regex/mlx5: Defining dependency "regex_mlx5" Message: Disabling cn9k [drivers/regex/cn9k]: missing internal dependency "common_cnxk" Message: drivers/vdpa/ifc: Defining dependency "vdpa_ifc" Compiler for C supports arguments -std=c11: YES (cached) Compiler for C supports arguments -Wno-strict-prototypes: YES (cached) Compiler for C supports arguments -D_BSD_SOURCE: YES (cached) Compiler for C supports arguments -D_DEFAULT_SOURCE: YES (cached) Compiler for C supports arguments -D_XOPEN_SOURCE=600: YES (cached) Message: drivers/vdpa/mlx5: Defining dependency "vdpa_mlx5" Message: drivers/event/dpaa: Defining dependency "event_dpaa" Message: drivers/event/dpaa2: Defining dependency "event_dpaa2" Compiler for C supports arguments -Wno-format-nonliteral: YES (cached) Message: drivers/event/dsw: Defining dependency "event_dsw" Message: drivers/event/opdl: Defining dependency "event_opdl" Message: drivers/event/skeleton: Defining dependency "event_skeleton" Message: drivers/event/sw: Defining dependency "event_sw" Message: drivers/baseband/acc: Defining dependency "baseband_acc" Message: drivers/baseband/fpga_5gnr_fec: Defining dependency "baseband_fpga_5gnr_fec" Message: drivers/baseband/fpga_lte_fec: Defining dependency "baseband_fpga_lte_fec" Message: drivers/baseband/la12xx: Defining dependency "baseband_la12xx" Message: drivers/baseband/null: Defining dependency "baseband_null" Found CMake: NO Run-time dependency flexran_sdk_turbo found: NO (tried pkgconfig and cmake) Run-time dependency flexran_sdk_ldpc_decoder_5gnr found: NO (tried pkgconfig and cmake) Message: drivers/baseband/turbo_sw: Defining dependency "baseband_turbo_sw" Has header "cuda.h" : YES Has header "cudaTypedefs.h" : YES Has header "gdrapi.h" : NO Message: drivers/gpu/cuda: Defining dependency "gpu_cuda" Compiler for C supports arguments -Wno-format-truncation: YES (cached) Run-time dependency zlib found: NO (tried pkgconfig) Message: hugepage availability: false Program test_telemetry.sh found: YES (/root/dpdk/app/test/test_telemetry.sh) Program doxygen found: YES (/usr/bin/doxygen) Configuring doxy-api.conf using configuration Program sphinx-build found: YES (/usr/bin/sphinx-build) Compiler for C supports arguments -Wno-format-truncation: YES (cached) Message: Missing dependency "flow_classify" for example "flow_classify" Message: Skipping example "flow_classify" Has header "sys/epoll.h" : YES Library pqos found: NO Message: Skipping example "l2fwd-cat" Library rt found: YES Has header "sys/epoll.h" : YES (cached) Has header "linux/virtio_blk.h" : YES Library virt found: NO Run-time dependency jansson found: NO (tried pkgconfig) Message: Skipping example "vm_power_manager" Library virt found: NO Message: Skipping example "guest_cli" Configuring rte_build_config.h using configuration Message: ================= Applications Enabled ================= apps: pdump, proc-info, test-acl, test-bbdev, test-cmdline, test-compress-perf, test-crypto-perf, test-dma-perf, test-eventdev, test-fib, test-flow-perf, test-gpudev, test-mldev, test-pipeline, test-pmd, test-regex, test-sad, test-security-perf, Message: ================= Libraries Enabled ================= libs: kvargs, telemetry, eal, ring, rcu, mempool, mbuf, net, meter, ethdev, pci, cmdline, metrics, hash, timer, acl, bbdev, bitratestats, bpf, cfgfile, compressdev, cryptodev, distributor, efd, eventdev, gpudev, gro, gso, ip_frag, jobstats, latencystats, lpm, member, pcapng, power, rawdev, regexdev, mldev, dmadev, rib, reorder, sched, security, stack, vhost, ipsec, pdcp, fib, port, pdump, table, pipeline, graph, node, Message: =============== Drivers Enabled =============== common: cpt, dpaax, iavf, idpf, mlx5, qat, bus: auxiliary, cdx, dpaa, fslmc, ifpga, pci, platform, vdev, vmbus, mempool: bucket, dpaa, dpaa2, ring, stack, dma: dpaa, dpaa2, skeleton, net: af_packet, ark, atlantic, avp, axgbe, bnxt, bond, cpfl, cxgbe, dpaa, dpaa2, e1000, ena, enetc, enetfec, enic, failsafe, fm10k, gve, hinic, i40e, iavf, ice, idpf, igc, ionic, ixgbe, memif, mlx4, mlx5, netvsc, nfp, ngbe, null, octeon_ep, pfe, qede, ring, softnic, tap, thunderx, txgbe, vdev_netvsc, vhost, virtio, vmxnet3, raw: dpaa2_cmdif, ntb, skeleton, crypto: bcmfs, caam_jr, dpaa_sec, dpaa2_sec, mlx5, nitrox, null, scheduler, virtio, compress: mlx5, regex: mlx5, ml: vdpa: ifc, mlx5, event: dpaa, dpaa2, dsw, opdl, skeleton, sw, baseband: acc, fpga_5gnr_fec, fpga_lte_fec, la12xx, null, turbo_sw, gpu: cuda, Message: ================= Content Skipped ================= apps: dumpcap: missing dependency, "libpcap" libs: kni: explicitly disabled via build config (deprecated lib) flow_classify: explicitly disabled via build config (deprecated lib) drivers: common/mvep: missing dependency, "libmusdk" common/octeontx: explicitly disabled via build config common/cnxk: explicitly disabled via build config crypto/qat: missing dependency, libipsecmb or libcrypto common/sfc_efx: only supported on x86_64 and aarch64 mempool/cnxk: explicitly disabled via build config mempool/octeontx: explicitly disabled via build config dma/cnxk: explicitly disabled via build config dma/hisilicon: only supported on x86_64 and aarch64 dma/idxd: only supported on x86 dma/ioat: only supported on x86 net/af_xdp: missing dependency, "libxdp >=1.2.2" and "libbpf" net/bnx2x: missing dependency, "zlib" net/cnxk: explicitly disabled via build config net/hns3: only supported on x86_64 and aarch64 net/ipn3ke: missing dependency, "libfdt" net/kni: missing internal dependency, "kni" (deprecated lib) net/mana: only supported on x86_64 Linux net/mvneta: missing dependency, "libmusdk" net/mvpp2: missing dependency, "libmusdk" net/nfb: missing dependency, "libnfb" net/octeontx: explicitly disabled via build config net/pcap: missing dependency, "libpcap" net/sfc: only supported on x86_64 and aarch64 raw/cnxk_bphy: missing internal dependency, "common_cnxk" raw/cnxk_gpio: missing internal dependency, "common_cnxk" raw/ifpga: missing dependency, "libfdt" crypto/armv8: missing dependency, "libAArch64crypto" crypto/ccp: missing dependency, "libcrypto" crypto/cnxk: explicitly disabled via build config crypto/ipsec_mb: missing dependency, "libIPSec_MB" crypto/mvsam: missing dependency, "libmusdk" crypto/octeontx: explicitly disabled via build config crypto/openssl: missing dependency, "libcrypto" crypto/uadk: missing dependency, "libwd" compress/isal: missing dependency, "libisal" compress/octeontx: explicitly disabled via build config compress/zlib: missing dependency, "zlib" regex/cn9k: missing internal dependency, "common_cnxk" ml/cnxk: explicitly disabled via build config vdpa/sfc: only supported on x86_64 and aarch64 event/cnxk: explicitly disabled via build config event/dlb2: only supported on x86_64 Linux event/octeontx: explicitly disabled via build config Build targets in project: 671 NOTICE: Future-deprecated features used: * 0.58.0: {'meson.get_cross_property'} DPDK 23.11.0-rc0 User defined options Cross files : /tmp/ppc64le-power8-linux-gcc buildtype : debugoptimized werror : True c_args : -I/opt/cudart disable_drivers: */cnxk,*/octeontx examples : all Found ninja-1.10.0 at /usr/bin/ninja WARNING: Running the setup command as `meson [options]` instead of `meson setup [options]` is ambiguous and deprecated. $ ninja -C /tmp/build-ppc64-gcc ninja: Entering directory `/tmp/build-ppc64-gcc' [1/2330] Compiling C object lib/librte_eal.a.p/eal_ppc_rte_hypervisor.c.o [2/2330] Compiling C object lib/librte_eal.a.p/eal_common_eal_common_hypervisor.c.o [3/2330] Compiling C object lib/librte_eal.a.p/eal_common_rte_version.c.o [4/2330] Compiling C object lib/librte_eal.a.p/eal_common_eal_common_errno.c.o [5/2330] Compiling C object lib/librte_eal.a.p/eal_common_eal_common_class.c.o [6/2330] Compiling C object lib/librte_eal.a.p/eal_common_eal_common_cpuflags.c.o [7/2330] Compiling C object lib/librte_eal.a.p/eal_common_rte_reciprocal.c.o [8/2330] Compiling C object lib/librte_eal.a.p/eal_common_eal_common_hexdump.c.o [9/2330] Compiling C object lib/librte_eal.a.p/eal_linux_eal_log.c.o [10/2330] Compiling C object lib/librte_eal.a.p/eal_unix_eal_unix_timer.c.o [11/2330] Compiling C object lib/librte_eal.a.p/eal_ppc_rte_power_intrinsics.c.o [12/2330] Compiling C object lib/librte_eal.a.p/eal_common_eal_common_debug.c.o [13/2330] Compiling C object lib/librte_eal.a.p/eal_common_eal_common_uuid.c.o [14/2330] Compiling C object lib/librte_eal.a.p/eal_linux_eal_cpuflags.c.o [15/2330] Compiling C object lib/librte_eal.a.p/eal_common_eal_common_string_fns.c.o [16/2330] Compiling C object lib/librte_eal.a.p/eal_common_eal_common_timer.c.o [17/2330] Compiling C object lib/librte_kvargs.a.p/kvargs_rte_kvargs.c.o [18/2330] Linking static target lib/librte_kvargs.a [19/2330] Compiling C object lib/librte_eal.a.p/eal_ppc_rte_cycles.c.o [20/2330] Compiling C object lib/librte_eal.a.p/eal_common_eal_common_config.c.o [21/2330] Compiling C object lib/librte_eal.a.p/eal_linux_eal_timer.c.o [22/2330] Compiling C object lib/librte_eal.a.p/eal_unix_eal_unix_thread.c.o [23/2330] Compiling C object lib/librte_telemetry.a.p/telemetry_telemetry_data.c.o [24/2330] Compiling C object lib/librte_eal.a.p/eal_common_eal_common_tailqs.c.o [25/2330] Compiling C object lib/librte_eal.a.p/eal_unix_eal_debug.c.o [26/2330] Compiling C object lib/librte_eal.a.p/eal_unix_eal_unix_memory.c.o [27/2330] Compiling C object lib/librte_eal.a.p/eal_common_eal_common_launch.c.o [28/2330] Compiling C object lib/librte_eal.a.p/eal_common_eal_common_bus.c.o [29/2330] Compiling C object lib/librte_eal.a.p/eal_common_rte_keepalive.c.o [30/2330] Compiling C object lib/librte_eal.a.p/eal_unix_eal_firmware.c.o [31/2330] Compiling C object lib/librte_eal.a.p/eal_linux_eal_thread.c.o [32/2330] Compiling C object lib/librte_eal.a.p/eal_linux_eal_vfio_mp_sync.c.o [33/2330] Compiling C object lib/librte_eal.a.p/eal_common_rte_random.c.o [34/2330] Compiling C object lib/librte_eal.a.p/eal_unix_eal_file.c.o [35/2330] Compiling C object lib/librte_telemetry.a.p/telemetry_telemetry_legacy.c.o [36/2330] Compiling C object lib/librte_eal.a.p/eal_ppc_rte_cpuflags.c.o [37/2330] Compiling C object lib/librte_eal.a.p/eal_common_eal_common_mcfg.c.o [38/2330] Compiling C object lib/librte_eal.a.p/eal_linux_eal_lcore.c.o [39/2330] Compiling C object lib/librte_eal.a.p/eal_unix_eal_filesystem.c.o [40/2330] Compiling C object lib/librte_eal.a.p/eal_unix_rte_thread.c.o [41/2330] Compiling C object lib/librte_eal.a.p/eal_common_eal_common_trace_ctf.c.o [42/2330] Compiling C object lib/librte_ring.a.p/ring_rte_ring.c.o [43/2330] Compiling C object lib/librte_eal.a.p/eal_common_malloc_elem.c.o [44/2330] Compiling C object lib/librte_eal.a.p/eal_common_hotplug_mp.c.o [45/2330] Linking static target lib/librte_ring.a [46/2330] Compiling C object lib/librte_mempool.a.p/mempool_rte_mempool_ops_default.c.o [47/2330] Compiling C object lib/librte_eal.a.p/eal_common_eal_common_memalloc.c.o [48/2330] Compiling C object lib/librte_eal.a.p/eal_common_eal_common_interrupts.c.o [49/2330] Compiling C object lib/librte_eal.a.p/eal_common_eal_common_log.c.o [50/2330] Compiling C object lib/librte_net.a.p/net_rte_net_crc.c.o [51/2330] Compiling C object lib/librte_eal.a.p/eal_common_eal_common_dynmem.c.o [52/2330] Compiling C object lib/librte_eal.a.p/eal_linux_eal_alarm.c.o [53/2330] Compiling C object lib/librte_mbuf.a.p/mbuf_rte_mbuf_pool_ops.c.o [54/2330] Compiling C object lib/librte_eal.a.p/eal_common_eal_common_trace_points.c.o [55/2330] Compiling C object lib/librte_eal.a.p/eal_common_eal_common_memzone.c.o [56/2330] Compiling C object lib/librte_eal.a.p/eal_common_eal_common_devargs.c.o [57/2330] Compiling C object lib/librte_mbuf.a.p/mbuf_rte_mbuf_ptype.c.o [58/2330] Compiling C object lib/librte_eal.a.p/eal_common_eal_common_trace.c.o [59/2330] Compiling C object lib/librte_eal.a.p/eal_common_eal_common_thread.c.o [60/2330] Compiling C object lib/librte_eal.a.p/eal_common_eal_common_trace_utils.c.o [61/2330] Compiling C object lib/librte_mempool.a.p/mempool_rte_mempool_ops.c.o [62/2330] Generating lib/kvargs.sym_chk with a custom command (wrapped by meson to capture output) [63/2330] Compiling C object lib/librte_eal.a.p/eal_common_malloc_mp.c.o [64/2330] Compiling C object lib/librte_eal.a.p/eal_common_eal_common_dev.c.o [65/2330] Compiling C object lib/librte_net.a.p/net_rte_ether.c.o [66/2330] Compiling C object lib/librte_eal.a.p/eal_linux_eal_dev.c.o [67/2330] Compiling C object lib/librte_cmdline.a.p/cmdline_cmdline_vt100.c.o [68/2330] Compiling C object lib/librte_mempool.a.p/mempool_mempool_trace_points.c.o [69/2330] Compiling C object lib/librte_eal.a.p/eal_linux_eal_hugepage_info.c.o [70/2330] Compiling C object lib/librte_meter.a.p/meter_rte_meter.c.o [71/2330] Compiling C object lib/librte_eal.a.p/eal_common_eal_common_lcore.c.o [72/2330] Linking target lib/librte_kvargs.so.24.0 [73/2330] Linking static target lib/librte_meter.a [74/2330] Compiling C object lib/librte_power.a.p/power_power_common.c.o [75/2330] Compiling C object lib/librte_cmdline.a.p/cmdline_cmdline_parse_portlist.c.o [76/2330] Compiling C object lib/librte_cmdline.a.p/cmdline_cmdline_parse_string.c.o [77/2330] Compiling C object lib/librte_pci.a.p/pci_rte_pci.c.o [78/2330] Linking static target lib/librte_pci.a [79/2330] Compiling C object lib/librte_cmdline.a.p/cmdline_cmdline.c.o [80/2330] Compiling C object lib/librte_cmdline.a.p/cmdline_cmdline_parse_num.c.o [81/2330] Compiling C object lib/librte_cmdline.a.p/cmdline_cmdline_socket.c.o [82/2330] Compiling C object lib/librte_cmdline.a.p/cmdline_cmdline_cirbuf.c.o [83/2330] Compiling C object lib/librte_cmdline.a.p/cmdline_cmdline_os_unix.c.o [84/2330] Compiling C object lib/librte_cmdline.a.p/cmdline_cmdline_parse_etheraddr.c.o [85/2330] Compiling C object lib/librte_ethdev.a.p/ethdev_ethdev_profile.c.o [86/2330] Compiling C object lib/librte_eal.a.p/eal_common_rte_malloc.c.o [87/2330] Generating symbol file lib/librte_kvargs.so.24.0.p/librte_kvargs.so.24.0.symbols [88/2330] Compiling C object lib/librte_cmdline.a.p/cmdline_cmdline_parse.c.o [89/2330] Compiling C object lib/librte_mbuf.a.p/mbuf_rte_mbuf_dyn.c.o [90/2330] Compiling C object lib/librte_net.a.p/net_rte_net.c.o [91/2330] Compiling C object lib/librte_net.a.p/net_rte_arp.c.o [92/2330] Compiling C object lib/librte_eal.a.p/eal_common_malloc_heap.c.o [93/2330] Linking static target lib/librte_net.a [94/2330] Compiling C object lib/librte_acl.a.p/acl_acl_run_altivec.c.o FAILED: lib/librte_acl.a.p/acl_acl_run_altivec.c.o powerpc64le-linux-gnu-gcc -Ilib/librte_acl.a.p -Ilib -I../../root/dpdk/lib -Ilib/acl -I../../root/dpdk/lib/acl -I. -I../../root/dpdk -Iconfig -I../../root/dpdk/config -Ilib/eal/include -I../../root/dpdk/lib/eal/include -Ilib/eal/linux/include -I../../root/dpdk/lib/eal/linux/include -Ilib/eal/ppc/include -I../../root/dpdk/lib/eal/ppc/include -Ilib/eal/common -I../../root/dpdk/lib/eal/common -Ilib/eal -I../../root/dpdk/lib/eal -Ilib/kvargs -I../../root/dpdk/lib/kvargs -Ilib/metrics -I../../root/dpdk/lib/metrics -Ilib/telemetry -I../../root/dpdk/lib/telemetry -I/opt/cudart -fdiagnostics-color=always -D_FILE_OFFSET_BITS=64 -Wall -Winvalid-pch -Wextra -Werror -std=c11 -O2 -g -include rte_config.h -Wcast-qual -Wdeprecated -Wformat -Wformat-nonliteral -Wformat-security -Wmissing-declarations -Wmissing-prototypes -Wnested-externs -Wold-style-definition -Wpointer-arith -Wsign-compare -Wstrict-prototypes -Wundef -Wwrite-strings -Wno-address-of-packed-member -Wno-packed-not-aligned -Wno-missing-field-initializers -D_GNU_SOURCE -fPIC -mcpu=power8 -mtune=power8 -DALLOW_EXPERIMENTAL_API -DALLOW_INTERNAL_API -Wno-format-truncation -DRTE_LOG_DEFAULT_LOGTYPE=lib.acl -MD -MQ lib/librte_acl.a.p/acl_acl_run_altivec.c.o -MF lib/librte_acl.a.p/acl_acl_run_altivec.c.o.d -o lib/librte_acl.a.p/acl_acl_run_altivec.c.o -c ../../root/dpdk/lib/acl/acl_run_altivec.c In file included from ../../root/dpdk/lib/acl/acl_run_altivec.c:6: ../../root/dpdk/lib/acl/acl_run_altivec.h: In function 'resolve_priority_altivec': ../../root/dpdk/lib/acl/acl_run_altivec.h:44:16: error: two or more data types in declaration specifiers 44 | __vector bool int selector; | ^~~ ../../root/dpdk/lib/acl/acl_run_altivec.h:44:2: error: use of boolean types in AltiVec types is invalid 44 | __vector bool int selector; | ^~~~~~~~ ../../root/dpdk/lib/acl/acl_run_altivec.h:65:4: note: use '-flax-vector-conversions' to permit conversions between vectors with differing element types or numbers of subparts 65 | selector = vec_cmpgt(priority1, priority); | ^~~~~~~~ In file included from ../../root/dpdk/lib/eal/ppc/include/rte_altivec.h:10, from ../../root/dpdk/lib/eal/ppc/include/rte_vect.h:9, from ../../root/dpdk/lib/acl/rte_acl_osdep.h:37, from ../../root/dpdk/lib/acl/rte_acl.h:14, from ../../root/dpdk/lib/acl/acl_run.h:8, from ../../root/dpdk/lib/acl/acl_run_altivec.h:6, from ../../root/dpdk/lib/acl/acl_run_altivec.c:6: ../../root/dpdk/lib/acl/acl_run_altivec.h:65:15: error: incompatible types when assigning to type '__vector unsigned char' {aka '__vector(16) unsigned char'} from type '__vector __bool int' {aka '__vector(4) __bool int'} 65 | selector = vec_cmpgt(priority1, priority); | ^~~~~~~~~ In file included from ../../root/dpdk/lib/acl/acl_run_altivec.c:6: ../../root/dpdk/lib/acl/acl_run_altivec.h:66:4: error: invalid parameter combination for AltiVec intrinsic '__builtin_vec_sel' 66 | results = vec_sel(results, results1, selector); | ^~~~~~~ ../../root/dpdk/lib/acl/acl_run_altivec.h:68:5: error: invalid parameter combination for AltiVec intrinsic '__builtin_vec_sel' 68 | selector); | ^~~~~~~~ ../../root/dpdk/lib/acl/acl_run_altivec.h: In function 'transition4': ../../root/dpdk/lib/acl/acl_run_altivec.h:113:16: error: two or more data types in declaration specifiers 113 | __vector bool int dfa_msk; | ^~~ ../../root/dpdk/lib/acl/acl_run_altivec.h:113:2: error: use of boolean types in AltiVec types is invalid 113 | __vector bool int dfa_msk; | ^~~~~~~~ In file included from ../../root/dpdk/lib/eal/ppc/include/rte_altivec.h:10, from ../../root/dpdk/lib/eal/ppc/include/rte_vect.h:9, from ../../root/dpdk/lib/acl/rte_acl_osdep.h:37, from ../../root/dpdk/lib/acl/rte_acl.h:14, from ../../root/dpdk/lib/acl/acl_run.h:8, from ../../root/dpdk/lib/acl/acl_run_altivec.h:6, from ../../root/dpdk/lib/acl/acl_run_altivec.c:6: ../../root/dpdk/lib/acl/acl_run_altivec.h:137:12: error: incompatible types when assigning to type '__vector unsigned char' {aka '__vector(16) unsigned char'} from type '__vector __bool int' {aka '__vector(4) __bool int'} 137 | dfa_msk = vec_cmpeq(node_type, t); | ^~~~~~~~~ In file included from ../../root/dpdk/lib/acl/acl_run_altivec.c:6: ../../root/dpdk/lib/acl/acl_run_altivec.h:167:2: error: invalid parameter combination for AltiVec intrinsic '__builtin_vec_sel' 167 | t = vec_sel(quad_ofs, dfa_ofs, dfa_msk); | ^ [95/2330] Generating lib/ring.sym_chk with a custom command (wrapped by meson to capture output) [96/2330] Compiling C object lib/librte_acl.a.p/acl_tb_mem.c.o [97/2330] Compiling C object lib/librte_hash.a.p/hash_rte_fbk_hash.c.o [98/2330] Compiling C object lib/librte_eal.a.p/eal_common_eal_common_fbarray.c.o [99/2330] Compiling C object lib/librte_cmdline.a.p/cmdline_cmdline_parse_ipaddr.c.o [100/2330] Compiling C object lib/librte_ethdev.a.p/ethdev_rte_class_eth.c.o [101/2330] Compiling C object lib/librte_ethdev.a.p/ethdev_sff_telemetry.c.o [102/2330] Compiling C object lib/librte_ethdev.a.p/ethdev_sff_8472.c.o [103/2330] Generating lib/pci.sym_chk with a custom command (wrapped by meson to capture output) [104/2330] Compiling C object lib/librte_metrics.a.p/metrics_rte_metrics.c.o [105/2330] Compiling C object lib/librte_eal.a.p/eal_common_rte_service.c.o [106/2330] Generating lib/meter.sym_chk with a custom command (wrapped by meson to capture output) [107/2330] Compiling C object lib/librte_eal.a.p/eal_common_eal_common_memory.c.o [108/2330] Compiling C object lib/librte_ethdev.a.p/ethdev_ethdev_private.c.o [109/2330] Compiling C object lib/librte_bpf.a.p/bpf_bpf_load.c.o [110/2330] Compiling C object lib/librte_metrics.a.p/metrics_rte_metrics_telemetry.c.o [111/2330] Compiling C object lib/librte_bpf.a.p/bpf_bpf_stub.c.o [112/2330] Compiling C object lib/librte_eal.a.p/eal_linux_eal.c.o [113/2330] Compiling C object lib/librte_bpf.a.p/bpf_bpf.c.o [114/2330] Compiling C object lib/librte_eal.a.p/eal_common_eal_common_proc.c.o [115/2330] Compiling C object lib/librte_bpf.a.p/bpf_bpf_dump.c.o [116/2330] Compiling C object lib/librte_eal.a.p/eal_linux_eal_interrupts.c.o [117/2330] Compiling C object lib/librte_ethdev.a.p/ethdev_ethdev_driver.c.o [118/2330] Compiling C object lib/librte_distributor.a.p/distributor_rte_distributor_match_generic.c.o [119/2330] Compiling C object lib/librte_acl.a.p/acl_rte_acl.c.o [120/2330] Compiling C object lib/librte_compressdev.a.p/compressdev_rte_compressdev_pmd.c.o [121/2330] Compiling C object lib/librte_eal.a.p/eal_linux_eal_memory.c.o [122/2330] Generating lib/net.sym_chk with a custom command (wrapped by meson to capture output) [123/2330] Compiling C object lib/librte_ethdev.a.p/ethdev_rte_ethdev_cman.c.o [124/2330] Compiling C object lib/librte_eventdev.a.p/eventdev_eventdev_private.c.o [125/2330] Compiling C object lib/librte_bitratestats.a.p/bitratestats_rte_bitrate.c.o [126/2330] Compiling C object lib/librte_ethdev.a.p/ethdev_sff_8079.c.o [127/2330] Compiling C object lib/librte_eal.a.p/eal_linux_eal_memalloc.c.o [128/2330] Compiling C object lib/librte_cryptodev.a.p/cryptodev_cryptodev_pmd.c.o [129/2330] Compiling C object lib/librte_ethdev.a.p/ethdev_sff_common.c.o [130/2330] Compiling C object lib/librte_mempool.a.p/mempool_rte_mempool.c.o [131/2330] Compiling C object lib/librte_cmdline.a.p/cmdline_cmdline_rdline.c.o [132/2330] Compiling C object lib/librte_acl.a.p/acl_acl_gen.c.o [133/2330] Compiling C object lib/librte_compressdev.a.p/compressdev_rte_comp.c.o [134/2330] Compiling C object lib/librte_cfgfile.a.p/cfgfile_rte_cfgfile.c.o [135/2330] Compiling C object lib/librte_acl.a.p/acl_acl_run_scalar.c.o [136/2330] Compiling C object lib/librte_eal.a.p/eal_linux_eal_vfio.c.o [137/2330] Compiling C object lib/librte_timer.a.p/timer_rte_timer.c.o [138/2330] Compiling C object lib/librte_eventdev.a.p/eventdev_rte_event_ring.c.o [139/2330] Compiling C object lib/librte_ethdev.a.p/ethdev_sff_8636.c.o [140/2330] Compiling C object lib/librte_compressdev.a.p/compressdev_rte_compressdev.c.o [141/2330] Compiling C object lib/librte_ethdev.a.p/ethdev_rte_ethdev_telemetry.c.o [142/2330] Compiling C object lib/librte_distributor.a.p/distributor_rte_distributor_single.c.o [143/2330] Compiling C object lib/librte_rcu.a.p/rcu_rte_rcu_qsbr.c.o [144/2330] Compiling C object lib/librte_eal.a.p/eal_common_eal_common_options.c.o [145/2330] Compiling C object lib/librte_hash.a.p/hash_rte_thash.c.o [146/2330] Compiling C object lib/librte_bpf.a.p/bpf_bpf_exec.c.o [147/2330] Compiling C object lib/librte_distributor.a.p/distributor_rte_distributor.c.o [148/2330] Compiling C object lib/librte_bbdev.a.p/bbdev_rte_bbdev.c.o [149/2330] Compiling C object lib/librte_acl.a.p/acl_acl_bld.c.o [150/2330] Compiling C object lib/librte_cryptodev.a.p/cryptodev_cryptodev_trace_points.c.o [151/2330] Compiling C object lib/librte_ethdev.a.p/ethdev_rte_mtr.c.o [152/2330] Compiling C object lib/librte_telemetry.a.p/telemetry_telemetry.c.o [153/2330] Compiling C object lib/librte_bpf.a.p/bpf_bpf_validate.c.o [154/2330] Compiling C object lib/librte_bpf.a.p/bpf_bpf_pkt.c.o [155/2330] Compiling C object lib/librte_eventdev.a.p/eventdev_eventdev_trace_points.c.o [156/2330] Compiling C object lib/librte_ethdev.a.p/ethdev_rte_tm.c.o [157/2330] Compiling C object lib/librte_mbuf.a.p/mbuf_rte_mbuf.c.o [158/2330] Compiling C object lib/librte_efd.a.p/efd_rte_efd.c.o [159/2330] Compiling C object lib/librte_eventdev.a.p/eventdev_rte_event_timer_adapter.c.o [160/2330] Compiling C object lib/librte_eventdev.a.p/eventdev_rte_event_crypto_adapter.c.o [161/2330] Compiling C object lib/librte_eventdev.a.p/eventdev_rte_event_eth_tx_adapter.c.o [162/2330] Compiling C object lib/librte_ethdev.a.p/ethdev_rte_flow.c.o [163/2330] Compiling C object lib/librte_ethdev.a.p/ethdev_ethdev_trace_points.c.o [164/2330] Compiling C object lib/librte_hash.a.p/hash_rte_cuckoo_hash.c.o [165/2330] Compiling C object lib/librte_cryptodev.a.p/cryptodev_rte_cryptodev.c.o [166/2330] Compiling C object lib/librte_eventdev.a.p/eventdev_rte_event_eth_rx_adapter.c.o [167/2330] Compiling C object lib/librte_ethdev.a.p/ethdev_rte_ethdev.c.o ninja: build stopped: subcommand failed. Cross-file (/tmp/ppc64le-power8-linux-gcc): """ [binaries] c = 'powerpc64le-linux-gnu-gcc' cpp = 'powerpc64le-linux-gnu-cpp' ar = 'powerpc64le-linux-gnu-gcc-ar' strip = 'powerpc64le-linux-gnu-strip' pkgconfig = 'powerpc64le-linux-gnu-pkg-config' [host_machine] system = 'linux' cpu_family = 'ppc64' cpu = 'power8' endian = 'little' """ OS: Ubuntu 20.04.6 LTS Compiler: powerpc64le-linux-gnu-gcc (Ubuntu 9.4.0-1ubuntu1~20.04.1) 9.4.0 rdma-core: v47.0 Environment: CC=gcc PKG_CONFIG_PATH=:/opt/rdma-core/build-ppc64/lib/pkgconfig ^ permalink raw reply [flat|nested] 45+ messages in thread
* Re: [PATCH v3] build: update DPDK to use C11 standard 2023-08-01 13:47 ` Ali Alnubani @ 2023-08-01 14:00 ` Bruce Richardson 2023-08-02 10:10 ` Bruce Richardson 0 siblings, 1 reply; 45+ messages in thread From: Bruce Richardson @ 2023-08-01 14:00 UTC (permalink / raw) To: Ali Alnubani, David Christensen Cc: David Marchand, Patrick Robb, Tyler Retzlaff, dev, Morten Brørup, NBU-Contact-Thomas Monjalon (EXTERNAL) +David Christensen On Tue, Aug 01, 2023 at 01:47:19PM +0000, Ali Alnubani wrote: > > -----Original Message----- > > From: Bruce Richardson <bruce.richardson@intel.com> > > Sent: Tuesday, August 1, 2023 4:22 PM > > To: Ali Alnubani <alialnu@nvidia.com> > > Cc: David Marchand <david.marchand@redhat.com>; Patrick Robb > > <probb@iol.unh.edu>; Tyler Retzlaff <roretzla@linux.microsoft.com>; > > dev@dpdk.org; Morten Brørup <mb@smartsharesystems.com>; NBU- > > Contact-Thomas Monjalon (EXTERNAL) <thomas@monjalon.net> > > Subject: Re: [PATCH v3] build: update DPDK to use C11 standard > > > > On Tue, Aug 01, 2023 at 12:42:36PM +0000, Ali Alnubani wrote: > > <snip> > > > > > > On Ubuntu 20.04 while cross compiling for ppc64le with powerpc64le-linux- > > gnu-gcc 9.4, I see: > > > > > > [..] > > > lib/acl/acl_run_altivec.h:44:16: error: two or more data types in declaration > > specifiers > > > [..] > > > lib/acl/acl_run_altivec.h:44:2: error: use of boolean types in AltiVec types is > > invalid > > > [..] > > > error: incompatible types when assigning to type '__vector unsigned char' > > {aka '__vector(16) unsigned char'} from type '__vector __bool int' {aka > > '__vector(4) __bool int'} > > > [..] > > > lib/acl/acl_run_altivec.h:66:4: error: invalid parameter combination for > > AltiVec intrinsic '__builtin_vec_sel' > > > [..] > > > > > Hi Ali, > > > > where can I get the full log for this error? Is it recorded in patchwork > > under a particular test set? I see compile runs for loongarch and > > aarch(64), but nothing listed for PPC. > > Hello Bruce, > > I run this build internally. Attaching build log with more info about the environment. > > Note: I'm using an out-of-tree cross file because the in-tree one doesn't set binaries.pkgconfig. <snip> > In file included from ../../root/dpdk/lib/acl/acl_run_altivec.c:6: > ../../root/dpdk/lib/acl/acl_run_altivec.h: In function 'resolve_priority_altivec': > ../../root/dpdk/lib/acl/acl_run_altivec.h:44:16: error: two or more data types in declaration specifiers > 44 | __vector bool int selector; > | ^~~ > ../../root/dpdk/lib/acl/acl_run_altivec.h:44:2: error: use of boolean types in AltiVec types is invalid > 44 | __vector bool int selector; > | ^~~~~~~~ I don't know anything about altivec, unfortunately, and the use of "bool int" together looks very strange. Adding PPC maintainer to thread. David, can you perhaps help out with these issues? Thanks, /Bruce ^ permalink raw reply [flat|nested] 45+ messages in thread
* Re: [PATCH v3] build: update DPDK to use C11 standard 2023-08-01 14:00 ` Bruce Richardson @ 2023-08-02 10:10 ` Bruce Richardson 0 siblings, 0 replies; 45+ messages in thread From: Bruce Richardson @ 2023-08-02 10:10 UTC (permalink / raw) To: Ali Alnubani, David Christensen Cc: David Marchand, Patrick Robb, Tyler Retzlaff, dev, Morten Brørup, NBU-Contact-Thomas Monjalon (EXTERNAL) On Tue, Aug 01, 2023 at 03:00:06PM +0100, Bruce Richardson wrote: > +David Christensen > > On Tue, Aug 01, 2023 at 01:47:19PM +0000, Ali Alnubani wrote: > > > -----Original Message----- > > > From: Bruce Richardson <bruce.richardson@intel.com> > > > Sent: Tuesday, August 1, 2023 4:22 PM > > > To: Ali Alnubani <alialnu@nvidia.com> > > > Cc: David Marchand <david.marchand@redhat.com>; Patrick Robb > > > <probb@iol.unh.edu>; Tyler Retzlaff <roretzla@linux.microsoft.com>; > > > dev@dpdk.org; Morten Brørup <mb@smartsharesystems.com>; NBU- > > > Contact-Thomas Monjalon (EXTERNAL) <thomas@monjalon.net> > > > Subject: Re: [PATCH v3] build: update DPDK to use C11 standard > > > > > > On Tue, Aug 01, 2023 at 12:42:36PM +0000, Ali Alnubani wrote: > > > <snip> > > > > > > > > On Ubuntu 20.04 while cross compiling for ppc64le with powerpc64le-linux- > > > gnu-gcc 9.4, I see: > > > > > > > > [..] > > > > lib/acl/acl_run_altivec.h:44:16: error: two or more data types in declaration > > > specifiers > > > > [..] > > > > lib/acl/acl_run_altivec.h:44:2: error: use of boolean types in AltiVec types is > > > invalid > > > > [..] > > > > error: incompatible types when assigning to type '__vector unsigned char' > > > {aka '__vector(16) unsigned char'} from type '__vector __bool int' {aka > > > '__vector(4) __bool int'} > > > > [..] > > > > lib/acl/acl_run_altivec.h:66:4: error: invalid parameter combination for > > > AltiVec intrinsic '__builtin_vec_sel' > > > > [..] > > > > > > > Hi Ali, > > > > > > where can I get the full log for this error? Is it recorded in patchwork > > > under a particular test set? I see compile runs for loongarch and > > > aarch(64), but nothing listed for PPC. > > > > Hello Bruce, > > > > I run this build internally. Attaching build log with more info about the environment. > > > > Note: I'm using an out-of-tree cross file because the in-tree one doesn't set binaries.pkgconfig. > > <snip> > > > In file included from ../../root/dpdk/lib/acl/acl_run_altivec.c:6: > > ../../root/dpdk/lib/acl/acl_run_altivec.h: In function 'resolve_priority_altivec': > > ../../root/dpdk/lib/acl/acl_run_altivec.h:44:16: error: two or more data types in declaration specifiers > > 44 | __vector bool int selector; > > | ^~~ > > ../../root/dpdk/lib/acl/acl_run_altivec.h:44:2: error: use of boolean types in AltiVec types is invalid > > 44 | __vector bool int selector; > > | ^~~~~~~~ > > I don't know anything about altivec, unfortunately, and the use of "bool > int" together looks very strange. Adding PPC maintainer to thread. > > David, can you perhaps help out with these issues? > Doing some google searching throws up this patch which looks relevant: https://patches.dpdk.org/project/dpdk/patch/20180830115504.28608-1-christian.ehrhardt@canonical.com/ ^ permalink raw reply [flat|nested] 45+ messages in thread
* Re: [PATCH v3] build: update DPDK to use C11 standard 2023-08-01 10:19 ` Bruce Richardson 2023-08-01 10:35 ` David Marchand @ 2023-08-01 10:37 ` Thomas Monjalon 2023-08-01 14:00 ` Ali Alnubani 1 sibling, 1 reply; 45+ messages in thread From: Thomas Monjalon @ 2023-08-01 10:37 UTC (permalink / raw) To: Patrick Robb, Bruce Richardson, alialnu Cc: Tyler Retzlaff, dev, Morten Brørup, david.marchand, rasland 01/08/2023 12:19, Bruce Richardson: > On Mon, Jul 31, 2023 at 08:39:31PM -0400, Patrick Robb wrote: > > Hi Bruce, > > I see some failures for this series for our Ubuntu 20.04 containers. > > And, our DTS testbeds which are on ubuntu 20.04 are skipping running > > testsuites because they can't compile DPDK. So, that's why it has some > > missing results for a couple of the Intel NICs. For context, I'll paste > > below where the compile job terminates in one of our containerized > > compile test runs. The GCC in use here is version 9.4, so it meets the > > requirements as described in your patch as far as I can tell. I'll > > check it out more tomorrow to see whether it's an infra failure, like > > some missing dependencies. Please let me know if we expect to have no > > issues with 20.04 or if this is anticipated. > > Thanks! > > [1638/2730] Generating symbol file > > 'drivers/a715181@@rte_net_ixgbe@sha/librte_net_ixgbe.so.24.0.symbols'. > > [1639/2730] Compiling C object > > 'drivers/a715181@@tmp_rte_net_mlx4@sta/net_mlx4_mlx4.c.o'. > > FAILED: drivers/a715181@@tmp_rte_net_mlx4@sta/net_mlx4_mlx4.c.o > > ccache cc -Idrivers/a715181@@tmp_rte_net_mlx4@sta -Idrivers > > -I../drivers -Idrivers/net/mlx4 -I../drivers/net/mlx4 -Ilib/ethdev > > -I../lib/ethdev -I. -I../ -Iconfig -I../config -Ilib/eal/include > > -I../lib/eal/include -Ilib/eal/linux/include -I../lib/eal/linux/include > > -Ilib/eal/x86/include -I../lib/eal/x86/include -Ilib/eal/common > > -I../lib/eal/common -Ilib/eal -I../lib/eal -Ilib/kvargs -I../lib/kvargs > > -Ilib/telemetry/../metrics -I../lib/telemetry/../metrics > > -Ilib/telemetry -I../lib/telemetry -Ilib/net -I../lib/net -Ilib/mbuf > > -I../lib/mbuf -Ilib/mempool -I../lib/mempool -Ilib/ring -I../lib/ring > > -Ilib/meter -I../lib/meter -Idrivers/bus/pci -I../drivers/bus/pci > > -I../drivers/bus/pci/linux -Ilib/pci -I../lib/pci -Idrivers/bus/vdev > > -I../drivers/bus/vdev -I/usr/include/libnl3 -fdiagnostics-color=always > > -pipe -D_FILE_OFFSET_BITS=64 -Wall -Winvalid-pch -Wextra -Werror > > -std=c11 -O3 -include rte_config.h -Wcast-qual -Wdeprecated -Wformat > > -Wformat-nonliteral -Wformat-security -Wmissing-declarations > > -Wmissing-prototypes -Wnested-externs -Wold-style-definition > > -Wpointer-arith -Wsign-compare -Wstrict-prototypes -Wundef > > -Wwrite-strings -Wno-address-of-packed-member -Wno-packed-not-aligned > > -Wno-missing-field-initializers -D_GNU_SOURCE -fPIC -march=native > > -DALLOW_EXPERIMENTAL_API -DALLOW_INTERNAL_API -Wno-format-truncation > > -std=c11 -Wno-strict-prototypes -D_BSD_SOURCE -D_DEFAULT_SOURCE > > -D_XOPEN_SOURCE=600 -UPEDANTIC -DRTE_LOG_DEFAULT_LOGTYPE=pmd.net.mlx4 > > -MD -MQ 'drivers/a715181@@tmp_rte_net_mlx4@sta/net_mlx4_mlx4.c.o' -MF > > 'drivers/a715181@@tmp_rte_net_mlx4@sta/net_mlx4_mlx4.c.o.d' -o > > 'drivers/a715181@@tmp_rte_net_mlx4@sta/net_mlx4_mlx4.c.o' -c > > ../drivers/net/mlx4/mlx4.c > > In file included from ../drivers/net/mlx4/mlx4_rxtx.h:27, > > from ../drivers/net/mlx4/mlx4.c:49: > > ../drivers/net/mlx4/mlx4_prm.h:111:8: error: redefinition of 'struct > > mlx4_wqe_lso_seg' > > 111 | struct mlx4_wqe_lso_seg { > > | ^~~~~~~~~~~~~~~~ > > In file included from ../drivers/net/mlx4/mlx4_glue.h:16, > > from ../drivers/net/mlx4/mlx4.c:46: > > /usr/include/infiniband/mlx4dv.h:410:8: note: originally defined here > > 410 | struct mlx4_wqe_lso_seg { > > | ^~~~~~~~~~~~~~~~ > > ninja: build stopped: subcommand failed. > > Hi again, > > I've attempted to reproduce this on my Ubuntu 20.04 VM and failed, > everything seems to build ok. > > Looking through the logs, though, there does appear to be a difference in > the configurations in the two cases. I suspect my Ubuntu has an updated > verbs package compared to the image you are using. In the log of the failed > build, I see: > > Checking whether type "struct mlx4_wqe_lso_seg" has member "mss_hdr_size" with dependencies libmlx4, libibverbs: NO > Configuring mlx4_autoconf.h using configuration > > While building in my VM, I have: > > Checking whether type "struct mlx4_wqe_lso_seg" has member "mss_hdr_size" with dependencies libmlx4, libibverbs: YES (cached) > Configuring mlx4_autoconf.h using configuration > > So my verbs mlx4 header has got a different set of definitions to those in > the CI machine. My Ubuntu reports as 20.04.6 with libibverbs-dev package > version "28.0-1ubuntu1" > > Can the CI image be updated to latest 20.04 packages? I'm surprised there is such issue. The autoconf mechanism should manage any old package. Ali, do you have an idea what happens? ^ permalink raw reply [flat|nested] 45+ messages in thread
* RE: [PATCH v3] build: update DPDK to use C11 standard 2023-08-01 10:37 ` Thomas Monjalon @ 2023-08-01 14:00 ` Ali Alnubani 0 siblings, 0 replies; 45+ messages in thread From: Ali Alnubani @ 2023-08-01 14:00 UTC (permalink / raw) To: NBU-Contact-Thomas Monjalon (EXTERNAL), Patrick Robb, Bruce Richardson Cc: Tyler Retzlaff, dev, Morten Brørup, david.marchand, Raslan Darawsheh > -----Original Message----- > From: Thomas Monjalon <thomas@monjalon.net> > Sent: Tuesday, August 1, 2023 1:37 PM > To: Patrick Robb <probb@iol.unh.edu>; Bruce Richardson > <bruce.richardson@intel.com>; Ali Alnubani <alialnu@nvidia.com> > Cc: Tyler Retzlaff <roretzla@linux.microsoft.com>; dev@dpdk.org; Morten > Brørup <mb@smartsharesystems.com>; david.marchand@redhat.com; > Raslan Darawsheh <rasland@nvidia.com> > Subject: Re: [PATCH v3] build: update DPDK to use C11 standard > > 01/08/2023 12:19, Bruce Richardson: > > On Mon, Jul 31, 2023 at 08:39:31PM -0400, Patrick Robb wrote: > > > Hi Bruce, > > > I see some failures for this series for our Ubuntu 20.04 containers. > > > And, our DTS testbeds which are on ubuntu 20.04 are skipping running > > > testsuites because they can't compile DPDK. So, that's why it has some > > > missing results for a couple of the Intel NICs. For context, I'll paste > > > below where the compile job terminates in one of our containerized > > > compile test runs. The GCC in use here is version 9.4, so it meets the > > > requirements as described in your patch as far as I can tell. I'll > > > check it out more tomorrow to see whether it's an infra failure, like > > > some missing dependencies. Please let me know if we expect to have no > > > issues with 20.04 or if this is anticipated. > > > Thanks! > > > [1638/2730] Generating symbol file > > > > 'drivers/a715181@@rte_net_ixgbe@sha/librte_net_ixgbe.so.24.0.symbols'. > > > [1639/2730] Compiling C object > > > 'drivers/a715181@@tmp_rte_net_mlx4@sta/net_mlx4_mlx4.c.o'. > > > FAILED: drivers/a715181@@tmp_rte_net_mlx4@sta/net_mlx4_mlx4.c.o > > > ccache cc -Idrivers/a715181@@tmp_rte_net_mlx4@sta -Idrivers > > > -I../drivers -Idrivers/net/mlx4 -I../drivers/net/mlx4 -Ilib/ethdev > > > -I../lib/ethdev -I. -I../ -Iconfig -I../config -Ilib/eal/include > > > -I../lib/eal/include -Ilib/eal/linux/include -I../lib/eal/linux/include > > > -Ilib/eal/x86/include -I../lib/eal/x86/include -Ilib/eal/common > > > -I../lib/eal/common -Ilib/eal -I../lib/eal -Ilib/kvargs -I../lib/kvargs > > > -Ilib/telemetry/../metrics -I../lib/telemetry/../metrics > > > -Ilib/telemetry -I../lib/telemetry -Ilib/net -I../lib/net -Ilib/mbuf > > > -I../lib/mbuf -Ilib/mempool -I../lib/mempool -Ilib/ring -I../lib/ring > > > -Ilib/meter -I../lib/meter -Idrivers/bus/pci -I../drivers/bus/pci > > > -I../drivers/bus/pci/linux -Ilib/pci -I../lib/pci -Idrivers/bus/vdev > > > -I../drivers/bus/vdev -I/usr/include/libnl3 -fdiagnostics-color=always > > > -pipe -D_FILE_OFFSET_BITS=64 -Wall -Winvalid-pch -Wextra -Werror > > > -std=c11 -O3 -include rte_config.h -Wcast-qual -Wdeprecated -Wformat > > > -Wformat-nonliteral -Wformat-security -Wmissing-declarations > > > -Wmissing-prototypes -Wnested-externs -Wold-style-definition > > > -Wpointer-arith -Wsign-compare -Wstrict-prototypes -Wundef > > > -Wwrite-strings -Wno-address-of-packed-member -Wno-packed-not- > aligned > > > -Wno-missing-field-initializers -D_GNU_SOURCE -fPIC -march=native > > > -DALLOW_EXPERIMENTAL_API -DALLOW_INTERNAL_API -Wno-format- > truncation > > > -std=c11 -Wno-strict-prototypes -D_BSD_SOURCE -D_DEFAULT_SOURCE > > > -D_XOPEN_SOURCE=600 -UPEDANTIC - > DRTE_LOG_DEFAULT_LOGTYPE=pmd.net.mlx4 > > > -MD -MQ > 'drivers/a715181@@tmp_rte_net_mlx4@sta/net_mlx4_mlx4.c.o' -MF > > > 'drivers/a715181@@tmp_rte_net_mlx4@sta/net_mlx4_mlx4.c.o.d' -o > > > 'drivers/a715181@@tmp_rte_net_mlx4@sta/net_mlx4_mlx4.c.o' -c > > > ../drivers/net/mlx4/mlx4.c > > > In file included from ../drivers/net/mlx4/mlx4_rxtx.h:27, > > > from ../drivers/net/mlx4/mlx4.c:49: > > > ../drivers/net/mlx4/mlx4_prm.h:111:8: error: redefinition of 'struct > > > mlx4_wqe_lso_seg' > > > 111 | struct mlx4_wqe_lso_seg { > > > | ^~~~~~~~~~~~~~~~ > > > In file included from ../drivers/net/mlx4/mlx4_glue.h:16, > > > from ../drivers/net/mlx4/mlx4.c:46: > > > /usr/include/infiniband/mlx4dv.h:410:8: note: originally defined here > > > 410 | struct mlx4_wqe_lso_seg { > > > | ^~~~~~~~~~~~~~~~ > > > ninja: build stopped: subcommand failed. > > > > Hi again, > > > > I've attempted to reproduce this on my Ubuntu 20.04 VM and failed, > > everything seems to build ok. > > > > Looking through the logs, though, there does appear to be a difference in > > the configurations in the two cases. I suspect my Ubuntu has an updated > > verbs package compared to the image you are using. In the log of the failed > > build, I see: > > > > Checking whether type "struct mlx4_wqe_lso_seg" has member > "mss_hdr_size" with dependencies libmlx4, libibverbs: NO > > Configuring mlx4_autoconf.h using configuration > > > > While building in my VM, I have: > > > > Checking whether type "struct mlx4_wqe_lso_seg" has member > "mss_hdr_size" with dependencies libmlx4, libibverbs: YES (cached) > > Configuring mlx4_autoconf.h using configuration > > > > So my verbs mlx4 header has got a different set of definitions to those in > > the CI machine. My Ubuntu reports as 20.04.6 with libibverbs-dev package > > version "28.0-1ubuntu1" > > > > Can the CI image be updated to latest 20.04 packages? > > I'm surprised there is such issue. > The autoconf mechanism should manage any old package. > > Ali, do you have an idea what happens? > 28.0-1ubuntu1 is the latest for focal (20.04LTS), and I can reproduce with it as well. https://packages.ubuntu.com/focal/libibverbs-dev It's resolved for me with v4. ^ permalink raw reply [flat|nested] 45+ messages in thread
* [PATCH v4] build: update DPDK to use C11 standard 2023-07-31 10:38 [PATCH] build: update DPDK to use C11 standard Bruce Richardson ` (2 preceding siblings ...) 2023-07-31 16:58 ` [PATCH v3] " Bruce Richardson @ 2023-08-01 13:15 ` Bruce Richardson 2023-08-01 13:24 ` David Marchand 2023-08-01 15:47 ` Ali Alnubani 2023-08-02 12:31 ` [PATCH v5] " Bruce Richardson 4 siblings, 2 replies; 45+ messages in thread From: Bruce Richardson @ 2023-08-01 13:15 UTC (permalink / raw) To: dev; +Cc: Bruce Richardson, Morten Brørup, Tyler Retzlaff 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> --- V4: * pass cflags to the structure and definition checks in mlx* drivers to ensure posix definitions - as well as C-standard ones - are available. V3: * remove (now unneeded) use of -std=gnu99 in failsafe net driver. V2: * Resubmit now that 23.11-rc0 patch applied * Add _POSIX_C_SOURCE macro to eal_common_errno.c to get POSIX definition of strerror_r() with c11 standard. --- doc/guides/linux_gsg/sys_reqs.rst | 3 ++- doc/guides/rel_notes/deprecation.rst | 18 ------------------ doc/guides/rel_notes/release_23_11.rst | 17 +++++++++++++++++ drivers/common/mlx5/linux/meson.build | 5 +++-- drivers/net/failsafe/meson.build | 1 - drivers/net/mlx4/meson.build | 4 ++-- lib/eal/common/eal_common_errno.c | 1 + meson.build | 1 + 8 files changed, 26 insertions(+), 24 deletions(-) diff --git a/doc/guides/linux_gsg/sys_reqs.rst b/doc/guides/linux_gsg/sys_reqs.rst index dfeaf4e1c5..13be715933 100644 --- a/doc/guides/linux_gsg/sys_reqs.rst +++ b/doc/guides/linux_gsg/sys_reqs.rst @@ -27,7 +27,8 @@ Compilation of the DPDK The setup commands and installed packages needed on various systems may be different. For details on Linux distributions and the versions tested, please consult the DPDK Release Notes. -* General development tools including a supported C compiler such as gcc (version 4.9+) or clang (version 3.4+), +* General development tools including a C compiler supporting the C11 standard, + including standard atomics, for example: GCC (version 5.0+) or Clang (version 3.6+), and ``pkg-config`` or ``pkgconf`` to be used when building end-user binaries against DPDK. * For RHEL/Fedora systems these can be installed using ``dnf groupinstall "Development Tools"`` diff --git a/doc/guides/rel_notes/deprecation.rst b/doc/guides/rel_notes/deprecation.rst index 494b401cda..cc939d3c67 100644 --- a/doc/guides/rel_notes/deprecation.rst +++ b/doc/guides/rel_notes/deprecation.rst @@ -17,24 +17,6 @@ Other API and ABI deprecation notices are to be posted below. Deprecation Notices ------------------- -* C Compiler: From DPDK 23.11 onwards, - building DPDK will require a C compiler which supports the C11 standard, - including support for C11 standard atomics. - - More specifically, the requirements will be: - - * Support for flag "-std=c11" (or similar) - * __STDC_NO_ATOMICS__ is *not defined* when using c11 flag - - Please note: - - * C11, including standard atomics, is supported from GCC version 5 onwards, - and is the default language version in that release - (Ref: https://gcc.gnu.org/gcc-5/changes.html) - * C11 is the default compilation mode in Clang from version 3.6, - which also added support for standard atomics - (Ref: https://releases.llvm.org/3.6.0/tools/clang/docs/ReleaseNotes.html) - * build: Enabling deprecated libraries (``flow_classify``, ``kni``) won't be possible anymore through the use of the ``disable_libs`` build option. A new build option for deprecated libraries will be introduced instead. diff --git a/doc/guides/rel_notes/release_23_11.rst b/doc/guides/rel_notes/release_23_11.rst index 6b4dd21fd0..c8b9ed456c 100644 --- a/doc/guides/rel_notes/release_23_11.rst +++ b/doc/guides/rel_notes/release_23_11.rst @@ -20,6 +20,23 @@ DPDK Release 23.11 ninja -C build doc xdg-open build/doc/guides/html/rel_notes/release_23_11.html +* Build Requirements: From DPDK 23.11 onwards, + building DPDK will require a C compiler which supports the C11 standard, + including support for C11 standard atomics. + + More specifically, the requirements will be: + + * Support for flag "-std=c11" (or similar) + * __STDC_NO_ATOMICS__ is *not defined* when using c11 flag + + Please note: + + * C11, including standard atomics, is supported from GCC version 5 onwards, + and is the default language version in that release + (Ref: https://gcc.gnu.org/gcc-5/changes.html) + * C11 is the default compilation mode in Clang from version 3.6, + which also added support for standard atomics + (Ref: https://releases.llvm.org/3.6.0/tools/clang/docs/ReleaseNotes.html) New Features ------------ diff --git a/drivers/common/mlx5/linux/meson.build b/drivers/common/mlx5/linux/meson.build index 15edc13041..b3a64547c5 100644 --- a/drivers/common/mlx5/linux/meson.build +++ b/drivers/common/mlx5/linux/meson.build @@ -231,11 +231,12 @@ if libmtcr_ul_found endif foreach arg:has_sym_args - mlx5_config.set(arg[0], cc.has_header_symbol(arg[1], arg[2], dependencies: libs)) + mlx5_config.set(arg[0], cc.has_header_symbol(arg[1], arg[2], dependencies: libs, args: cflags)) endforeach foreach arg:has_member_args file_prefix = '#include <' + arg[1] + '>' - mlx5_config.set(arg[0], cc.has_member(arg[2], arg[3], prefix : file_prefix, dependencies: libs)) + mlx5_config.set(arg[0], + cc.has_member(arg[2], arg[3], prefix : file_prefix, dependencies: libs, args: cflags)) endforeach # Build Glue Library diff --git a/drivers/net/failsafe/meson.build b/drivers/net/failsafe/meson.build index 6013e13722..c1d361083b 100644 --- a/drivers/net/failsafe/meson.build +++ b/drivers/net/failsafe/meson.build @@ -7,7 +7,6 @@ if is_windows subdir_done() endif -cflags += '-std=gnu99' cflags += '-D_DEFAULT_SOURCE' cflags += '-D_XOPEN_SOURCE=700' cflags += '-pedantic' diff --git a/drivers/net/mlx4/meson.build b/drivers/net/mlx4/meson.build index a038c1ec1b..3c5ee24186 100644 --- a/drivers/net/mlx4/meson.build +++ b/drivers/net/mlx4/meson.build @@ -103,12 +103,12 @@ has_sym_args = [ config = configuration_data() foreach arg:has_sym_args config.set(arg[0], cc.has_header_symbol(arg[1], arg[2], - dependencies: libs)) + dependencies: libs, args: cflags)) endforeach foreach arg:has_member_args file_prefix = '#include <' + arg[1] + '>' config.set(arg[0], cc.has_member(arg[2], arg[3], - prefix: file_prefix, dependencies: libs)) + prefix: file_prefix, dependencies: libs, args: cflags)) endforeach configure_file(output : 'mlx4_autoconf.h', configuration : config) diff --git a/lib/eal/common/eal_common_errno.c b/lib/eal/common/eal_common_errno.c index ef8f782abb..b30e2f0ad4 100644 --- a/lib/eal/common/eal_common_errno.c +++ b/lib/eal/common/eal_common_errno.c @@ -4,6 +4,7 @@ /* Use XSI-compliant portable version of strerror_r() */ #undef _GNU_SOURCE +#define _POSIX_C_SOURCE 200809L #include <stdio.h> #include <string.h> diff --git a/meson.build b/meson.build index 39cb73846d..70b54f0c98 100644 --- a/meson.build +++ b/meson.build @@ -9,6 +9,7 @@ project('DPDK', 'c', license: 'BSD', default_options: [ 'buildtype=release', + 'c_std=c11', 'default_library=static', 'warning_level=2', ], -- 2.39.2 ^ permalink raw reply [flat|nested] 45+ messages in thread
* Re: [PATCH v4] build: update DPDK to use C11 standard 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 15:47 ` Ali Alnubani 1 sibling, 1 reply; 45+ messages in thread From: David Marchand @ 2023-08-01 13:24 UTC (permalink / raw) To: Bruce Richardson Cc: dev, Morten Brørup, Tyler Retzlaff, Thomas Monjalon, Ali Alnubani, Raslan Darawsheh On Tue, Aug 1, 2023 at 3:16 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> > --- > V4: > * pass cflags to the structure and definition checks in mlx* drivers > to ensure posix definitions - as well as C-standard ones - are > available. With this v4, mlx4 builds fine in my Ubuntu 20.04.6 container. However, I think the mlx4dv.h includes are probably faulty: as this header is using off_t, it should include sys/types.h in the first place. https://github.com/linux-rdma/rdma-core/blob/master/providers/mlx4/mlx4dv.h#L36 This had been fixed in the mlx5 header in some rdma-core change in the past: https://github.com/linux-rdma/rdma-core/commit/d2389b34ccc5 -- David Marchand ^ permalink raw reply [flat|nested] 45+ messages in thread
* Re: [PATCH v4] build: update DPDK to use C11 standard 2023-08-01 13:24 ` David Marchand @ 2023-08-01 13:29 ` Bruce Richardson 2023-08-01 13:34 ` David Marchand 0 siblings, 1 reply; 45+ messages in thread From: Bruce Richardson @ 2023-08-01 13:29 UTC (permalink / raw) To: David Marchand Cc: dev, Morten Brørup, Tyler Retzlaff, Thomas Monjalon, Ali Alnubani, Raslan Darawsheh On Tue, Aug 01, 2023 at 03:24:19PM +0200, David Marchand wrote: > On Tue, Aug 1, 2023 at 3:16 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> > > --- > > V4: > > * pass cflags to the structure and definition checks in mlx* drivers > > to ensure posix definitions - as well as C-standard ones - are > > available. > > With this v4, mlx4 builds fine in my Ubuntu 20.04.6 container. > However, I think the mlx4dv.h includes are probably faulty: as this > header is using off_t, it should include sys/types.h in the first > place. > https://github.com/linux-rdma/rdma-core/blob/master/providers/mlx4/mlx4dv.h#L36 > > This had been fixed in the mlx5 header in some rdma-core change in the > past: https://github.com/linux-rdma/rdma-core/commit/d2389b34ccc5 > Even if that were fixed, I still think the correct behaviour in our build here is to test the structures using the same flags as will be used to build the final lib. /Bruce ^ permalink raw reply [flat|nested] 45+ messages in thread
* Re: [PATCH v4] build: update DPDK to use C11 standard 2023-08-01 13:29 ` Bruce Richardson @ 2023-08-01 13:34 ` David Marchand 0 siblings, 0 replies; 45+ messages in thread From: David Marchand @ 2023-08-01 13:34 UTC (permalink / raw) To: Bruce Richardson Cc: dev, Morten Brørup, Tyler Retzlaff, Thomas Monjalon, Ali Alnubani, Raslan Darawsheh On Tue, Aug 1, 2023 at 3:29 PM Bruce Richardson <bruce.richardson@intel.com> wrote: > > On Tue, Aug 01, 2023 at 03:24:19PM +0200, David Marchand wrote: > > On Tue, Aug 1, 2023 at 3:16 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> > > > --- > > > V4: > > > * pass cflags to the structure and definition checks in mlx* drivers > > > to ensure posix definitions - as well as C-standard ones - are > > > available. > > > > With this v4, mlx4 builds fine in my Ubuntu 20.04.6 container. > > However, I think the mlx4dv.h includes are probably faulty: as this > > header is using off_t, it should include sys/types.h in the first > > place. > > https://github.com/linux-rdma/rdma-core/blob/master/providers/mlx4/mlx4dv.h#L36 > > > > This had been fixed in the mlx5 header in some rdma-core change in the > > past: https://github.com/linux-rdma/rdma-core/commit/d2389b34ccc5 > > > Even if that were fixed, I still think the correct behaviour in our build > here is to test the structures using the same flags as will be used to > build the final lib. Yes, compiling for testing and using the structures must be aligned. -- David Marchand ^ permalink raw reply [flat|nested] 45+ messages in thread
* RE: [PATCH v4] build: update DPDK to use C11 standard 2023-08-01 13:15 ` [PATCH v4] " Bruce Richardson 2023-08-01 13:24 ` David Marchand @ 2023-08-01 15:47 ` Ali Alnubani 2023-08-01 15:50 ` Bruce Richardson 1 sibling, 1 reply; 45+ messages in thread From: Ali Alnubani @ 2023-08-01 15:47 UTC (permalink / raw) To: Bruce Richardson, dev; +Cc: Morten Brørup, Tyler Retzlaff > -----Original Message----- > From: Bruce Richardson <bruce.richardson@intel.com> > Sent: Tuesday, August 1, 2023 4:16 PM > To: dev@dpdk.org > Cc: Bruce Richardson <bruce.richardson@intel.com>; Morten Brørup > <mb@smartsharesystems.com>; Tyler Retzlaff > <roretzla@linux.microsoft.com> > Subject: [PATCH v4] build: update DPDK to use C11 standard > > 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> > --- By the way, I also see this build failure in RHEL 7: [827/1011] Compiling C object app/dpdk-testpmd.p/test-pmd_cmdline_flow.c.o FAILED: app/dpdk-testpmd.p/test-pmd_cmdline_flow.c.o ccache cc -Iapp/dpdk-testpmd.p -Iapp -I../app -Iapp/test-pmd -I../app/test-pmd -Ilib/ethdev -I../lib/ethdev -I. -I.. -Iconfig -I../config -Ilib/eal/include -I../lib/eal/include -Ilib/eal/linux/include -I../lib/eal/linux/include -Ilib/eal/x86/include -I../lib/eal/x86/include -Ilib/eal/common -I../lib/eal/common -Ilib/eal -I../lib/eal -Ilib/kvargs -I../lib/kvargs -Ilib/metrics -I../lib/metrics -Ilib/telemetry -I../lib/telemetry -Ilib/net -I../lib/net -Ilib/mbuf -I../lib/mbuf -Ilib/mempool -I../lib/mempool -Ilib/ring -I../lib/ring -Ilib/meter -I../lib/meter -Ilib/cmdline -I../lib/cmdline -Ilib/bitratestats -I../lib/bitratestats -Ilib/bpf -I../lib/bpf -Ilib/gro -I../lib/gro -Ilib/gso -I../lib/gso -Ilib/latencystats -I../lib/latencystats -Ilib/pdump -I../lib/pdump -Ilib/pcapng -I../lib/pcapng -Idrivers/net/mlx5 -I../drivers/net/mlx5 -Idrivers/net/mlx5/linux -I../drivers/net/mlx5/linux -Idrivers/net/mlx5/hws -I../drivers/net/mlx5/hws -Idrivers/bus/pci -I../drivers/bus/pci -I../drivers/bus/pci/linux -Ilib/pci -I../lib/pci -Idrivers/bus/vdev -I../drivers/bus/vdev -Ilib/hash -I../lib/hash -Ilib/rcu -I../lib/rcu -Idrivers/common/mlx5 -I../drivers/common/mlx5 -Idrivers/common/mlx5/linux -I../drivers/common/mlx5/linux -Idrivers/bus/auxiliary -I../drivers/bus/auxiliary -pipe -D_FILE_OFFSET_BITS=64 -Wall -Winvalid-pch -Wextra -Werror -std=c11 -O3 -include rte_config.h -Wcast-qual -Wdeprecated -Wformat -Wformat-nonliteral -Wformat-security -Wmissing-declarations -Wmissing-prototypes -Wnested-externs -Wold-style-definition -Wpointer-arith -Wsign-compare -Wstrict-prototypes -Wundef -Wwrite-strings -Wno-missing-field-initializers -D_GNU_SOURCE -march=native -DALLOW_EXPERIMENTAL_API -Wno-deprecated-declarations -MD -MQ app/dpdk-testpmd.p/test-pmd_cmdline_flow.c.o -MF app/dpdk-testpmd.p/test-pmd_cmdline_flow.c.o.d -o app/dpdk-testpmd.p/test-pmd_cmdline_flow.c.o -c ../app/test-pmd/cmdline_flow.c ../app/test-pmd/cmdline_flow.c: In function ‘parse_vc_spec’: ../app/test-pmd/cmdline_flow.c:1035:37: error: array initialized from non-constant array expression #define NEXT_ENTRY(...) (const enum index []){ __VA_ARGS__, ZERO, } ^ ../app/test-pmd/cmdline_flow.c:8049:38: note: in expansion of macro ‘NEXT_ENTRY’ static const enum index prefix[] = NEXT_ENTRY(COMMON_PREFIX); ^ ../app/test-pmd/cmdline_flow.c: In function ‘parse_vc_action_rss_type’: ../app/test-pmd/cmdline_flow.c:1035:37: error: array initialized from non-constant array expression #define NEXT_ENTRY(...) (const enum index []){ __VA_ARGS__, ZERO, } ^ ../app/test-pmd/cmdline_flow.c:8391:35: note: in expansion of macro ‘NEXT_ENTRY’ static const enum index next[] = NEXT_ENTRY(ACTION_RSS_TYPE); ^ ../app/test-pmd/cmdline_flow.c: In function ‘parse_vc_action_rss_queue’: ../app/test-pmd/cmdline_flow.c:1035:37: error: array initialized from non-constant array expression #define NEXT_ENTRY(...) (const enum index []){ __VA_ARGS__, ZERO, } ^ ../app/test-pmd/cmdline_flow.c:8435:35: note: in expansion of macro ‘NEXT_ENTRY’ static const enum index next[] = NEXT_ENTRY(ACTION_RSS_QUEUE); ^ [834/1011] Compiling C object app/dpdk-testpmd.p/test-pmd_config.c.o ninja: build stopped: subcommand failed. Meson: 1.2.0 Gcc: 4.8.5 ^ permalink raw reply [flat|nested] 45+ messages in thread
* Re: [PATCH v4] build: update DPDK to use C11 standard 2023-08-01 15:47 ` Ali Alnubani @ 2023-08-01 15:50 ` Bruce Richardson 2023-08-01 16:20 ` Tyler Retzlaff 0 siblings, 1 reply; 45+ messages in thread From: Bruce Richardson @ 2023-08-01 15:50 UTC (permalink / raw) To: Ali Alnubani; +Cc: dev, Morten Brørup, Tyler Retzlaff On Tue, Aug 01, 2023 at 03:47:03PM +0000, Ali Alnubani wrote: > > -----Original Message----- > > From: Bruce Richardson <bruce.richardson@intel.com> > > Sent: Tuesday, August 1, 2023 4:16 PM > > To: dev@dpdk.org > > Cc: Bruce Richardson <bruce.richardson@intel.com>; Morten Brørup > > <mb@smartsharesystems.com>; Tyler Retzlaff > > <roretzla@linux.microsoft.com> > > Subject: [PATCH v4] build: update DPDK to use C11 standard > > > > 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> > > --- > > By the way, I also see this build failure in RHEL 7: > It's my understanding that we no longer support the default compilers in RHEL 7, since gcc 4.8.5 doesn't support the necessary c11 standard atomics. /Bruce ^ permalink raw reply [flat|nested] 45+ messages in thread
* Re: [PATCH v4] build: update DPDK to use C11 standard 2023-08-01 15:50 ` Bruce Richardson @ 2023-08-01 16:20 ` Tyler Retzlaff 2023-08-01 20:12 ` Patrick Robb 0 siblings, 1 reply; 45+ messages in thread From: Tyler Retzlaff @ 2023-08-01 16:20 UTC (permalink / raw) To: Bruce Richardson; +Cc: Ali Alnubani, dev, Morten Brørup On Tue, Aug 01, 2023 at 04:50:45PM +0100, Bruce Richardson wrote: > On Tue, Aug 01, 2023 at 03:47:03PM +0000, Ali Alnubani wrote: > > > -----Original Message----- > > > From: Bruce Richardson <bruce.richardson@intel.com> > > > Sent: Tuesday, August 1, 2023 4:16 PM > > > To: dev@dpdk.org > > > Cc: Bruce Richardson <bruce.richardson@intel.com>; Morten Brørup > > > <mb@smartsharesystems.com>; Tyler Retzlaff > > > <roretzla@linux.microsoft.com> > > > Subject: [PATCH v4] build: update DPDK to use C11 standard > > > > > > 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> > > > --- > > > > By the way, I also see this build failure in RHEL 7: > > > It's my understanding that we no longer support the default compilers in > RHEL 7, since gcc 4.8.5 doesn't support the necessary c11 standard atomics. yes, support is being dropped for RHEL 7 http://mails.dpdk.org/archives/dev/2023-February/263516.html it seems like now that we are in 23.11 merge window the CI pipelines for the unsupported targets can be decomissioned? > > /Bruce ^ permalink raw reply [flat|nested] 45+ messages in thread
* Re: [PATCH v4] build: update DPDK to use C11 standard 2023-08-01 16:20 ` Tyler Retzlaff @ 2023-08-01 20:12 ` Patrick Robb 2023-08-02 6:32 ` David Marchand 0 siblings, 1 reply; 45+ messages in thread From: Patrick Robb @ 2023-08-01 20:12 UTC (permalink / raw) To: Tyler Retzlaff; +Cc: Bruce Richardson, Ali Alnubani, dev, Morten Brørup [-- Attachment #1: Type: text/plain, Size: 439 bytes --] On Tue, Aug 1, 2023 at 12:20 PM Tyler Retzlaff <roretzla@linux.microsoft.com> wrote: > > yes, support is being dropped for RHEL 7 > > http://mails.dpdk.org/archives/dev/2023-February/263516.html > > it seems like now that we are in 23.11 merge window the CI pipelines for > the unsupported targets can be decomissioned? > > > > > /Bruce > The Community Lab will discontinue CI testing on RHEL7 at start of day tomorrow. [-- Attachment #2: Type: text/html, Size: 893 bytes --] ^ permalink raw reply [flat|nested] 45+ messages in thread
* Re: [PATCH v4] build: update DPDK to use C11 standard 2023-08-01 20:12 ` Patrick Robb @ 2023-08-02 6:32 ` David Marchand 2023-08-02 13:40 ` Patrick Robb 0 siblings, 1 reply; 45+ messages in thread From: David Marchand @ 2023-08-02 6:32 UTC (permalink / raw) To: Patrick Robb Cc: Tyler Retzlaff, Bruce Richardson, Ali Alnubani, dev, Morten Brørup, Kevin Traynor, Luca Boccassi, Xueming(Steven) Li On Tue, Aug 1, 2023 at 10:12 PM Patrick Robb <probb@iol.unh.edu> wrote: > On Tue, Aug 1, 2023 at 12:20 PM Tyler Retzlaff <roretzla@linux.microsoft.com> wrote: >> >> >> yes, support is being dropped for RHEL 7 in the main branch. >> >> http://mails.dpdk.org/archives/dev/2023-February/263516.html >> >> it seems like now that we are in 23.11 merge window the CI pipelines for >> the unsupported targets can be decomissioned? > > The Community Lab will discontinue CI testing on RHEL7 at start of day tomorrow What about the LTS releases testing? -- David Marchand ^ permalink raw reply [flat|nested] 45+ messages in thread
* Re: [PATCH v4] build: update DPDK to use C11 standard 2023-08-02 6:32 ` David Marchand @ 2023-08-02 13:40 ` Patrick Robb 2023-08-03 9:21 ` David Marchand 0 siblings, 1 reply; 45+ messages in thread From: Patrick Robb @ 2023-08-02 13:40 UTC (permalink / raw) To: David Marchand Cc: Tyler Retzlaff, Bruce Richardson, Ali Alnubani, dev, Morten Brørup, Kevin Traynor, Luca Boccassi, Xueming(Steven) Li [-- Attachment #1: Type: text/plain, Size: 277 bytes --] On Wed, Aug 2, 2023 at 2:32 AM David Marchand <david.marchand@redhat.com> wrote: > What about the LTS releases testing? > > > -- > David Marchand > > Okay, we will disable rhel7 testing for dpdk main and next branches, but leave testing on for the LTS releases. [-- Attachment #2: Type: text/html, Size: 579 bytes --] ^ permalink raw reply [flat|nested] 45+ messages in thread
* Re: [PATCH v4] build: update DPDK to use C11 standard 2023-08-02 13:40 ` Patrick Robb @ 2023-08-03 9:21 ` David Marchand 0 siblings, 0 replies; 45+ messages in thread From: David Marchand @ 2023-08-03 9:21 UTC (permalink / raw) To: Patrick Robb Cc: Tyler Retzlaff, Bruce Richardson, Ali Alnubani, dev, Morten Brørup, Kevin Traynor, Luca Boccassi, Xueming(Steven) Li On Wed, Aug 2, 2023 at 3:41 PM Patrick Robb <probb@iol.unh.edu> wrote: > On Wed, Aug 2, 2023 at 2:32 AM David Marchand <david.marchand@redhat.com> wrote: >> >> What about the LTS releases testing? > > Okay, we will disable rhel7 testing for dpdk main and next branches, but leave testing on for the LTS releases. Thank you Patrick. -- David Marchand ^ permalink raw reply [flat|nested] 45+ messages in thread
* [PATCH v5] build: update DPDK to use C11 standard 2023-07-31 10:38 [PATCH] build: update DPDK to use C11 standard Bruce Richardson ` (3 preceding siblings ...) 2023-08-01 13:15 ` [PATCH v4] " Bruce Richardson @ 2023-08-02 12:31 ` Bruce Richardson 2023-08-02 12:35 ` Bruce Richardson ` (2 more replies) 4 siblings, 3 replies; 45+ messages in thread From: Bruce Richardson @ 2023-08-02 12:31 UTC (permalink / raw) To: dev; +Cc: Bruce Richardson, Morten Brørup, Tyler Retzlaff 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> --- V5: * Fix build issues with bool type in altivec code, due to bool type being in C11. Use __bool for altivec-specific version instead. V4: * pass cflags to the structure and definition checks in mlx* drivers to ensure posix definitions - as well as C-standard ones - are available. V3: * remove (now unneeded) use of -std=gnu99 in failsafe net driver. V2: * Resubmit now that 23.11-rc0 patch applied * Add _POSIX_C_SOURCE macro to eal_common_errno.c to get POSIX definition of strerror_r() with c11 standard. --- doc/guides/linux_gsg/sys_reqs.rst | 3 ++- doc/guides/rel_notes/deprecation.rst | 18 ------------------ doc/guides/rel_notes/release_23_11.rst | 17 +++++++++++++++++ drivers/common/mlx5/linux/meson.build | 5 +++-- drivers/net/failsafe/meson.build | 1 - drivers/net/mlx4/meson.build | 4 ++-- lib/acl/acl_run_altivec.h | 4 ++-- lib/eal/common/eal_common_errno.c | 1 + meson.build | 1 + 9 files changed, 28 insertions(+), 26 deletions(-) diff --git a/doc/guides/linux_gsg/sys_reqs.rst b/doc/guides/linux_gsg/sys_reqs.rst index dfeaf4e1c5..13be715933 100644 --- a/doc/guides/linux_gsg/sys_reqs.rst +++ b/doc/guides/linux_gsg/sys_reqs.rst @@ -27,7 +27,8 @@ Compilation of the DPDK The setup commands and installed packages needed on various systems may be different. For details on Linux distributions and the versions tested, please consult the DPDK Release Notes. -* General development tools including a supported C compiler such as gcc (version 4.9+) or clang (version 3.4+), +* General development tools including a C compiler supporting the C11 standard, + including standard atomics, for example: GCC (version 5.0+) or Clang (version 3.6+), and ``pkg-config`` or ``pkgconf`` to be used when building end-user binaries against DPDK. * For RHEL/Fedora systems these can be installed using ``dnf groupinstall "Development Tools"`` diff --git a/doc/guides/rel_notes/deprecation.rst b/doc/guides/rel_notes/deprecation.rst index 494b401cda..cc939d3c67 100644 --- a/doc/guides/rel_notes/deprecation.rst +++ b/doc/guides/rel_notes/deprecation.rst @@ -17,24 +17,6 @@ Other API and ABI deprecation notices are to be posted below. Deprecation Notices ------------------- -* C Compiler: From DPDK 23.11 onwards, - building DPDK will require a C compiler which supports the C11 standard, - including support for C11 standard atomics. - - More specifically, the requirements will be: - - * Support for flag "-std=c11" (or similar) - * __STDC_NO_ATOMICS__ is *not defined* when using c11 flag - - Please note: - - * C11, including standard atomics, is supported from GCC version 5 onwards, - and is the default language version in that release - (Ref: https://gcc.gnu.org/gcc-5/changes.html) - * C11 is the default compilation mode in Clang from version 3.6, - which also added support for standard atomics - (Ref: https://releases.llvm.org/3.6.0/tools/clang/docs/ReleaseNotes.html) - * build: Enabling deprecated libraries (``flow_classify``, ``kni``) won't be possible anymore through the use of the ``disable_libs`` build option. A new build option for deprecated libraries will be introduced instead. diff --git a/doc/guides/rel_notes/release_23_11.rst b/doc/guides/rel_notes/release_23_11.rst index 6b4dd21fd0..c8b9ed456c 100644 --- a/doc/guides/rel_notes/release_23_11.rst +++ b/doc/guides/rel_notes/release_23_11.rst @@ -20,6 +20,23 @@ DPDK Release 23.11 ninja -C build doc xdg-open build/doc/guides/html/rel_notes/release_23_11.html +* Build Requirements: From DPDK 23.11 onwards, + building DPDK will require a C compiler which supports the C11 standard, + including support for C11 standard atomics. + + More specifically, the requirements will be: + + * Support for flag "-std=c11" (or similar) + * __STDC_NO_ATOMICS__ is *not defined* when using c11 flag + + Please note: + + * C11, including standard atomics, is supported from GCC version 5 onwards, + and is the default language version in that release + (Ref: https://gcc.gnu.org/gcc-5/changes.html) + * C11 is the default compilation mode in Clang from version 3.6, + which also added support for standard atomics + (Ref: https://releases.llvm.org/3.6.0/tools/clang/docs/ReleaseNotes.html) New Features ------------ diff --git a/drivers/common/mlx5/linux/meson.build b/drivers/common/mlx5/linux/meson.build index 15edc13041..b3a64547c5 100644 --- a/drivers/common/mlx5/linux/meson.build +++ b/drivers/common/mlx5/linux/meson.build @@ -231,11 +231,12 @@ if libmtcr_ul_found endif foreach arg:has_sym_args - mlx5_config.set(arg[0], cc.has_header_symbol(arg[1], arg[2], dependencies: libs)) + mlx5_config.set(arg[0], cc.has_header_symbol(arg[1], arg[2], dependencies: libs, args: cflags)) endforeach foreach arg:has_member_args file_prefix = '#include <' + arg[1] + '>' - mlx5_config.set(arg[0], cc.has_member(arg[2], arg[3], prefix : file_prefix, dependencies: libs)) + mlx5_config.set(arg[0], + cc.has_member(arg[2], arg[3], prefix : file_prefix, dependencies: libs, args: cflags)) endforeach # Build Glue Library diff --git a/drivers/net/failsafe/meson.build b/drivers/net/failsafe/meson.build index 6013e13722..c1d361083b 100644 --- a/drivers/net/failsafe/meson.build +++ b/drivers/net/failsafe/meson.build @@ -7,7 +7,6 @@ if is_windows subdir_done() endif -cflags += '-std=gnu99' cflags += '-D_DEFAULT_SOURCE' cflags += '-D_XOPEN_SOURCE=700' cflags += '-pedantic' diff --git a/drivers/net/mlx4/meson.build b/drivers/net/mlx4/meson.build index a038c1ec1b..3c5ee24186 100644 --- a/drivers/net/mlx4/meson.build +++ b/drivers/net/mlx4/meson.build @@ -103,12 +103,12 @@ has_sym_args = [ config = configuration_data() foreach arg:has_sym_args config.set(arg[0], cc.has_header_symbol(arg[1], arg[2], - dependencies: libs)) + dependencies: libs, args: cflags)) endforeach foreach arg:has_member_args file_prefix = '#include <' + arg[1] + '>' config.set(arg[0], cc.has_member(arg[2], arg[3], - prefix: file_prefix, dependencies: libs)) + prefix: file_prefix, dependencies: libs, args: cflags)) endforeach configure_file(output : 'mlx4_autoconf.h', configuration : config) diff --git a/lib/acl/acl_run_altivec.h b/lib/acl/acl_run_altivec.h index 4556e1503b..3c30466d2d 100644 --- a/lib/acl/acl_run_altivec.h +++ b/lib/acl/acl_run_altivec.h @@ -41,7 +41,7 @@ resolve_priority_altivec(uint64_t transition, int n, { uint32_t x; xmm_t results, priority, results1, priority1; - __vector bool int selector; + __vector __bool int selector; xmm_t *saved_results, *saved_priority; for (x = 0; x < categories; x += RTE_ACL_RESULTS_MULTIPLIER) { @@ -110,7 +110,7 @@ transition4(xmm_t next_input, const uint64_t *trans, xmm_t in, node_type, r, t; xmm_t dfa_ofs, quad_ofs; xmm_t *index_mask, *tp; - __vector bool int dfa_msk; + __vector __bool int dfa_msk; __vector signed char zeroes = {}; union { uint64_t d64[2]; diff --git a/lib/eal/common/eal_common_errno.c b/lib/eal/common/eal_common_errno.c index ef8f782abb..b30e2f0ad4 100644 --- a/lib/eal/common/eal_common_errno.c +++ b/lib/eal/common/eal_common_errno.c @@ -4,6 +4,7 @@ /* Use XSI-compliant portable version of strerror_r() */ #undef _GNU_SOURCE +#define _POSIX_C_SOURCE 200809L #include <stdio.h> #include <string.h> diff --git a/meson.build b/meson.build index 39cb73846d..70b54f0c98 100644 --- a/meson.build +++ b/meson.build @@ -9,6 +9,7 @@ project('DPDK', 'c', license: 'BSD', default_options: [ 'buildtype=release', + 'c_std=c11', 'default_library=static', 'warning_level=2', ], -- 2.39.2 ^ permalink raw reply [flat|nested] 45+ messages in thread
* Re: [PATCH v5] build: update DPDK to use C11 standard 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 2 siblings, 0 replies; 45+ messages in thread From: Bruce Richardson @ 2023-08-02 12:35 UTC (permalink / raw) To: dev; +Cc: Morten Brørup, Tyler Retzlaff, David Christensen On Wed, Aug 02, 2023 at 01:31:34PM +0100, Bruce Richardson 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> > --- > V5: > * Fix build issues with bool type in altivec code, due to bool type > being in C11. Use __bool for altivec-specific version instead. > Just a note on the altivec builds: from my testing on latest ubuntu with "powerpc64le-linux-gnu-gcc (Ubuntu 12.3.0-1ubuntu1~23.04)", there are quite a few warnings/errors building the current DPDK mainline. This patch doesn't fix any of those errors, but neither does it add any new ones, as far as I can see! However, we may need some more PPC fixes and updated CI coverage to catch these issues sooner in future. /Bruce ^ permalink raw reply [flat|nested] 45+ messages in thread
* RE: [PATCH v5] build: update DPDK to use C11 standard 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 2 siblings, 0 replies; 45+ messages in thread From: Ali Alnubani @ 2023-08-03 12:38 UTC (permalink / raw) To: Bruce Richardson, dev; +Cc: Morten Brørup, Tyler Retzlaff > -----Original Message----- > From: Bruce Richardson <bruce.richardson@intel.com> > Sent: Wednesday, August 2, 2023 3:32 PM > To: dev@dpdk.org > Cc: Bruce Richardson <bruce.richardson@intel.com>; Morten Brørup > <mb@smartsharesystems.com>; Tyler Retzlaff > <roretzla@linux.microsoft.com> > Subject: [PATCH v5] build: update DPDK to use C11 standard > > 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> > --- > V5: > * Fix build issues with bool type in altivec code, due to bool type > being in C11. Use __bool for altivec-specific version instead. > > V4: > * pass cflags to the structure and definition checks in mlx* drivers > to ensure posix definitions - as well as C-standard ones - are > available. > > V3: > * remove (now unneeded) use of -std=gnu99 in failsafe net driver. > > V2: > * Resubmit now that 23.11-rc0 patch applied > * Add _POSIX_C_SOURCE macro to eal_common_errno.c to get POSIX > definition of strerror_r() with c11 standard. > > --- Tested-by: Ali Alnubani <alialnu@nvidia.com> Thanks, Ali ^ permalink raw reply [flat|nested] 45+ messages in thread
* Re: [PATCH v5] build: update DPDK to use C11 standard 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 2 siblings, 1 reply; 45+ messages in thread From: David Marchand @ 2023-08-03 13:36 UTC (permalink / raw) To: Bruce Richardson Cc: dev, Morten Brørup, Tyler Retzlaff, Ali Alnubani, Thomas Monjalon 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! -- David Marchand ^ permalink raw reply [flat|nested] 45+ messages in thread
* Re: [PATCH v5] build: update DPDK to use C11 standard 2023-08-03 13:36 ` David Marchand @ 2023-08-10 13:34 ` Thomas Monjalon 2023-08-10 14:48 ` Stephen Hemminger 0 siblings, 1 reply; 45+ messages in thread From: Thomas Monjalon @ 2023-08-10 13:34 UTC (permalink / raw) To: Bruce Richardson, David Marchand Cc: dev, Morten Brørup, Tyler Retzlaff, Ali Alnubani, galco 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? ^ permalink raw reply [flat|nested] 45+ messages in thread
* Re: [PATCH v5] build: update DPDK to use C11 standard 2023-08-10 13:34 ` Thomas Monjalon @ 2023-08-10 14:48 ` Stephen Hemminger 2023-08-10 16:35 ` Bruce Richardson 0 siblings, 1 reply; 45+ messages in thread From: Stephen Hemminger @ 2023-08-10 14:48 UTC (permalink / raw) To: Thomas Monjalon Cc: Bruce Richardson, David Marchand, dev, Morten Brørup, Tyler Retzlaff, Ali Alnubani, galco 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? > > 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? ^ permalink raw reply [flat|nested] 45+ messages in thread
* Re: [PATCH v5] build: update DPDK to use C11 standard 2023-08-10 14:48 ` Stephen Hemminger @ 2023-08-10 16:35 ` Bruce Richardson 2023-08-10 16:49 ` Thomas Monjalon 0 siblings, 1 reply; 45+ messages in thread From: Bruce Richardson @ 2023-08-10 16:35 UTC (permalink / raw) To: Stephen Hemminger Cc: Thomas Monjalon, David Marchand, dev, Morten Brørup, Tyler Retzlaff, Ali Alnubani, galco 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. /Bruce ^ permalink raw reply [flat|nested] 45+ messages in thread
* Re: [PATCH v5] build: update DPDK to use C11 standard 2023-08-10 16:35 ` Bruce Richardson @ 2023-08-10 16:49 ` Thomas Monjalon 2023-08-10 17:02 ` Stephen Hemminger 0 siblings, 1 reply; 45+ messages in thread From: Thomas Monjalon @ 2023-08-10 16:49 UTC (permalink / raw) To: Stephen Hemminger, Bruce Richardson Cc: David Marchand, dev, Morten Brørup, Tyler Retzlaff, Ali Alnubani, galco 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. OK looks good ^ permalink raw reply [flat|nested] 45+ messages in thread
* Re: [PATCH v5] build: update DPDK to use C11 standard 2023-08-10 16:49 ` Thomas Monjalon @ 2023-08-10 17:02 ` Stephen Hemminger 2023-08-10 18:17 ` Morten Brørup 0 siblings, 1 reply; 45+ messages in thread From: Stephen Hemminger @ 2023-08-10 17:02 UTC (permalink / raw) To: Thomas Monjalon Cc: Bruce Richardson, David Marchand, dev, Morten Brørup, Tyler Retzlaff, Ali Alnubani, galco 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. > > OK looks good Note: RHEL 7 official end of maintenance support is not until June 2024. ^ permalink raw reply [flat|nested] 45+ messages in thread
* RE: [PATCH v5] build: update DPDK to use C11 standard 2023-08-10 17:02 ` Stephen Hemminger @ 2023-08-10 18:17 ` Morten Brørup 2023-08-10 22:34 ` Tyler Retzlaff 0 siblings, 1 reply; 45+ messages in thread From: Morten Brørup @ 2023-08-10 18:17 UTC (permalink / raw) To: Stephen Hemminger, Thomas Monjalon Cc: Bruce Richardson, David Marchand, dev, Tyler Retzlaff, Ali Alnubani, galco > 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. Regardless, I think that DPDK 23.11 support for RHEL 7 should be limited to "might work on RHEL 7", rather than guaranteed support for RHEL 7 (which would require DPDK CI to resume testing on RHEL 7). IIRC, there was also the argument that DPDK 23.11 LTS support ends after June 2024. Here's another argument for abandoning RHEL 7: RHEL 7 uses Linux Kernel 3.10. Although DPDK requires Linux Kernel >= 4.14, we promise backwards compatibility for RHEL/CentOS 7. Do we really still want to do that? (Note: RHEL 8 uses Linux Kernel 4.18.) While we're discussing the Linux Kernel version required... Is it documented anywhere why a specific Linux Kernel version is required by DPDK? Or more specifically: Is it documented anywhere which DPDK features require which specific Linux Kernel versions? ^ permalink raw reply [flat|nested] 45+ messages in thread
* Re: [PATCH v5] build: update DPDK to use C11 standard 2023-08-10 18:17 ` Morten Brørup @ 2023-08-10 22:34 ` Tyler Retzlaff 2023-08-11 8:52 ` Bruce Richardson 0 siblings, 1 reply; 45+ messages in thread From: Tyler Retzlaff @ 2023-08-10 22:34 UTC (permalink / raw) To: Morten Brørup Cc: Stephen Hemminger, Thomas Monjalon, Bruce Richardson, David Marchand, dev, Ali Alnubani, galco 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 > > Regardless, I think that DPDK 23.11 support for RHEL 7 should be limited to "might work on RHEL 7", rather than guaranteed support for RHEL 7 (which would require DPDK CI to resume testing on RHEL 7). > > IIRC, there was also the argument that DPDK 23.11 LTS support ends after June 2024. > > Here's another argument for abandoning RHEL 7: RHEL 7 uses Linux Kernel 3.10. Although DPDK requires Linux Kernel >= 4.14, we promise backwards compatibility for RHEL/CentOS 7. Do we really still want to do that? (Note: RHEL 8 uses Linux Kernel 4.18.) > > While we're discussing the Linux Kernel version required... Is it documented anywhere why a specific Linux Kernel version is required by DPDK? Or more specifically: Is it documented anywhere which DPDK features require which specific Linux Kernel versions? > ^ permalink raw reply [flat|nested] 45+ messages in thread
* Re: [PATCH v5] build: update DPDK to use C11 standard 2023-08-10 22:34 ` Tyler Retzlaff @ 2023-08-11 8:52 ` Bruce Richardson 2023-08-11 10:12 ` Morten Brørup 0 siblings, 1 reply; 45+ messages in thread From: Bruce Richardson @ 2023-08-11 8:52 UTC (permalink / raw) To: Tyler Retzlaff Cc: Morten Brørup, Stephen Hemminger, Thomas Monjalon, David Marchand, dev, Ali Alnubani, galco 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 ^ permalink raw reply [flat|nested] 45+ messages in thread
* RE: [PATCH v5] build: update DPDK to use C11 standard 2023-08-11 8:52 ` Bruce Richardson @ 2023-08-11 10:12 ` Morten Brørup 0 siblings, 0 replies; 45+ messages in thread From: Morten Brørup @ 2023-08-11 10:12 UTC (permalink / raw) To: Bruce Richardson, Tyler Retzlaff Cc: Stephen Hemminger, Thomas Monjalon, David Marchand, dev, Ali Alnubani, galco > From: Bruce Richardson [mailto:bruce.richardson@intel.com] > Sent: Friday, 11 August 2023 10.53 > > 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!] If I was using RHEL 7, and DPDK degraded the RHEL 7 support level (e.g. not testing it in CI anymore) with a release, I would certainly want this to be highlighted in the release notes! "Not known to be broken, might work" and "passed validation" are two very different things in a production environment. :-) Anyway, Bruce's point is valid; it's not binary, so let's not scare RHEL 7 users more than we have to. > > /Bruce ^ permalink raw reply [flat|nested] 45+ messages in thread
end of thread, other threads:[~2023-08-11 10:13 UTC | newest] Thread overview: 45+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2023-07-31 10:38 [PATCH] build: update DPDK to use C11 standard 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 2023-08-11 10:12 ` Morten Brørup
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).