[ovs-dev] [PATCH] datapath: Add a new action dec_ttl

Eelco Chaudron echaudro at redhat.com
Thu Nov 12 11:23:48 UTC 2020



On 11 Nov 2020, at 16:58, 0-day Robot wrote:

> Bleep bloop.  Greetings Eelco Chaudron, I am a robot and I have tried 
> out your patch.
> Thanks for your contribution.
>
> I encountered some error that I wasn't expecting.  See the details 
> below.
>
>
> build:
> /bin/sh ./libtool  --tag=CC   --mode=compile gcc -std=gnu99 
> -DHAVE_CONFIG_H -I.    -I ./include -I ./include -I ./lib -I ./lib    
> -Wstrict-prototypes -Wall -Wextra -Wno-sign-compare -Wpointer-arith 
> -Wformat -Wformat-security -Wswitch-enum -Wunused-parameter 
> -Wbad-function-cast -Wcast-align -Wstrict-prototypes 
> -Wold-style-definition -Wmissing-prototypes 
> -Wmissing-field-initializers -fno-strict-aliasing -Wshadow -Werror 
> -Werror   -g -O2 -DHAVE_LD_AVX512_GOOD -MT 
> ofproto/ofproto_libofproto_la-ofproto.lo -MD -MP -MF 
> ofproto/.deps/ofproto_libofproto_la-ofproto.Tpo -c -o 
> ofproto/ofproto_libofproto_la-ofproto.lo `test -f 'ofproto/ofproto.c' 
> || echo './'`ofproto/ofproto.c
> libtool: compile:  gcc -std=gnu99 -DHAVE_CONFIG_H -I. -I ./include -I 
> ./include -I ./lib -I ./lib -Wstrict-prototypes -Wall -Wextra 
> -Wno-sign-compare -Wpointer-arith -Wformat -Wformat-security 
> -Wswitch-enum -Wunused-parameter -Wbad-function-cast -Wcast-align 
> -Wstrict-prototypes -Wold-style-definition -Wmissing-prototypes 
> -Wmissing-field-initializers -fno-strict-aliasing -Wshadow -Werror 
> -Werror -g -O2 -DHAVE_LD_AVX512_GOOD -MT 
> ofproto/ofproto_libofproto_la-ofproto.lo -MD -MP -MF 
> ofproto/.deps/ofproto_libofproto_la-ofproto.Tpo -c ofproto/ofproto.c 
> -o ofproto/ofproto_libofproto_la-ofproto.o
> mv -f ofproto/.deps/ofproto_libofproto_la-ofproto.Tpo 
> ofproto/.deps/ofproto_libofproto_la-ofproto.Plo
> /bin/sh ./libtool  --tag=CC   --mode=compile gcc -std=gnu99 
> -DHAVE_CONFIG_H -I.    -I ./include -I ./include -I ./lib -I ./lib    
> -Wstrict-prototypes -Wall -Wextra -Wno-sign-compare -Wpointer-arith 
> -Wformat -Wformat-security -Wswitch-enum -Wunused-parameter 
> -Wbad-function-cast -Wcast-align -Wstrict-prototypes 
> -Wold-style-definition -Wmissing-prototypes 
> -Wmissing-field-initializers -fno-strict-aliasing -Wshadow -Werror 
> -Werror   -g -O2 -DHAVE_LD_AVX512_GOOD -MT 
> ofproto/ofproto_libofproto_la-ofproto-dpif.lo -MD -MP -MF 
> ofproto/.deps/ofproto_libofproto_la-ofproto-dpif.Tpo -c -o 
> ofproto/ofproto_libofproto_la-ofproto-dpif.lo `test -f 
> 'ofproto/ofproto-dpif.c' || echo './'`ofproto/ofproto-dpif.c
> libtool: compile:  gcc -std=gnu99 -DHAVE_CONFIG_H -I. -I ./include -I 
> ./include -I ./lib -I ./lib -Wstrict-prototypes -Wall -Wextra 
> -Wno-sign-compare -Wpointer-arith -Wformat -Wformat-security 
> -Wswitch-enum -Wunused-parameter -Wbad-function-cast -Wcast-align 
> -Wstrict-prototypes -Wold-style-definition -Wmissing-prototypes 
> -Wmissing-field-initializers -fno-strict-aliasing -Wshadow -Werror 
> -Werror -g -O2 -DHAVE_LD_AVX512_GOOD -MT 
> ofproto/ofproto_libofproto_la-ofproto-dpif.lo -MD -MP -MF 
> ofproto/.deps/ofproto_libofproto_la-ofproto-dpif.Tpo -c 
> ofproto/ofproto-dpif.c -o ofproto/ofproto_libofproto_la-ofproto-dpif.o
> ofproto/ofproto-dpif.c: In function 'check_dec_ttl_action':
> ofproto/ofproto-dpif.c:1196:12: error: missing braces around 
> initializer [-Werror=missing-braces]
>      struct flow flow = { 0 };
>             ^

Could this be a clang compiler issues? Searching a bit online looks like 
it. I do not see this with CLANG10, however I do see it in TravicCi 
which is using Clang7.0.

Any idea what to do to resolve it? I could do something like (also for 
the OS X build):

diff --git a/.travis/linux-build.sh b/.travis/linux-build.sh
index e0a065291..da7a30767 100755
--- a/.travis/linux-build.sh
+++ b/.travis/linux-build.sh
@@ -181,6 +181,7 @@ fi

  if [ "$CC" = "clang" ]; then
      CFLAGS_FOR_OVS="${CFLAGS_FOR_OVS} 
-Wno-error=unused-command-line-argument"
+    CFLAGS_FOR_OVS="${CFLAGS_FOR_OVS} -Wno-missing-braces 
-Wmissing-field-initializers"
  elif [ "$M32" ]; then
      # Not using sparse for 32bit builds on 64bit machine.
      # Adding m32 flag directly to CC to avoid any posiible issues with 
API/ABI

Or do a memset() instead, but seems odd to work around a compiler issue.

Thoughts?

> ofproto/ofproto-dpif.c:1196:12: error: (near initialization for 
> 'flow.tunnel') [-Werror=missing-braces]
> ofproto/ofproto-dpif.c:1196:12: error: missing initializer for field 
> 'metadata' of 'struct flow' [-Werror=missing-field-initializers]
> In file included from ./include/openvswitch/match.h:20:0,
>                  from ./lib/classifier.h:302,
>                  from ofproto/ofproto-provider.h:37,
>                  from ofproto/bond.h:22,
>                  from ofproto/ofproto-dpif.c:20:
> ./include/openvswitch/flow.h:103:14: note: 'metadata' declared here
>      ovs_be64 metadata;          /* OpenFlow Metadata. */
>               ^
> cc1: all warnings being treated as errors
> make[2]: *** [ofproto/ofproto_libofproto_la-ofproto-dpif.lo] Error 1
> make[2]: Leaving directory 
> `/var/lib/jenkins/jobs/0day_robot_upstream_build_from_pw/workspace'
> make[1]: *** [all-recursive] Error 1
> make[1]: Leaving directory 
> `/var/lib/jenkins/jobs/0day_robot_upstream_build_from_pw/workspace'
> make: *** [all] Error 2
>
>
> Please check this out.  If you feel there has been an error, please 
> email aconole at redhat.com
>
> Thanks,
> 0-day Robot



More information about the dev mailing list