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.
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
