On Fri, Jul 26, 2019 at 5:51 PM Numan Siddique <nusid...@redhat.com> wrote:
> > > On Fri, Jul 26, 2019 at 5:19 PM Damijan Skvarc <damjan.skv...@gmail.com> > wrote: > >> Dumitru, >> your issue was fixed in >> https://github.com/openvswitch/ovs/commit/6f6d19db05ca743d6f294618d2c36b6d0b15e2e2 >> as removed warning. However fix is not merged yet on >> https://github.com/ovn-org/ovn.git. Unfortunatelly even merging this fix >> to ovn-org/ovn.git will not help, since (saying from memory) by this fix >> about 1700 warning were removed while there still remained about 70 >> warnings of the same kind at different locations. I would suggest for a >> while not to consider warnings as errors. >> > > Hi Damijan, > > With the OVS/OVN split branch here - > https://github.com/ovn-org/ovn/commits/ovs_ovn_split, your fix is > available - > https://github.com/ovn-org/ovn/blob/ovs_ovn_split/ovs/include/openvswitch/nsh.h#L372 > > After applying Ilya's patch and manually compiling sparse after reverting > the commit, I am still seeing the below errors > > Do you think we can ignore these errors for now ? > > Found the issue. The acinclude.m4 file in ovn-org/ovn repo is a bit out of date. The OVS_ENABLE_SPARSE and other SPARSE related macros needs to be updated. After fixing it, compilation was successful. Thanks Numan > Thank > Numan > > ******* > -Wold-style-definition -Wmissing-prototypes -Wmissing-field-initializers > -fno-strict-aliasing -Wswitch-bool -Wlogical-not-parentheses > -Wsizeof-array-argument -Wbool-compare -Wshift-negative-value > -Wduplicated-cond -Wshadow -Wmultistatement-macros -Wcast-align=strict > -Werror -Werror -g -O2 -MT lib/acl-log.lo -MD -MP -MF $depbase.Tpo -c -o > lib/acl-log.lo ../lib/acl-log.c &&\ > mv -f $depbase.Tpo $depbase.Plo > ../ovs/lib/util.h:449:12: error: incorrect type in return expression > (different base types) > ../ovs/lib/util.h:449:12: expected restricted ovs_be32 > ../ovs/lib/util.h:449:12: got unsigned int > ../utilities/ovn-nbctl.c:3426:34: error: incorrect type in argument 1 > (different base types) > ../utilities/ovn-nbctl.c:3426:34: expected unsigned int [usertype] __bsx > ../utilities/ovn-nbctl.c:3426:34: got restricted ovs_be32 [usertype] > network > ../utilities/ovn-nbctl.c:3426:34: error: incorrect type in argument 1 > (different base types) > ../utilities/ovn-nbctl.c:3426:34: expected unsigned int [usertype] __bsx > ../utilities/ovn-nbctl.c:3426:34: got restricted ovs_be32 [usertype] > network > ../utilities/ovn-nbctl.c:3426:34: error: incorrect type in argument 1 > (different base types) > ../utilities/ovn-nbctl.c:3426:34: expected unsigned int [usertype] __bsx > ../utilities/ovn-nbctl.c:3426:34: got restricted ovs_be32 [usertype] > network > ../utilities/ovn-nbctl.c:3426:34: error: incorrect type in argument 1 > (different base types) > ../utilities/ovn-nbctl.c:3426:34: expected unsigned int [usertype] __bsx > ../utilities/ovn-nbctl.c:3426:34: got restricted ovs_be32 [usertype] > network > ../utilities/ovn-nbctl.c:3428:39: error: incorrect type in argument 1 > (different base types) > ../utilities/ovn-nbctl.c:3428:39: expected unsigned int [usertype] __bsx > ../utilities/ovn-nbctl.c:3428:39: got restricted ovs_be32 [usertype] > network > ../utilities/ovn-nbctl.c:3428:39: error: incorrect type in argument 1 > (different base types) > ../utilities/ovn-nbctl.c:3428:39: expected unsigned int [usertype] __bsx > ../utilities/ovn-nbctl.c:3428:39: got restricted ovs_be32 [usertype] > network > ../utilities/ovn-nbctl.c:3428:39: error: incorrect type in argument 1 > (different base types) > ../utilities/ovn-nbctl.c:3428:39: expected unsigned int [usertype] __bsx > ../utilities/ovn-nbctl.c:3428:39: got restricted ovs_be32 [usertype] > network > ../utilities/ovn-nbctl.c:3428:39: error: incorrect type in argument 1 > (different base types) > ../utilities/ovn-nbctl.c:3428:39: expected unsigned int [usertype] __bsx > ... > ... > make[2]: *** Waiting for unfinished jobs.... > libtool: compile: env REAL_CC=gcc "CHECK=sparse -Wsparse-error -I > ../include/sparse -m64 -I /usr/local/include " cgcc -target=x86_64 > -DHAVE_CONFIG_H -I. -I.. -I ../ovs/include -I ./ovs/include -I ../ovs/lib > -I ./ovs/lib -I ../ovs -I ./ovs -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 -Wswitch-bool > -Wlogical-not-parentheses -Wsizeof-array-argument -Wbool-compare > -Wshift-negative-value -Wduplicated-cond -Wshadow -Wmultistatement-macros > -Wcast-align=strict -Werror -Werror -g -O2 -MT lib/acl-log.lo -MD -MP -MF > lib/.deps/acl-log.Tpo -c ../lib/acl-log.c -o lib/acl-log.o > libtool: compile: env REAL_CC=gcc "CHECK=sparse -Wsparse-error -I > ../include/sparse -m64 -I /usr/local/include " cgcc -target=x86_64 > -DHAVE_CONFIG_H -I. -I.. -I ../ovs/include -I ./ovs/include -I ../ovs/lib > -I ./ovs/lib -I ../ovs -I ./ovs -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 -Wswitch-bool > -Wlogical-not-parentheses -Wsizeof-array-argument -Wbool-compare > -Wshift-negative-value -Wduplicated-cond -Wshadow -Wmultistatement-macros > -Wcast-align=strict -Werror -Werror -g -O2 -MT lib/actions.lo -MD -MP -MF > lib/.deps/actions.Tpo -c ../lib/actions.c -o lib/actions.o > ../lib/actions.c:723:32: error: incorrect type in initializer (different > base types) > ../lib/actions.c:723:32: expected restricted ovs_be32 const [usertype] > value > ../lib/actions.c:723:32: got unsigned int > ../lib/actions.c:724:31: error: incorrect type in initializer (different > base types) > ../lib/actions.c:724:31: expected restricted ovs_be32 const [usertype] > mask > ../lib/actions.c:724:31: got unsigned int > ../lib/actions.c:976:42: error: incorrect type in argument 1 (different > base types) > ../lib/actions.c:976:42: expected unsigned int [usertype] __bsx > ../lib/actions.c:976:42: got restricted ovs_be32 const [usertype] ipv4 > ../lib/actions.c:976:42: error: incorrect type in argument 1 (different > base types) > ../lib/actions.c:976:42: expected unsigned int [usertype] __bsx > ../lib/actions.c:976:42: got restricted ovs_be32 const [usertype] ipv4 > ../lib/actions.c:976:42: error: incorrect type in argument 1 (different > base types) > ../lib/actions.c:976:42: expected unsigned int [usertype] __bsx > ../lib/actions.c:976:42: got restricted ovs_be32 const [usertype] ipv4 > ../lib/actions.c:976:42: error: incorrect type in argument 1 (different > base types) > ../lib/actions.c:976:42: expected unsigned int [usertype] __bsx > ../lib/actions.c:976:42: got restricted ovs_be32 const [usertype] ipv4 > ../lib/actions.c:1970:20: error: incorrect type in initializer (different > base types) > ../lib/actions.c:1970:20: expected restricted ovs_be32 [usertype] ofs > ../lib/actions.c:1970:20: got unsigned int > ********* > > > >> >> br,Damijan >> >> On Fri, Jul 26, 2019 at 10:30 AM Dumitru Ceara <dce...@redhat.com> wrote: >> >>> On Fri, Jul 26, 2019 at 8:21 AM Numan Siddique <nusid...@redhat.com> >>> wrote: >>> > >>> > Hello All, >>> > >>> > The split work is almost done and we have pushed it to the ovn repo >>> branch >>> > for now - https://github.com/ovn-org/ovn/commits/ovs_ovn_split >>> > If some one is interested, please try it out and let us know any >>> comments >>> > or issues. >>> >>> Hi Numan, >>> >>> It looks like the ovs_ovn_split branch doesn't build: >>> >>> # git clone https://github.com/ovn-org/ovn.git ovn >>> # cd ovn >>> # ./boot.sh >>> # ./configure --enable-Werror --enable-sparse >>> # make >>> make all-recursive >>> make[1]: Entering directory `/root/ovn' >>> Making all in ovs >>> make[2]: Entering directory `/root/ovn/ovs' >>> make all-recursive >>> make[3]: Entering directory `/root/ovn/ovs' >>> Making all in datapath >>> make[4]: Entering directory `/root/ovn/ovs/datapath' >>> make[5]: Entering directory `/root/ovn/ovs/datapath' >>> make[5]: Leaving directory `/root/ovn/ovs/datapath' >>> make[4]: Leaving directory `/root/ovn/ovs/datapath' >>> make[4]: Entering directory `/root/ovn/ovs' >>> make[4]: Leaving directory `/root/ovn/ovs' >>> make[3]: Leaving directory `/root/ovn/ovs' >>> make[2]: Leaving directory `/root/ovn/ovs' >>> make[2]: Entering directory `/root/ovn' >>> depbase=`echo lib/acl-log.lo | sed 's|[^/]*$|.deps/&|;s|\.lo$||'`;\ >>> /bin/sh ./libtool --tag=CC --mode=compile env REAL_CC="gcc >>> -std=gnu99" CHECK="sparse -Wsparse-error -I ./include/sparse -m64 -I >>> /usr/local/include " cgcc -target=x86_64 -DHAVE_CONFIG_H -I. -I >>> ./ovs/include -I ./ovs/include -I ./ovs/lib -I ./ovs/lib -I ./ovs -I >>> ./ovs -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 -MT lib/acl-log.lo -MD -MP -MF $depbase.Tpo -c -o >>> lib/acl-log.lo lib/acl-log.c &&\ >>> mv -f $depbase.Tpo $depbase.Plo >>> libtool: compile: env "REAL_CC=gcc -std=gnu99" "CHECK=sparse >>> -Wsparse-error -I ./include/sparse -m64 -I /usr/local/include " cgcc >>> -target=x86_64 -DHAVE_CONFIG_H -I. -I ./ovs/include -I ./ovs/include >>> -I ./ovs/lib -I ./ovs/lib -I ./ovs -I ./ovs -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 -MT lib/acl-log.lo -MD -MP -MF lib/.deps/acl-log.Tpo -c >>> lib/acl-log.c -o lib/acl-log.o >>> ./ovs/include/openvswitch/nsh.h:372:11: error: symbol '__v' shadows an >>> earlier one >>> ./ovs/include/openvswitch/nsh.h:372:11: originally declared here >>> ./ovs/include/openvswitch/nsh.h:372:11: error: symbol '__x' shadows an >>> earlier one >>> ./ovs/include/openvswitch/nsh.h:372:11: originally declared here >>> ./ovs/include/openvswitch/nsh.h:383:11: error: symbol '__v' shadows an >>> earlier one >>> ./ovs/include/openvswitch/nsh.h:383:11: originally declared here >>> ./ovs/include/openvswitch/nsh.h:383:11: error: symbol '__x' shadows an >>> earlier one >>> ./ovs/include/openvswitch/nsh.h:383:11: originally declared here >>> make[2]: *** [lib/acl-log.lo] Error 1 >>> >>> Building ovs master works fine for me: >>> >>> # git clone https://github.com/openvswitch/ovs.git ovs >>> # cd ovs >>> # ./boot.sh >>> # ./configure --enable-Werror --enable-sparse >>> # make >>> <snip> >>> mv tests/system-afxdp-testsuite.tmp tests/system-afxdp-testsuite >>> mv tests/system-kmod-testsuite.tmp tests/system-kmod-testsuite >>> mv tests/system-userspace-testsuite.tmp tests/system-userspace-testsuite >>> touch -c manpage-check >>> mv tests/testsuite.tmp tests/testsuite >>> make[2]: Leaving directory `/root/ovs' >>> make[1]: Leaving directory `/root/ovs' >>> >>> Regards, >>> Dumitru >>> >>> > >>> > We are planning to push the changes to the master branch hopefully >>> Friday >>> > if everything goes fine. >>> > >>> > Thanks >>> > Numan >>> > >>> > >>> > On Fri, Jul 26, 2019 at 12:05 AM Mark Michelson <mmich...@redhat.com> >>> wrote: >>> > >>> > > On 7/25/19 12:37 PM, Ilya Maximets wrote: >>> > > > Hi. >>> > > > >>> > > > I have a question regarding the split. >>> > > > Sorry if it's obvious from the RFC splitting code which I didn't >>> look at. >>> > > > >>> > > > The question is: >>> > > > How the patches for the common data structures (lists, hash maps) >>> will be >>> > > > applied to OVN? Will we need to post same patch for both >>> repositories in >>> > > the >>> > > > future if it changes/fixes common libraries? Or all this code will >>> be >>> > > hosted >>> > > > only in OVS repo and will be included like a submodule or >>> something like >>> > > that? >>> > > > >>> > > > Best regards, Ilya Maximets. >>> > > >>> > > Hi Ilya, >>> > > >>> > > OVN will be a separate repo from OVS. Initially, OVS will be a >>> subtree >>> > > of OVN, but soon, we will want to be able to build OVN while having a >>> > > completely separate OVS on the system. When all is said and done, it >>> > > should be possible to build OVN as long as you have, say, an >>> ovs-devel >>> > > package installed on your system. >>> > > >>> > > I think the answer to your question is that as an OVS developer, if >>> you >>> > > make a change to a core component, you only need to post the change >>> to >>> > > the OVS repo. >>> > > >>> > > From an OVN developer's perspective, if an OVN feature/bugfix >>> requires >>> > > a parallel change to be made to a core OVS library, then the OVN >>> > > developer will need to post the library change to OVS as well as the >>> > > usage of that change to OVN. As long as OVS is a subtree of OVN, it's >>> > > just a matter of ensuring the subtree is kept up to date. However, >>> once >>> > > OVS is built separately, then configure-time checks of OVS features >>> or >>> > > minimum version checks will need to be added to OVN to ensure that >>> the >>> > > code can build properly. >>> > > >>> > > This approach should place most of the burden of OVN compatibility >>> with >>> > > OVS on OVN developers rather than OVS developers. >>> > > > >>> > > >> Numan and I have discussed this, and we're planning to perform >>> the split >>> > > >> tomorrow July 25. Numan will be applying the commits he >>> referenced below >>> > > >> to the ovn-org branch to get it up to date. I will be submitting a >>> > > >> review for OVS to remove all of the OVN code, documentation, etc. >>> from >>> > > it. >>> > > >> >>> > > >> If there are any reasons why we should hold off on this, please >>> mention >>> > > >> them as soon as possible. >>> > > >> >>> > > >> Thanks >>> > > >> >>> > > >> On 7/22/19 2:35 PM, Numan Siddique wrote: >>> > > >>> Hi Ben, Mark and All, >>> > > >>> >>> > > >>> Now that branch 2.12 is created, shall we proceed with the >>> OVS/OVN >>> > > split ? >>> > > >>> >>> > > >>> In order to do the split we need to do the below tasks >>> > > >>> >>> > > >>> In ovn-org/ovn repo >>> > > >>> Step 1. Sync the ovs subtree to the latest (from the OVS repo). >>> > > >>> 2. Delete all the ovn related code from the root dir. Right now >>> there >>> > > is >>> > > >>> no history for the OVN files in the ovn-org/ovn repo >>> > > >>> 3. Copy OVN files from openvswitch/ovs repo using >>> git-filter-branch. >>> > > >>> This will preserver the history. >>> > > >>> 4. Sync the test files from ovs subtree so that tests pass. >>> > > >>> >>> > > >>> During this period its better to freeze merging OVN related >>> patches in >>> > > >>> the OVS repo. >>> > > >>> And finally delete the OVN related code from the OVS repo. >>> > > >>> >>> > > >>> I have done a PoC here - >>> > > >>> >>> https://github.com/numansiddique/ovn/commits/ovn_sync_from_ovs_v3/p4 >>> > > >>> All the relates commits can be found here. >>> > > >>> >>> > > >>> >>> > > >>> Does these steps seem fine ? Any concerns ? >>> > > >>> If this seems fine, can we choose a date to start this process ? >>> > > >>> >>> > > >>> Thanks >>> > > >>> Numan >>> > > >>> >>> > > > >>> > > >>> > > >>> > _______________________________________________ >>> > dev mailing list >>> > d...@openvswitch.org >>> > https://mail.openvswitch.org/mailman/listinfo/ovs-dev >>> _______________________________________________ >>> dev mailing list >>> d...@openvswitch.org >>> https://mail.openvswitch.org/mailman/listinfo/ovs-dev >>> >> _______________________________________________ dev mailing list d...@openvswitch.org https://mail.openvswitch.org/mailman/listinfo/ovs-dev