On Thu, Jun 4, 2026 at 4:13 PM Mark Michelson <[email protected]> wrote: > > Thanks for the this Ilya. I applied this patch and did a cursory > search. I couldn't find any remaining "shards" (lol) of Windows > support in the code.
Just to clarify, I mean I applied the patch locally to check it. I did not apply this patch yet to the github origin remote. > > Acked-by: Mark Michelson <[email protected]> > > On Thu, Jun 4, 2026 at 11:56 AM Ilya Maximets <[email protected]> wrote: > > > > Windows build was broken since the split from OVS. OVS also recently > > fully dropped support for building and running on Windows. Let's > > remove the bits of the Windows build system to avoid any confusion. > > > > Some notes: > > * debian/copyright.in is very outdated. Only removing bits directly > > related to the Windows build. > > * Comment in ovn-controller-vtep.at is removed without touching any > > code because it's just an outdated comment that should've been > > removed while moving to Python 3. > > * m4/absolute-header.m4 still has one Windows reference, but it is > > coming from the original sources and it should remain. > > * HOST_NAME_MAX is needed for BSD/OSX, not only for Windows. > > > > Signed-off-by: Ilya Maximets <[email protected]> > > --- > > Documentation/automake.mk | 1 - > > Documentation/index.rst | 3 +- > > Documentation/intro/install/index.rst | 1 - > > Documentation/intro/install/windows.rst | 31 --- > > Makefile.am | 50 +---- > > NEWS | 2 + > > README.rst | 2 - > > build-aux/automake.mk | 1 - > > build-aux/cccl | 221 ---------------------- > > configure.ac | 3 - > > controller-vtep/ovn-controller-vtep.8.xml | 7 +- > > controller/chassis.c | 1 - > > debian/copyright.in | 18 -- > > lib/ovn-util.c | 19 -- > > m4/ax_check_openssl.m4 | 9 +- > > m4/ovn.m4 | 133 ------------- > > northd/lflow-mgr.c | 12 -- > > tests/atlocal.in | 15 -- > > tests/automake.mk | 13 +- > > tests/ovn-controller-vtep.at | 1 - > > tests/ovs-macros.at | 37 ---- > > tests/test-ovn.c | 12 +- > > tests/testsuite.patch | 76 -------- > > utilities/checkpatch.py | 5 +- > > utilities/ovn-appctl.8.xml | 7 - > > utilities/ovn-appctl.c | 7 - > > 26 files changed, 15 insertions(+), 672 deletions(-) > > delete mode 100644 Documentation/intro/install/windows.rst > > delete mode 100644 build-aux/cccl > > delete mode 100644 tests/testsuite.patch > > > > diff --git a/Documentation/automake.mk b/Documentation/automake.mk > > index aa286ebd9..aa6a81224 100644 > > --- a/Documentation/automake.mk > > +++ b/Documentation/automake.mk > > @@ -11,7 +11,6 @@ DOC_SOURCE = \ > > Documentation/intro/install/fedora.rst \ > > Documentation/intro/install/general.rst \ > > Documentation/intro/install/ovn-upgrades.rst \ > > - Documentation/intro/install/windows.rst \ > > Documentation/tutorials/index.rst \ > > Documentation/tutorials/ovn-openstack.rst \ > > Documentation/tutorials/ovn-sandbox.rst \ > > diff --git a/Documentation/index.rst b/Documentation/index.rst > > index 36fabb2cc..0b7cbc8f2 100644 > > --- a/Documentation/index.rst > > +++ b/Documentation/index.rst > > @@ -49,8 +49,7 @@ First Steps > > > > Getting started with Open Virtual Network (OVN) for Open vSwitch? Start > > here. > > > > -- **Install:** :doc:`intro/install/general` | > > - :doc:`intro/install/windows` > > +- **Install:** :doc:`intro/install/general` > > > > - **Tutorials:** :doc:`tutorials/ovn-sandbox` | > > :doc:`tutorials/ovn-openstack` | > > diff --git a/Documentation/intro/install/index.rst > > b/Documentation/intro/install/index.rst > > index 2093cbbfa..1db6254b9 100644 > > --- a/Documentation/intro/install/index.rst > > +++ b/Documentation/intro/install/index.rst > > @@ -40,7 +40,6 @@ Installation from Source > > :maxdepth: 2 > > > > general > > - windows > > > > Installation from Packages > > -------------------------- > > diff --git a/Documentation/intro/install/windows.rst > > b/Documentation/intro/install/windows.rst > > deleted file mode 100644 > > index e5e08e69d..000000000 > > --- a/Documentation/intro/install/windows.rst > > +++ /dev/null > > @@ -1,31 +0,0 @@ > > -.. > > - Licensed under the Apache License, Version 2.0 (the "License"); you > > may > > - not use this file except in compliance with the License. You may > > obtain > > - a copy of the License at > > - > > - http://www.apache.org/licenses/LICENSE-2.0 > > - > > - Unless required by applicable law or agreed to in writing, software > > - distributed under the License is distributed on an "AS IS" BASIS, > > WITHOUT > > - WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See > > the > > - License for the specific language governing permissions and > > limitations > > - under the License. > > - > > - Convention for heading levels in OVN documentation: > > - > > - ======= Heading 0 (reserved for the title in a document) > > - ------- Heading 1 > > - ~~~~~~~ Heading 2 > > - +++++++ Heading 3 > > - ''''''' Heading 4 > > - > > - Avoid deeper levels because they do not render well. > > - > > -======================= > > -OVN on Windows > > -======================= > > - > > -OVN on Windows is not currently tested or built. While the build > > -system contains some Windows-related scaffolding inherited from > > -Open vSwitch, there are no maintained build instructions or CI > > -coverage for this platform. > > diff --git a/Makefile.am b/Makefile.am > > index 4d62da3c2..212aeb314 100644 > > --- a/Makefile.am > > +++ b/Makefile.am > > @@ -21,14 +21,6 @@ AM_LDFLAGS += $(OVS_LDFLAGS) > > > > AM_CPPFLAGS += -I $(top_srcdir)/include > > > > -if WIN32 > > -AM_CPPFLAGS += $(PTHREAD_INCLUDES) > > -AM_CPPFLAGS += $(MSVC_CFLAGS) > > -AM_LDFLAGS += $(PTHREAD_LDFLAGS) > > -AM_LDFLAGS += $(MSVC64_LDFLAGS) > > -PLATFORM = $(MSVC_PLATFORM) > > -endif > > - > > AM_CPPFLAGS += -I $(top_srcdir)/include > > AM_CPPFLAGS += -I $(top_srcdir)/ovn > > AM_CPPFLAGS += -I $(top_builddir)/include > > @@ -57,18 +49,13 @@ endif > > > > AM_CTAGSFLAGS = $(OVS_CTAGS_IDENTIFIERS_LIST) > > > > -if WIN32 > > -psep=";" > > -else > > -psep=":" > > -endif > > # PYTHONDONTWRITEBYTECODE=yes keeps Python from creating .pyc and .pyo > > # files. Creating .py[co] works OK for any given version of Open > > # vSwitch, but it causes trouble if you switch from a version with > > # foo/__init__.py into an (older) version with plain foo.py, since > > # foo/__init__.pyc will cause Python to ignore foo.py. > > run_python = \ > > - PYTHONPATH=$(OVS_SRCDIR)/python$(psep)$$PYTHONPATH \ > > + PYTHONPATH=$(OVS_SRCDIR)/python:$$PYTHONPATH \ > > PYTHONDONTWRITEBYTECODE=yes $(PYTHON3) > > > > ALL_LOCAL = > > @@ -176,7 +163,7 @@ submodules = $(shell grep 'path =' > > $(srcdir)/.gitmodules | sed -E 's/[\t ]*path > > > > SUFFIXES += .in > > .in: > > - > > $(AM_V_GEN)PYTHONPATH=$(OVS_SRCDIR)/python$(psep)$$PYTHONPATH$(psep)$(srcdir)/python > > $(PYTHON3) $(srcdir)/build-aux/soexpand.py -I$(srcdir) -I$(OVS_SRCDIR) < > > $< | \ > > + > > $(AM_V_GEN)PYTHONPATH=$(OVS_SRCDIR)/python:$$PYTHONPATH:$(srcdir)/python > > $(PYTHON3) $(srcdir)/build-aux/soexpand.py -I$(srcdir) -I$(OVS_SRCDIR) < $< > > | \ > > $(PYTHON3) $(srcdir)/build-aux/dpdkstrip.py $(DPDKSTRIP_FLAGS) | \ > > sed \ > > -e 's,[@]PKIDIR[@],$(PKIDIR),g' \ > > @@ -275,7 +262,7 @@ config-h-check: > > fi > > .PHONY: config-h-check > > > > -# Check for printf() type modifiers that MSVC doesn't support. > > +# Check for non-portable printf() type modifiers. > > ALL_LOCAL += printf-check > > printf-check: > > @cd $(srcdir); \ > > @@ -444,7 +431,7 @@ CLEANFILES += flake8-check > > > > include $(srcdir)/manpages.mk > > $(srcdir)/manpages.mk: $(MAN_ROOTS) build-aux/sodepends.py > > $(OVS_SRCDIR)/python/ovs_build_helpers/soutil.py > > - > > @PYTHONPATH=$(OVS_SRCDIR)/python$(psep)$$PYTHONPATH$(psep)$(srcdir)/python > > $(PYTHON3) $(srcdir)/build-aux/sodepends.py -I. -Isrcdir,$(srcdir) > > -IOVS_MANDIR,$(OVS_MANDIR) $(MAN_ROOTS) >$(@F).tmp > > + @PYTHONPATH=$(OVS_SRCDIR)/python:$$PYTHONPATH:$(srcdir)/python > > $(PYTHON3) $(srcdir)/build-aux/sodepends.py -I. -Isrcdir,$(srcdir) > > -IOVS_MANDIR,$(OVS_MANDIR) $(MAN_ROOTS) >$(@F).tmp > > @if cmp -s $(@F).tmp $@; then \ > > touch $@; \ > > rm -f $(@F).tmp; \ > > @@ -453,35 +440,6 @@ $(srcdir)/manpages.mk: $(MAN_ROOTS) > > build-aux/sodepends.py $(OVS_SRCDIR)/python/ > > fi > > CLEANFILES += manpage-dep-check > > > > -if VSTUDIO_DDK > > -ALL_LOCAL += ovsext > > -ARCH = x64 > > -ovsext: datapath-windows/ovsext.sln > > $(srcdir)/datapath-windows/include/OvsDpInterface.h > > -if VSTUDIO_WIN8 > > - MSBuild.exe //nologo //maxcpucount datapath-windows/ovsext.sln > > /target:Build /property:Configuration="Win8$(VSTUDIO_CONFIG)" > > /property:Version="$(PACKAGE_VERSION)" //p:Platform=$(ARCH) > > -endif > > -if VSTUDIO_WIN8_1 > > - MSBuild.exe //nologo //maxcpucount datapath-windows/ovsext.sln > > /target:Build /property:Configuration="Win8.1$(VSTUDIO_CONFIG)" > > /property:Version="$(PACKAGE_VERSION)" //p:Platform=$(ARCH) > > -endif > > -if VSTUDIO_WIN10 > > - MSBuild.exe //nologo //maxcpucount datapath-windows/ovsext.sln > > /target:Build /property:Configuration="Win10$(VSTUDIO_CONFIG)" > > /property:Version="$(PACKAGE_VERSION)" //p:Platform=$(ARCH) > > -endif > > - > > - > > -CLEAN_LOCAL += ovsext_clean > > -ovsext_clean: datapath-windows/ovsext.sln > > -if VSTUDIO_WIN8 > > - MSBuild.exe //nologo //maxcpucount datapath-windows/ovsext.sln > > /target:Clean /property:Configuration="Win8$(VSTUDIO_CONFIG)" > > /property:Version="$(PACKAGE_VERSION)" //p:Platform=$(ARCH) > > -endif > > -if VSTUDIO_WIN8_1 > > - MSBuild.exe //nologo //maxcpucount datapath-windows/ovsext.sln > > /target:Clean /property:Configuration="Win8.1$(VSTUDIO_CONFIG)" > > /property:Version="$(PACKAGE_VERSION)" //p:Platform=$(ARCH) > > -endif > > -if VSTUDIO_WIN10 > > - MSBuild.exe //nologo //maxcpucount datapath-windows/ovsext.sln > > /target:Clean /property:Configuration="Win10$(VSTUDIO_CONFIG)" > > /property:Version="$(PACKAGE_VERSION)" //p:Platform=$(ARCH) > > -endif > > -endif > > -.PHONY: ovsext > > - > > clang-analyze: clean > > @which clang scan-build >/dev/null 2>&1 || \ > > (echo "Unable to find clang/scan-build, Install > > clang,clang-analyzer packages"; exit 1) > > diff --git a/NEWS b/NEWS > > index c7cec2c33..8328b7bc8 100644 > > --- a/NEWS > > +++ b/NEWS > > @@ -18,6 +18,8 @@ Post v26.03.0 > > static routes as higher-priority than connected routes, which in turn > > led > > to changes in administrative distance for specific route types. > > Please see > > the "Route Administrative Distance" section of the ovn-northd manpage. > > + - Windows support was broken since the split from OVS repository. > > + Remaining bits of the build system and the documentation are now > > removed. > > > > OVN v26.03.0 - xxx xx xxxx > > -------------------------- > > diff --git a/README.rst b/README.rst > > index 0dac01986..9b09e22ff 100644 > > --- a/README.rst > > +++ b/README.rst > > @@ -91,8 +91,6 @@ As mentioned, OVN is licensed under the open source > > Apache 2 license. Some > > files may be marked specifically with a different license, in which case > > that > > license applies to the file in question. > > > > -File build-aux/cccl is licensed under the GNU General Public License, > > version 2. > > - > > Contact > > ------- > > > > diff --git a/build-aux/automake.mk b/build-aux/automake.mk > > index 046d7d84f..cd9c9dfea 100644 > > --- a/build-aux/automake.mk > > +++ b/build-aux/automake.mk > > @@ -1,7 +1,6 @@ > > EXTRA_DIST += \ > > build-aux/calculate-pipeline-cksum \ > > build-aux/calculate-schema-cksum \ > > - build-aux/cccl \ > > build-aux/cksum-pipeline-check \ > > build-aux/cksum-schema-check \ > > build-aux/dist-docs \ > > diff --git a/build-aux/cccl b/build-aux/cccl > > deleted file mode 100644 > > index e2426fb3e..000000000 > > --- a/build-aux/cccl > > +++ /dev/null > > @@ -1,221 +0,0 @@ > > -#!/bin/sh > > - > > -# cccl > > -# Wrapper around MS's cl.exe and link.exe to make them act more like > > -# Unix cc and ld > > -# > > -# Copyright (C) 2000-2003 Geoffrey Wossum ([email protected]) > > -# > > -# This program is free software; you can redistribute it and/or modify > > -# it under the terms of the GNU General Public License as published by > > -# the Free Software Foundation; either version 2 of the License, or > > -# (at your option) any later version. > > -# > > -# This program is distributed in the hope that it will be useful, but > > -# WITHOUT ANY WARRANTY; without even the implied warranty of > > -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU > > -# General Public License for more details. > > -# > > -# You should have received a copy of the GNU General Public License > > -# along with this program; if not, write to the Free Software > > -# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, > > USA. > > -# > > - > > -usage() > > -{ > > - cat <<EOF > > -Usage: cccl [OPTIONS] > > - > > -cccl is a wrapper around Microsoft's cl.exe and link.exe. It translates > > -parameters that Unix cc's and ld's understand to parameters that cl and > > link > > -understand. > > -EOF > > - exit $1 > > -} > > - > > -case $MACHTYPE in > > - *-msys) > > - slash="-" > > - ;; > > - *) > > - slash="/" > > - ;; > > -esac > > -# prog specifies the program that should be run (cl.exe or link.exe) > > -# We'll assume cl to start out > > -prog=cl > > -# opts specifies the command line to pass to the MSVC program > > -clopt="${slash}nologo ${slash}FS" > > -linkopt="${slash}nologo" > > -# gotparam is 0 if we didn't ever see a param, in which case we show > > usage() > > -gotparam= > > - > > -# We want exceptions > > -clopt="$clopt ${slash}EHsc" > > - > > -### Run through every option and convert it to the proper MS one > > -while test $# -gt 0; do > > - case "$1" in > > - -D*) optarg= ;; > > - -*=*) optarg=`echo "$1" | sed 's/[-_a-zA-Z0-9]*=//'` ;; > > - *) optarg= ;; > > - esac > > - gotparam=1 > > - > > - case "$1" in > > - --version) > > - cat <<EOF > > -cccl 0.03 > > - > > -Copyright 2000-2003 Geoffrey Wossum > > -This is free software; see the source for copying conditions. There is NO > > -waranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. > > -EOF > > - exit 1; > > - ;; > > - > > - -ansi) > > - clopt="$clopt ${slash}Za" > > - ;; > > - > > - -c) > > - # -c (compile only) is actually the same, but for clarity... > > - clopt="$clopt ${slash}c" > > - ;; > > - > > - -g[0-9] | -g) > > - # cl only supports one debugging level > > - clopt="$clopt ${slash}Zi" > > - linkopt="$linkopt ${slash}DEBUG" > > - ;; > > - > > - -O0) > > - clopt="$clopt ${slash}Od ${slash}D_DEBUG ${slash}MTd" > > - ;; > > - > > - -O2) > > - clopt="$clopt ${slash}O2 ${slash}MT" > > - ;; > > - > > - -L*) > > - path=`echo "$1" | sed 's/-L//'` > > - linkopt="$linkopt ${slash}LIBPATH:$path" > > - cl_linkopt="${slash}link ${slash}LIBPATH:\"$path\"" > > - ;; > > - > > - -l*) > > - lib=`echo "$1" | sed 's/-l//'` > > - lib="$lib.lib" > > - > > - clopt="$clopt $lib" > > - linkopt="$linkopt $lib" > > - ;; > > - > > - -m386) > > - clopt="$clopt ${slash}G3" > > - ;; > > - > > - -m486) > > - clopt="$clopt ${slash}G4" > > - ;; > > - > > - -mpentium) > > - clopt="$clopt ${slash}G5" > > - ;; > > - > > - -mpentiumpro) > > - clopt="$clopt ${slash}G6" > > - ;; > > - > > - -o) > > - # specifying output file, is it an object or an executable > > - shift > > - case "$1" in > > - *.o | *.obj) > > - clopt="$clopt ${slash}Fo$1" > > - ;; > > - *) > > - clopt="$clopt ${slash}Fe$1"; > > - linkopt="$linkopt ${slash}out:$1" > > - ;; > > - esac;; > > - > > - -pedantic) > > - #ignore pedantic > > - ;; > > - > > - -Wall) > > - # not all warnings are implemented > > - # the following is equivalent to > > - # Wimplicit-function-declaration but we will issue a compiler > > - # error > > - clopt="$clopt ${slash}we4013" > > - ;; > > - > > - -W*) > > - #ignore warnings > > - ;; > > - > > - -Q*) > > - #ignore link warnings > > - ;; > > - > > - -fno-strict-aliasing*) > > - #ignore aliasing > > - ;; > > - > > - -isystem) > > - shift > > - clopt="$clopt -I$1" > > - ;; > > - > > - -MT) > > - exit 0 > > - ;; > > - > > - -mno-cygwin) > > - ;; > > - > > - *.cc | *.cxx | *.C) > > - # C++ source file with non .cpp extension, make sure cl understand > > - # that it is C++ > > - clopt="$clopt ${slash}Tp$1" > > - ;; > > - > > - *.o | *.obj | *.a | *.lib) > > - # Object files/libraries seen, this command will require link > > - # Switch the prog to link > > - linkopt="$linkopt $1" > > - prog="link" > > - ;; > > - > > - *) > > - clopt="$clopt $1" > > - linkopt="$linkopt $1" > > - if test x$optarg != x ; then > > - clopt="$clopt=$optarg" > > - linkopt="$linkopt=$optarg" > > - fi > > - ;; > > - > > - esac > > - shift > > -done > > - > > -if test x$gotparam = x ; then > > - usage > > - exit 1 > > -fi > > - > > -# choose which opts we built up based on which program will actually run > > -if test x$prog = xcl ; then > > - opts="$clopt $cl_linkopt" > > -else > > - opts=$linkopt > > -fi > > - > > -if test x$V = x1 ; then > > - echo "$prog $opts" > > -fi > > -exec $prog $opts > > -exit 0 > > diff --git a/configure.ac b/configure.ac > > index 025dccc63..cfa4cc386 100644 > > --- a/configure.ac > > +++ b/configure.ac > > @@ -82,9 +82,6 @@ AC_SEARCH_LIBS([pthread_rwlock_tryrdlock], [pthread]) > > AC_SEARCH_LIBS([pthread_rwlockattr_destroy], [pthread]) > > AC_FUNC_STRERROR_R > > > > -OVS_CHECK_WIN64 > > -OVS_CHECK_WIN32 > > -OVS_CHECK_VISUAL_STUDIO_DDK > > OVN_CHECK_COVERAGE > > OVS_CHECK_NDEBUG > > OVS_CHECK_NETLINK > > diff --git a/controller-vtep/ovn-controller-vtep.8.xml > > b/controller-vtep/ovn-controller-vtep.8.xml > > index 9d470cd63..ea3ac155e 100644 > > --- a/controller-vtep/ovn-controller-vtep.8.xml > > +++ b/controller-vtep/ovn-controller-vtep.8.xml > > @@ -74,12 +74,7 @@ > > <code>unix:<var>file</var></code> > > </p> > > <p> > > - On POSIX, connect to the Unix domain server socket named > > - <var>file</var>. > > - </p> > > - <p> > > - On Windows, connect to a localhost TCP port whose value is > > written > > - in <var>file</var>. > > + Connect to the Unix domain server socket named <var>file</var>. > > </p> > > </li> > > </ul> > > diff --git a/controller/chassis.c b/controller/chassis.c > > index 4afb6da93..ea64c9f81 100644 > > --- a/controller/chassis.c > > +++ b/controller/chassis.c > > @@ -33,7 +33,6 @@ > > VLOG_DEFINE_THIS_MODULE(chassis); > > > > #ifndef HOST_NAME_MAX > > -/* For windows. */ > > #define HOST_NAME_MAX 255 > > #endif /* HOST_NAME_MAX */ > > > > diff --git a/debian/copyright.in b/debian/copyright.in > > index 335fd6af8..bc5cb37a1 100644 > > --- a/debian/copyright.in > > +++ b/debian/copyright.in > > @@ -49,24 +49,6 @@ License: > > On Debian systems, the complete text of the GNU General Public License > > version 2 can be found in `/usr/share/common-licenses/GPL-2' > > > > -* The following file is licensed under the GNU General Public License > > - version 2. > > - > > - build-aux/cccl > > - > > -* The following files are licensed under the 2-clause BSD license. > > - > > - lib/getopt_long.c > > - include/windows/getopt.h > > - datapath-windows/ovsext/Conntrack-tcp.c > > - lib/conntrack-tcp.c > > - > > -* The following files are licensed under the 3-clause BSD-license > > - > > - include/windows/netinet/icmp6.h > > - include/windows/netinet/ip6.h > > - lib/strsep.c > > - > > * The following components are dual-licensed under the > > GNU General Public License version 2 and the Apache License Version 2.0. > > > > diff --git a/lib/ovn-util.c b/lib/ovn-util.c > > index fb02825ac..e6143d7a9 100644 > > --- a/lib/ovn-util.c > > +++ b/lib/ovn-util.c > > @@ -670,16 +670,9 @@ default_br_db(void) > > char * > > get_abs_unix_ctl_path(const char *path) > > { > > -#ifdef _WIN32 > > - enum { WINDOWS = 1 }; > > -#else > > - enum { WINDOWS = 0 }; > > -#endif > > - > > long int pid = getpid(); > > char *abs_path > > = (path ? abs_file_name(ovn_rundir(), path) > > - : WINDOWS ? xasprintf("%s/%s.ctl", ovn_rundir(), program_name) > > : xasprintf("%s/%s.%ld.ctl", ovn_rundir(), program_name, pid)); > > return abs_path; > > } > > @@ -689,20 +682,8 @@ ovn_set_pidfile(const char *name) > > { > > char *pidfile_name = NULL; > > > > -#ifndef _WIN32 > > pidfile_name = name ? abs_file_name(ovn_rundir(), name) > > : xasprintf("%s/%s.pid", ovn_rundir(), > > program_name); > > -#else > > - if (name) { > > - if (strchr(name, ':')) { > > - pidfile_name = xstrdup(name); > > - } else { > > - pidfile_name = xasprintf("%s/%s", ovn_rundir(), name); > > - } > > - } else { > > - pidfile_name = xasprintf("%s/%s.pid", ovn_rundir(), program_name); > > - } > > -#endif > > > > /* Call openvswitch lib function. */ > > set_pidfile(pidfile_name); > > diff --git a/m4/ax_check_openssl.m4 b/m4/ax_check_openssl.m4 > > index 281d4dc65..9fbdf9eb1 100644 > > --- a/m4/ax_check_openssl.m4 > > +++ b/m4/ax_check_openssl.m4 > > @@ -80,13 +80,8 @@ AC_DEFUN([AX_CHECK_OPENSSL], [ > > if test -f "$ssldir/include/openssl/ssl.h"; then > > SSL_INCLUDES="-I$ssldir/include" > > SSL_LDFLAGS="-L$ssldir/lib" > > - if test "$WIN32" = "yes"; then > > - SSL_LIBS="-lssleay32 -llibeay32" > > - SSL_DIR=/$(echo ${ssldir} | ${SED} -e 's/://') > > - else > > - SSL_LIBS="-lssl -lcrypto" > > - SSL_DIR="$ssldir" > > - fi > > + SSL_LIBS="-lssl -lcrypto" > > + SSL_DIR="$ssldir" > > found=true > > AC_MSG_RESULT([yes]) > > break > > diff --git a/m4/ovn.m4 b/m4/ovn.m4 > > index 93a959224..22ad1a27f 100644 > > --- a/m4/ovn.m4 > > +++ b/m4/ovn.m4 > > @@ -60,139 +60,6 @@ AC_DEFUN([OVS_CHECK_NDEBUG], > > [ndebug=false]) > > AM_CONDITIONAL([NDEBUG], [test x$ndebug = xtrue])]) > > > > -dnl Checks for MSVC x64 compiler. > > -AC_DEFUN([OVS_CHECK_WIN64], > > - [AC_CACHE_CHECK( > > - [for MSVC x64 compiler], > > - [cl_cv_x64], > > - [dnl "cl" writes x64 output to stdin: > > - if (cl) 2>&1 | grep 'x64' >/dev/null 2>&1; then > > - cl_cv_x64=yes > > - MSVC64_LDFLAGS=" /MACHINE:X64 " > > - MSVC_PLATFORM="x64" > > - else > > - cl_cv_x64=no > > - MSVC64_LDFLAGS="" > > - MSVC_PLATFORM="x86" > > - fi]) > > - AC_SUBST([MSVC64_LDFLAGS]) > > - AC_SUBST([MSVC_PLATFORM]) > > -]) > > - > > -dnl Checks for WINDOWS. > > -AC_DEFUN([OVS_CHECK_WIN32], > > - [AC_CHECK_HEADER([windows.h], > > - [WIN32=yes], > > - [WIN32=no]) > > - AM_CONDITIONAL([WIN32], [test "$WIN32" = yes]) > > - if test "$WIN32" = yes; then > > - AC_ARG_WITH([pthread], > > - [AS_HELP_STRING([--with-pthread=DIR], > > - [root of the pthread-win32 directory])], > > - [ > > - case "$withval" in > > - "" | y | ye | yes | n | no) > > - AC_MSG_ERROR([Invalid --with-pthread value]) > > - ;; > > - *) > > - if (cl) 2>&1 | grep 'x64' >/dev/null 2>&1; then > > - cl_cv_x64=yes > > - else > > - cl_cv_x64=no > > - fi > > - if test "$cl_cv_x64" = yes; then > > - PTHREAD_WIN32_DIR=$withval/lib/x64 > > - PTHREAD_WIN32_DIR_DLL=/$(echo ${withval} | ${SED} -e > > 's/://')/dll/x64 > > - PTHREAD_WIN32_DIR_DLL_WIN_FORM=$withval/dll/x64 > > - else > > - PTHREAD_WIN32_DIR=$withval/lib/x86 > > - PTHREAD_WIN32_DIR_DLL=/$(echo ${withval} | ${SED} -e > > 's/://')/dll/x86 > > - PTHREAD_WIN32_DIR_DLL_WIN_FORM=$withval/dll/x86 > > - fi > > - PTHREAD_INCLUDES=-I$withval/include > > - PTHREAD_LDFLAGS=-L$PTHREAD_WIN32_DIR > > - PTHREAD_LIBS="-lpthreadVC2" > > - AC_SUBST([PTHREAD_WIN32_DIR_DLL_WIN_FORM]) > > - AC_SUBST([PTHREAD_WIN32_DIR_DLL]) > > - AC_SUBST([PTHREAD_INCLUDES]) > > - AC_SUBST([PTHREAD_LDFLAGS]) > > - AC_SUBST([PTHREAD_LIBS]) > > - ;; > > - esac > > - ], [ > > - AC_MSG_ERROR([pthread directory not specified]) > > - ] > > - ) > > - AC_ARG_WITH([debug], > > - [AS_HELP_STRING([--with-debug], > > - [Build without compiler optimizations])], > > - [ > > - MSVC_CFLAGS="-O0" > > - AC_SUBST([MSVC_CFLAGS]) > > - ], [ > > - MSVC_CFLAGS="-O2" > > - AC_SUBST([MSVC_CFLAGS]) > > - ] > > - ) > > - > > - AC_DEFINE([WIN32], [1], [Define to 1 if building on WIN32.]) > > - AC_CHECK_TYPES([struct timespec], [], [], [[#include <time.h>]]) > > - AH_BOTTOM([#ifdef WIN32 > > -#include "include/windows/windefs.h" > > -#endif]) > > - fi]) > > - > > -dnl OVS_CHECK_WINDOWS > > -dnl > > -dnl Configure Visual Studio solution build > > -AC_DEFUN([OVS_CHECK_VISUAL_STUDIO_DDK], [ > > -AC_ARG_WITH([vstudiotarget], > > - [AS_HELP_STRING([--with-vstudiotarget=target_type], > > - [Target type: Debug/Release])], > > - [ > > - case "$withval" in > > - "Release") ;; > > - "Debug") ;; > > - *) AC_MSG_ERROR([No valid Visual Studio configuration found]) > > ;; > > - esac > > - > > - VSTUDIO_CONFIG=$withval > > - ], [ > > - VSTUDIO_CONFIG= > > - ] > > - ) > > - > > - AC_SUBST([VSTUDIO_CONFIG]) > > - > > -AC_ARG_WITH([vstudiotargetver], > > - [AS_HELP_STRING([--with-vstudiotargetver=target_ver1,target_ver2], > > - [Target versions: Win8,Win8.1,Win10])], > > - [ > > - targetver=`echo "$withval" | tr -s , ' ' ` > > - for ver in $targetver; do > > - case "$ver" in > > - "Win8") VSTUDIO_WIN8=true ;; > > - "Win8.1") VSTUDIO_WIN8_1=true ;; > > - "Win10") VSTUDIO_WIN10=true ;; > > - *) AC_MSG_ERROR([No valid Visual Studio target version > > found]) ;; > > - esac > > - done > > - > > - ], [ > > - VSTUDIO_WIN8=true > > - VSTUDIO_WIN8_1=true > > - VSTUDIO_WIN10=true > > - ] > > - ) > > - > > - AM_CONDITIONAL([VSTUDIO_WIN8], [test -n "$VSTUDIO_WIN8"]) > > - AM_CONDITIONAL([VSTUDIO_WIN8_1], [test -n "$VSTUDIO_WIN8_1"]) > > - AM_CONDITIONAL([VSTUDIO_WIN10], [test -n "$VSTUDIO_WIN10"]) > > - > > - AC_DEFINE([VSTUDIO_DDK], [1], [System uses the Visual Studio build > > target.]) > > - AM_CONDITIONAL([VSTUDIO_DDK], [test -n "$VSTUDIO_CONFIG"]) > > -]) > > - > > dnl Checks for OpenSSL. > > AC_DEFUN([OVS_CHECK_OPENSSL], > > [AC_ARG_ENABLE( > > diff --git a/northd/lflow-mgr.c b/northd/lflow-mgr.c > > index 3b8cbe472..ce9c4f854 100644 > > --- a/northd/lflow-mgr.c > > +++ b/northd/lflow-mgr.c > > @@ -1168,12 +1168,6 @@ sync_lflow_to_sb(struct ovn_lflow *lflow, > > * "ovn/northd/northd.c:1234", down to just the part following the > > * last slash, e.g. "northd.c:1234". */ > > const char *slash = strrchr(lflow->where, '/'); > > -#if _WIN32 > > - const char *backslash = strrchr(lflow->where, '\\'); > > - if (!slash || backslash > slash) { > > - slash = backslash; > > - } > > -#endif > > const char *where = slash ? slash + 1 : lflow->where; > > > > struct smap ids = SMAP_INITIALIZER(&ids); > > @@ -1213,12 +1207,6 @@ sync_lflow_to_sb(struct ovn_lflow *lflow, > > * like "ovn/northd/northd.c:1234", down to just the part > > * following the last slash, e.g. "northd.c:1234". */ > > const char *slash = strrchr(lflow->where, '/'); > > -#if _WIN32 > > - const char *backslash = strrchr(lflow->where, '\\'); > > - if (!slash || backslash > slash) { > > - slash = backslash; > > - } > > -#endif > > const char *where = slash ? slash + 1 : lflow->where; > > > > if (strcmp(source, where)) { > > diff --git a/tests/atlocal.in b/tests/atlocal.in > > index 477d56a0f..2683e9a2f 100644 > > --- a/tests/atlocal.in > > +++ b/tests/atlocal.in > > @@ -74,29 +74,14 @@ esac > > > > # Check for platform. > > case `uname` in > > -MINGW*|MSYS*) > > - IS_WIN32="yes" > > - IS_BSD="no" > > - ;; > > FreeBSD|NetBSD) > > - IS_WIN32="no" > > IS_BSD="yes" > > ;; > > *) > > - IS_WIN32="no" > > IS_BSD="no" > > ;; > > esac > > > > -if test x"$PYTHON3" != x && test "$IS_WIN32" = yes; then > > - # enables legacy windows unicode printing needed for Python3 > > compatibility > > - # with the Python2 tests > > - PYTHONLEGACYWINDOWSFSENCODING=true > > - export PYTHONLEGACYWINDOWSFSENCODING > > - PYTHONLEGACYWINDOWSSTDIO=true > > - export PYTHONLEGACYWINDOWSSTDIO > > -fi > > - > > # Check whether to run IPv6 tests. > > $PYTHON -c ' > > import errno > > diff --git a/tests/automake.mk b/tests/automake.mk > > index 46be217ae..76ef4fda0 100644 > > --- a/tests/automake.mk > > +++ b/tests/automake.mk > > @@ -15,8 +15,7 @@ EXTRA_DIST += \ > > $(MULTINODE_TESTSUITE) \ > > tests/atlocal.in \ > > $(srcdir)/package.m4 \ > > - $(srcdir)/tests/testsuite \ > > - $(srcdir)/tests/testsuite.patch > > + $(srcdir)/tests/testsuite > > > > COMMON_MACROS_AT = \ > > tests/ovsdb-macros.at \ > > @@ -81,7 +80,6 @@ MULTINODE_TESTSUITE_AT = \ > > check_SCRIPTS += tests/atlocal > > > > TESTSUITE = $(srcdir)/tests/testsuite > > -TESTSUITE_PATCH = $(srcdir)/tests/testsuite.patch > > TESTSUITE_DIR = $(abs_top_builddir)/tests/testsuite.dir > > SYSTEM_DPDK_TESTSUITE = $(srcdir)/tests/system-dpdk-testsuite > > SYSTEM_KMOD_TESTSUITE = $(srcdir)/tests/system-kmod-testsuite > > @@ -93,7 +91,7 @@ DISTCLEANFILES += tests/atconfig tests/atlocal > > MULTINODE_TESTSUITE = $(srcdir)/tests/multinode-testsuite > > MULTINODE_TESTSUITE_DIR = $(abs_top_builddir)/tests/multinode-testsuite.dir > > MULTINODE_TESTSUITE_RESULTS = $(MULTINODE_TESTSUITE_DIR)/results > > -AUTOTEST_PATH = > > $(ovs_builddir)/utilities:$(ovs_builddir)/vswitchd:$(ovs_builddir)/ovsdb:$(ovs_builddir)/vtep:tests:$(PTHREAD_WIN32_DIR_DLL):$(SSL_DIR):controller-vtep:northd:utilities:controller:ic:br-controller > > +AUTOTEST_PATH = > > $(ovs_builddir)/utilities:$(ovs_builddir)/vswitchd:$(ovs_builddir)/ovsdb:$(ovs_builddir)/vtep:tests:$(SSL_DIR):controller-vtep:northd:utilities:controller:ic:br-controller > > > > export ovs_srcdir > > export ovs_builddir > > @@ -237,16 +235,9 @@ check-multinode: all > > > > AUTOTEST = $(AUTOM4TE) --language=autotest > > > > -if WIN32 > > -$(TESTSUITE): package.m4 $(TESTSUITE_AT) $(COMMON_MACROS_AT) > > $(TESTSUITE_PATCH) > > - $(AM_V_GEN)$(AUTOTEST) -I '$(srcdir)' -o testsuite.tmp [email protected] > > - patch -p0 testsuite.tmp $(TESTSUITE_PATCH) > > - $(AM_V_at)mv testsuite.tmp $@ > > -else > > $(TESTSUITE): package.m4 $(TESTSUITE_AT) $(COMMON_MACROS_AT) > > $(AM_V_GEN)$(AUTOTEST) -I '$(srcdir)' -o [email protected] [email protected] > > $(AM_V_at)mv [email protected] $@ > > -endif > > > > $(SYSTEM_DPDK_TESTSUITE): package.m4 $(SYSTEM_TESTSUITE_AT) > > $(SYSTEM_DPDK_TESTSUITE_AT) $(COMMON_MACROS_AT) > > $(AM_V_GEN)$(AUTOTEST) -I '$(srcdir)' -o [email protected] [email protected] > > diff --git a/tests/ovn-controller-vtep.at b/tests/ovn-controller-vtep.at > > index caf53e291..213e222ed 100644 > > --- a/tests/ovn-controller-vtep.at > > +++ b/tests/ovn-controller-vtep.at > > @@ -13,7 +13,6 @@ AT_BANNER([ovn_controller_vtep]) > > # > > m4_define([OVN_CONTROLLER_VTEP_START], [ > > AT_KEYWORDS([ovn]) > > - # this will cause skip when 'make check' using Windows setup. > > sim="$1" > > tunnel_ip="$2" > > vtep_chassis=${sim:-br-vtep} > > diff --git a/tests/ovs-macros.at b/tests/ovs-macros.at > > index 6e6e52080..95d522b70 100644 > > --- a/tests/ovs-macros.at > > +++ b/tests/ovs-macros.at > > @@ -105,43 +105,6 @@ seq () { > > done > > } > > > > -if test "$IS_WIN32" = "yes"; then > > - pwd () { > > - command pwd -W "$@" > > - } > > - > > - diff () { > > - command diff --strip-trailing-cr "$@" > > - } > > - > > - # tskill is more effective than taskkill but it isn't always installed. > > - if (tskill //?) >/dev/null 2>&1; then :; else > > - tskill () { taskkill //F //PID $1 >/dev/null; } > > - fi > > - > > - kill () { > > - signal= > > - retval=0 > > - for arg; do > > - case $arg in > > - -*) signal=$arg ;; > > - [1-9][0-9]*) > > - # tasklist always returns 0. > > - # If pid does exist, there will be a line with the pid. > > - if tasklist //fi "PID eq $arg" | grep $arg >/dev/null; then > > - if test "X$signal" != "X-0"; then > > - tskill $arg > > - fi > > - else > > - retval=1 > > - fi > > - ;; > > - esac > > - done > > - return $retval > > - } > > -fi > > - > > # parent_pid PID > > # > > # Prints the PID of the parent of process PID. > > diff --git a/tests/test-ovn.c b/tests/test-ovn.c > > index 3c89eeba0..114e60d65 100644 > > --- a/tests/test-ovn.c > > +++ b/tests/test-ovn.c > > @@ -1058,7 +1058,6 @@ test_tree_shape_exhaustively(struct expr *expr, > > struct shash *symtab, > > } > > } > > > > -#ifndef _WIN32 > > static void > > wait_pid(pid_t *pids, int *n) > > { > > @@ -1087,7 +1086,6 @@ wait_pid(pid_t *pids, int *n) > > } > > ovs_fatal(0, "waitpid returned unknown child"); > > } > > -#endif > > > > static void > > test_exhaustive(struct ovs_cmdl_context *ctx OVS_UNUSED) > > @@ -1118,10 +1116,8 @@ test_exhaustive(struct ovs_cmdl_context *ctx > > OVS_UNUSED) > > free(name); > > } > > > > -#ifndef _WIN32 > > pid_t *children = xmalloc(test_parallel * sizeof *children); > > int n_children = 0; > > -#endif > > > > int n_tested = 0; > > for (int i = 0; i < 2; i++) { > > @@ -1144,7 +1140,6 @@ test_exhaustive(struct ovs_cmdl_context *ctx > > OVS_UNUSED) > > ds_destroy(&s); > > } > > > > -#ifndef _WIN32 > > if (test_parallel > 1) { > > pid_t pid = xfork(); > > if (!pid) { > > @@ -1160,9 +1155,7 @@ test_exhaustive(struct ovs_cmdl_context *ctx > > OVS_UNUSED) > > } > > children[n_children++] = pid; > > } > > - } else > > -#endif > > - { > > + } else { > > n_tested += test_tree_shape_exhaustively( > > expr, &symtab, terminals, n_terminals, > > nvars, test_nvars, test_bits, > > @@ -1171,12 +1164,11 @@ test_exhaustive(struct ovs_cmdl_context *ctx > > OVS_UNUSED) > > expr_destroy(expr); > > } > > } > > -#ifndef _WIN32 > > + > > while (n_children > 0) { > > wait_pid(children, &n_children); > > } > > free(children); > > -#endif > > > > printf("Tested "); > > switch (operation) { > > diff --git a/tests/testsuite.patch b/tests/testsuite.patch > > deleted file mode 100644 > > index e0c6bb35a..000000000 > > --- a/tests/testsuite.patch > > +++ /dev/null > > @@ -1,76 +0,0 @@ > > ---- testsuite 2015-02-11 17:19:21.654646439 -0800 > > -+++ testsuite 2015-02-11 17:15:03.810653032 -0800 > > -@@ -4669,6 +4669,73 @@ > > - fi > > - exec 6<&- > > - wait > > -+elif test $at_jobs -ne 1 && > > -+ test "$IS_WIN32" = "yes"; then > > -+ # FIFO job dispatcher. > > -+ trap 'at_pids= > > -+ for at_pid in `jobs -p`; do > > -+ at_pids="$at_pids $at_job_group$at_pid" > > -+ done > > -+ if test -n "$at_pids"; then > > -+ at_sig=TSTP > > -+ test "${TMOUT+set}" = set && at_sig=STOP > > -+ kill -$at_sig $at_pids 2>/dev/null > > -+ fi > > -+ kill -STOP $$ > > -+ test -z "$at_pids" || kill -CONT $at_pids 2>/dev/null' TSTP > > -+ > > -+ echo > > -+ # Turn jobs into a list of numbers, starting from 1. > > -+ running_jobs="`pwd`/tests/jobdispatcher" > > -+ mkdir -p $running_jobs > > -+ at_joblist=`$as_echo "$at_groups" | sed -n 1,${at_jobs}p` > > -+ > > -+ set X $at_joblist > > -+ shift > > -+ for at_group in $at_groups; do > > -+ $at_job_control_on 2>/dev/null > > -+ ( > > -+ # Start one test group. > > -+ $at_job_control_off > > -+ touch $running_jobs/$at_group > > -+ trap 'set +x; set +e > > -+ trap "" PIPE > > -+ echo stop > "$at_stop_file" > > -+ rm -f $running_jobs/$at_group > > -+ as_fn_exit 141' PIPE > > -+ at_fn_group_prepare > > -+ if cd "$at_group_dir" && > > -+ at_fn_test $at_group && > > -+ . "$at_test_source" > > -+ then :; else > > -+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: unable to parse > > test group: $at_group" >&5 > > -+$as_echo "$as_me: WARNING: unable to parse test group: $at_group" >&2;} > > -+ at_failed=: > > -+ fi > > -+ rm -f $running_jobs/$at_group > > -+ at_fn_group_postprocess > > -+ ) & > > -+ $at_job_control_off > > -+ shift # Consume one token. > > -+ if test $# -gt 0; then :; else > > -+ while [ "`ls -l $running_jobs 2>/dev/null | wc -l`" -gt "$at_jobs" > > ]; do > > -+ sleep 0.1 > > -+ done > > -+ set x $* > > -+ fi > > -+ test -f "$at_stop_file" && break > > -+ done > > -+ # Read back the remaining ($at_jobs - 1) tokens. > > -+ set X $at_joblist > > -+ shift > > -+ if test $# -gt 0; then > > -+ shift > > -+ while [ "`ls -l $running_jobs | wc -l`" -gt 1 ]; do > > -+ sleep 0.1 > > -+ done > > -+ fi > > -+ rmdir $running_jobs > > -+ wait > > - else > > - # Run serially, avoid forks and other potential surprises. > > - for at_group in $at_groups; do > > diff --git a/utilities/checkpatch.py b/utilities/checkpatch.py > > index c19e34442..ad1199f0c 100755 > > --- a/utilities/checkpatch.py > > +++ b/utilities/checkpatch.py > > @@ -1073,10 +1073,7 @@ def ovs_checkpatch_parse(text, filename, > > author=None, committer=None): > > interim_line_check(current_file, cmp_line, lineno) > > continue > > > > - # Skip files which have /datapath in them, since they are > > - # linux or windows coding standards > > - if current_file.startswith('datapath'): > > - continue > > + # Linux headers use Linux kernel coding style for the most > > part. > > if current_file.startswith('include/linux'): > > continue > > # "sparse" includes could be copy-pasted from different sources > > diff --git a/utilities/ovn-appctl.8.xml b/utilities/ovn-appctl.8.xml > > index e3d024da1..b6d7e3dbd 100644 > > --- a/utilities/ovn-appctl.8.xml > > +++ b/utilities/ovn-appctl.8.xml > > @@ -142,13 +142,6 @@ > > to limit the log level change to only to the system log, to > > the > > console, or to a file, respectively. > > </p> > > - > > - <p> > > - On Windows platform, <code>syslog</code> is accepted as a > > word > > - and is only useful if the target was started with the > > - <code>--syslog-target</code> option (the word has no effect > > - otherwise). > > - </p> > > </li> > > > > <li> > > diff --git a/utilities/ovn-appctl.c b/utilities/ovn-appctl.c > > index dff7d1295..1e872a401 100644 > > --- a/utilities/ovn-appctl.c > > +++ b/utilities/ovn-appctl.c > > @@ -214,7 +214,6 @@ connect_to_target(const char *target) > > char *socket_name; > > int error; > > > > -#ifndef _WIN32 > > if (target[0] != '/') { > > char *pidfile_name; > > pid_t pid; > > @@ -227,12 +226,6 @@ connect_to_target(const char *target) > > free(pidfile_name); > > socket_name = xasprintf("%s/%s.%ld.ctl", > > ovn_rundir(), target, (long int) pid); > > -#else > > - /* On windows, if the 'target' contains ':', we make an assumption that > > - * it is an absolute path. */ > > - if (!strchr(target, ':')) { > > - socket_name = xasprintf("%s/%s.ctl", ovn_rundir(), target); > > -#endif > > } else { > > socket_name = xstrdup(target); > > } > > -- > > 2.54.0 > > > > _______________________________________________ > > dev mailing list > > [email protected] > > https://mail.openvswitch.org/mailman/listinfo/ovs-dev > > _______________________________________________ dev mailing list [email protected] https://mail.openvswitch.org/mailman/listinfo/ovs-dev
