buildtools: allow pedantic empty pmdinfo

Message ID 20200205170723.3347232-1-thomas@monjalon.net (mailing list archive)
State Accepted, archived
Headers
Series buildtools: allow pedantic empty pmdinfo |

Checks

Context Check Description
ci/checkpatch success coding style OK
ci/iol-nxp-Performance success Performance Testing PASS
ci/iol-testing success Testing PASS
ci/iol-mellanox-Performance success Performance Testing PASS
ci/travis-robot success Travis build: passed
ci/Intel-compilation fail apply issues

Commit Message

Thomas Monjalon Feb. 5, 2020, 5:07 p.m. UTC
  If a driver has no info generated by pmdinfogen,
and if this driver is compiled as pedantic,
then an failure would occur:
	drivers/rte_common_mlx5.pmd.c:1: error:
	ISO C forbids an empty translation unit [-Werror=pedantic]
Such error is triggered with the new mlx5 common directory.

In order to allow an "empty driver info" compiled in pedantic mode,
the script generating .pmd.c file is modified to add a static string
unconditionnaly.
The minimal generated code is:
	static __attribute__((unused)) const char *generator =
		"/path/to/dpdk/buildtools/gen-pmdinfo-cfile.sh";

Signed-off-by: Thomas Monjalon <thomas@monjalon.net>
---
 buildtools/gen-pmdinfo-cfile.sh | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)
  

Comments

Bruce Richardson Feb. 5, 2020, 5:14 p.m. UTC | #1
On Wed, Feb 05, 2020 at 06:07:23PM +0100, Thomas Monjalon wrote:
> If a driver has no info generated by pmdinfogen,
> and if this driver is compiled as pedantic,
> then an failure would occur:
> 	drivers/rte_common_mlx5.pmd.c:1: error:
> 	ISO C forbids an empty translation unit [-Werror=pedantic]
> Such error is triggered with the new mlx5 common directory.
> 
> In order to allow an "empty driver info" compiled in pedantic mode,
> the script generating .pmd.c file is modified to add a static string
> unconditionnaly.
> The minimal generated code is:
> 	static __attribute__((unused)) const char *generator =
> 		"/path/to/dpdk/buildtools/gen-pmdinfo-cfile.sh";
> 
> Signed-off-by: Thomas Monjalon <thomas@monjalon.net>

LGTM

Acked-by: Bruce Richardson <bruce.richardson@intel.com>
  
Thomas Monjalon Feb. 5, 2020, 5:29 p.m. UTC | #2
05/02/2020 18:14, Bruce Richardson:
> On Wed, Feb 05, 2020 at 06:07:23PM +0100, Thomas Monjalon wrote:
> > If a driver has no info generated by pmdinfogen,
> > and if this driver is compiled as pedantic,
> > then an failure would occur:
> > 	drivers/rte_common_mlx5.pmd.c:1: error:
> > 	ISO C forbids an empty translation unit [-Werror=pedantic]
> > Such error is triggered with the new mlx5 common directory.
> > 
> > In order to allow an "empty driver info" compiled in pedantic mode,
> > the script generating .pmd.c file is modified to add a static string
> > unconditionnaly.
> > The minimal generated code is:
> > 	static __attribute__((unused)) const char *generator =
> > 		"/path/to/dpdk/buildtools/gen-pmdinfo-cfile.sh";
> > 
> > Signed-off-by: Thomas Monjalon <thomas@monjalon.net>
> 
> LGTM
> 
> Acked-by: Bruce Richardson <bruce.richardson@intel.com>

Applied, thanks, it will allow pulling next-net
without breaking debug compilation for the new ABI tooling.
  

Patch

diff --git a/buildtools/gen-pmdinfo-cfile.sh b/buildtools/gen-pmdinfo-cfile.sh
index 0b6dc2ce4f..43059cf364 100755
--- a/buildtools/gen-pmdinfo-cfile.sh
+++ b/buildtools/gen-pmdinfo-cfile.sh
@@ -6,7 +6,8 @@  arfile=$1
 output=$2
 pmdinfogen=$3
 
-echo > $output
+# The generated file must not be empty if compiled in pedantic mode
+echo 'static __attribute__((unused)) const char *generator = "'$0'";' > $output
 for ofile in `ar t $arfile` ; do
 	ar p $arfile $ofile | $pmdinfogen - - >> $output 2> /dev/null
 done