summaryrefslogtreecommitdiff
path: root/m4
Commit message (Collapse)AuthorAgeFilesLines
* m4: Test avx512 for x86 only.Cheng Li2022-09-271-2/+2
| | | | | | | | | | 'as' command of arm version may don't support option '--64', this patch is to move the avx512 test into x86 branch to avoid this. Fixes: 352b6c7116cd ("dpif-lookup: add avx512 gather implementation.") Tested-by: Harry van Haaren <harry.van.haaren@intel.com> Signed-off-by: Cheng Li <lic121@chinatelecom.cn> Signed-off-by: Ilya Maximets <i.maximets@ovn.org>
* acinclude: Improve vpopcntdq build check.Cian Ferriter2022-08-121-0/+29
| | | | | | | | | | | | | | | | | Support for vpopcntdq instruction generation by the compiler was already checked in the OVS_CHECK_AVX512 AC function by checking if the compiler accepted the -mavx512vpopcntdq option. However, there can be situations where the compiler supports vpopcntdq generation but the assembler doesn't support the instruction. The below OVS_CHECK_AVX512VPOPCNTDQ AC function will check for both compiler and assembler support for the vpopcntdq instruction. Fixes: cb1c64007734 ("acinclude: Add seperate checks for AVX512 ISA.") Reported-by: Ian Stokes <ian.stokes@intel.com> Signed-off-by: Cian Ferriter <cian.ferriter@intel.com> Acked-by: Sunil Pai G <sunil.pai.g@intel.com> Signed-off-by: Ian Stokes <ian.stokes@intel.com>
* m4: Update ax_func_posix_memalign to the latest version.Ilya Maximets2022-07-291-4/+4
| | | | | | | | | | | | | | | | | | This fixes the obsolescence warning for AC_TRY_RUN with autoconf 2.70+: $ ./boot.sh configure.ac:141: warning: The macro `AC_TRY_RUN' is obsolete. configure.ac:141: You should run autoupdate. ./lib/autoconf/general.m4:2997: AC_TRY_RUN is expanded from... lib/m4sugar/m4sh.m4:692: _AS_IF_ELSE is expanded from... lib/m4sugar/m4sh.m4:699: AS_IF is expanded from... ./lib/autoconf/general.m4:2249: AC_CACHE_VAL is expanded from... ./lib/autoconf/general.m4:2270: AC_CACHE_CHECK is expanded from... m4/ax_func_posix_memalign.m4:27: AX_FUNC_POSIX_MEMALIGN is expanded from... configure.ac:141: the top level Acked-by: Sunil Pai G <sunil.pai.g@intel.com> Signed-off-by: Ilya Maximets <i.maximets@ovn.org>
* m4: Replace obsolete AC_HELP_STRING with AS_HELP_STRING.Ilya Maximets2022-07-291-9/+9
| | | | | | | | | | | | | | | | | AS_HELP_STRING is a direct replacement for AC_HELP_STRING. It is available since autoconf 2.57a. OVS requires 2.63, so AS_HELP_STRING can be freely used. This fixes the following warning on systems with 2.70+: $ ./boot.sh ... configure.ac:92: warning: The macro `AC_HELP_STRING' is obsolete. configure.ac:92: You should run autoupdate. ... Acked-by: Sunil Pai G <sunil.pai.g@intel.com> Signed-off-by: Ilya Maximets <i.maximets@ovn.org>
* odp-execute: Add ISA implementation of actions.Emma Finn2022-07-151-0/+29
| | | | | | | | | | | | | | This commit adds the AVX512 implementation of the action functionality. Usage: $ ovs-appctl odp-execute/action-impl-set avx512 Signed-off-by: Emma Finn <emma.finn@intel.com> Signed-off-by: Harry van Haaren <harry.van.haaren@intel.com> Co-authored-by: Harry van Haaren <harry.van.haaren@intel.com> Acked-by: Sunil Pai G <sunil.pai.g@intel.com> Acked-by: Eelco Chaudron <echaudro@redhat.com> Signed-off-by: Ian Stokes <ian.stokes@intel.com>
* configure: Add --enable-usdt-probes option to enable USDT probes.Eelco Chaudron2022-01-181-0/+28
| | | | | | | | | | Allow inclusion of User Statically Defined Trace (USDT) probes in the OVS binaries using the --enable-usdt-probes option to the ./configure script. Signed-off-by: Eelco Chaudron <echaudro@redhat.com> Acked-by: Paolo Valerio <pvalerio@redhat.com> Signed-off-by: Ilya Maximets <i.maximets@ovn.org>
* acinclude: Don't set AVX512-related configuration via CFLAGS.Ilya Maximets2021-08-051-1/+4
| | | | | | | | | | | | | The correct way to pass configuration options is to define them inside the config.h. Additionally, few long lines wrapped and fixed the unnecessary double check for -mavx512f. Fixes: abb807e27dd4 ("dpif-netdev: Add command to switch dpif implementation.") Fixes: 5324b54e606a ("dpif-netdev: Add configure to enable autovalidator at build time.") Fixes: e90e115a01af ("dpif-netdev: implement subtable lookup validation.") Fixes: 352b6c7116cd ("dpif-lookup: add avx512 gather implementation.") Signed-off-by: Ilya Maximets <i.maximets@ovn.org> Acked-by: Cian Ferriter <cian.ferriter@intel.com>
* windows: Update build with latest pthread projectAlin Gabriel Serdean2020-10-041-15/+4
| | | | | | | | | pthreads-win32 has moved too PThreads4W. This patch updates the build steps, CI (appveyor) and documentation. Signed-off-by: Alin Gabriel Serdean <aserdean@ovn.org> Acked-by: Ilya Maximets <i.maximets@ovn.org>
* windows: Add default value for VSTUDIO_CONFIGAlin Gabriel Serdean2020-10-041-45/+45
| | | | | | | | | | | | VSTUDIO_CONFIG is used when generating the windows installer. If the parameter passed to configure `--with-vstudiotarget` is not specified to configure we default it to `Default`. Fixes bug: vstudiotarget/vstudiotargetver should be available only on Windows. Signed-off-by: Alin Gabriel Serdean <aserdean@ovn.org> Acked-by: Ilya Maximets <i.maximets@ovn.org>
* configure: explicitly disable avx512 if bintuils check failsHarry van Haaren2020-08-051-0/+4
| | | | | | | | | | | | | | This commit explicitly disables avx512f if the binutils assembler check fails to correctly assemble its input. Without this fix, there is a possibility that users can see undefined behaviour when compiling with -march=native on a CPU which supports avx512 and with a buggy binutils version (v2.30 and 2.31), without a backported fix, if the compiler's vectorizing optimizations convert scalar code to avx512 instructions. Signed-off-by: Harry van Haaren <harry.van.haaren@intel.com> Signed-off-by: Ian Stokes <ian.stokes@intel.com>
* dpif-lookup: add avx512 gather implementation.Harry van Haaren2020-07-131-0/+30
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This commit adds an AVX-512 dpcls lookup implementation. It uses the AVX-512 SIMD ISA to perform multiple miniflow operations in parallel. To run this implementation, the "avx512f" and "bmi2" ISAs are required. These ISA checks are performed at runtime while probing the subtable implementation. If a CPU does not provide both "avx512f" and "bmi2", then this code does not execute. The avx512 code is built as a separate static library, with added CFLAGS to enable the required ISA features. By building only this static library with avx512 enabled, it is ensured that the main OVS core library is *not* using avx512, and that OVS continues to run as before on CPUs that do not support avx512. The approach taken in this implementation is to use the gather instruction to access the packet miniflow, allowing any miniflow blocks to be loaded into an AVX-512 register. This maximizes the usefulness of the register, and hence this implementation handles any subtable with up to miniflow 8 bits. Note that specialization of these avx512 lookup routines still provides performance value, as the hashing of the resulting data is performed in scalar code, and compile-time loop unrolling occurs when specialized to miniflow bits. This commit checks at configure time if the assembling in use has a known bug in assembling AVX512 code. If this bug is present, all AVX512 code is disabled. Checking the version string of the binutils or assembler is not a good method to detect the issue, as back ported fixes would not be reflected. Signed-off-by: Harry van Haaren <harry.van.haaren@intel.com> Acked-by: William Tu <u9012063@gmail.com> Signed-off-by: Ian Stokes <ian.stokes@intel.com>
* Remove dependency on python3-sixTimothy Redaelli2019-12-201-12/+0
| | | | | | | | | | | Since Python 2 support was removed in 1ca0323e7c29 ("Require Python 3 and remove support for Python 2."), python3-six is not needed anymore. Moreover python3-six is not available on RHEL/CentOS7 without using EPEL and so this patch is needed in order to release OVS 2.13 on RHEL7. Signed-off-by: Timothy Redaelli <tredaelli@redhat.com> Signed-off-by: Ben Pfaff <blp@ovn.org>
* configure: Properly handle case where libunwind.h is not available.Yi-Hung Wei2019-10-171-1/+3
| | | | | | | | | | | It is possible that user install libunwind but not libunwind-devel, and it will run into a compilation error. So we need to check the existence of the library and the header file. Fixes: e2ed6fbeb18c ("fatal-signal: Catch SIGSEGV and print backtrace.") Suggested-by: Ben Pfaff <blp@ovn.org> Signed-off-by: Yi-Hung Wei <yihung.wei@gmail.com> Signed-off-by: William Tu <u9012063@gmail.com>
* fatal-signal: Catch SIGSEGV and print backtrace.William Tu2019-09-271-0/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The patch catches the SIGSEGV signal and prints the backtrace using libunwind at the monitor daemon. This makes debugging easier when there is no debug symbol package or gdb installed on production systems. The patch works when the ovs-vswitchd compiles even without debug symbol (no -g option), because the object files still have function symbols. For example: |daemon_unix(monitor)|WARN|SIGSEGV detected, backtrace: |daemon_unix(monitor)|WARN|0x0000000000482752 <fatal_signal_handler+0x52> |daemon_unix(monitor)|WARN|0x00007fb4900734b0 <killpg+0x40> |daemon_unix(monitor)|WARN|0x00007fb49013974d <__poll+0x2d> |daemon_unix(monitor)|WARN|0x000000000052b348 <time_poll+0x108> |daemon_unix(monitor)|WARN|0x00000000005153ec <poll_block+0x8c> |daemon_unix(monitor)|WARN|0x000000000058630a <clean_thread_main+0x1aa> |daemon_unix(monitor)|WARN|0x00000000004ffd1d <ovsthread_wrapper+0x7d> |daemon_unix(monitor)|WARN|0x00007fb490b3b6ba <start_thread+0xca> |daemon_unix(monitor)|WARN|0x00007fb49014541d <clone+0x6d> |daemon_unix(monitor)|ERR|1 crashes: pid 122849 died, killed \ (Segmentation fault), core dumped, restarting However, if the object files' symbols are stripped, then we can only get init function plus offset value. This is still useful when trying to see if two bugs have the same root cause, Example: |daemon_unix(monitor)|WARN|SIGSEGV detected, backtrace: |daemon_unix(monitor)|WARN|0x0000000000482752 <_init+0x7d68a> |daemon_unix(monitor)|WARN|0x00007f5f7c8cf4b0 <killpg+0x40> |daemon_unix(monitor)|WARN|0x00007f5f7c99574d <__poll+0x2d> |daemon_unix(monitor)|WARN|0x000000000052b348 <_init+0x126280> |daemon_unix(monitor)|WARN|0x00000000005153ec <_init+0x110324> |daemon_unix(monitor)|WARN|0x0000000000407439 <_init+0x2371> |daemon_unix(monitor)|WARN|0x00007f5f7c8ba830 <__libc_start_main+0xf0> |daemon_unix(monitor)|WARN|0x0000000000408329 <_init+0x3261> |daemon_unix(monitor)|ERR|1 crashes: pid 106155 died, killed \ (Segmentation fault), core dumped, restarting Most C library functions are not async-signal-safe, meaning that it is not safe to call them from a signal handler, for example printf() or fflush(). To be async-signal-safe, the handler only collects the stack info using libunwind, which is signal-safe, and issues 'write' to the pipe, where the monitor thread reads and prints to ovs-vswitchd.log. Tested-at: https://travis-ci.org/williamtu/ovs-travis/builds/590503433 Signed-off-by: William Tu <u9012063@gmail.com> Signed-off-by: Ben Pfaff <blp@ovn.org>
* Require Python 3 and remove support for Python 2.Ben Pfaff2019-09-271-81/+18
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Python 2 reaches end-of-life on January 1, 2020, which is only a few months away. This means that OVS needs to stop depending on in the next release that should occur roughly that same time. Therefore, this commit removes all support for Python 2. It also makes Python 3 a mandatory build dependency. Some of the interesting consequences: - HAVE_PYTHON, HAVE_PYTHON2, and HAVE_PYTHON3 conditionals have been removed, since we now know that Python3 is available. - $PYTHON and $PYTHON2 are removed, and $PYTHON3 is always available. - Many tests for Python 2 support have been removed, and the ones that depended on Python 3 now run unconditionally. This allowed several macros in the testsuite to be removed, making the code clearer. This does make some of the changes to the testsuite files large due to indentation level changes. - #! lines for Python now use /usr/bin/python3 instead of /usr/bin/python. - Packaging depends on Python 3 packages. Acked-by: Numan Siddique <nusiddiq@redhat.com> Tested-by: Numan Siddique <nusiddiq@redhat.com> Signed-off-by: Ben Pfaff <blp@ovn.org>
* configure: Properly handle case where sphinx-build is not available.Ben Pfaff2019-09-201-1/+1
| | | | | | | Fixes: ab4514890587 ("Recommend Sphinx from Python 3 in documentation and packaging.") Reported-by: Justin Pettit <jpettit@ovn.org> Acked-by: Justin Pettit <jpettit@ovn.org> Signed-off-by: Ben Pfaff <blp@ovn.org>
* Documentation: Work with sphinx-build for Python 3 also.Ben Pfaff2019-09-201-9/+4
| | | | | | | | | | | There's nothing in OVS specific to Sphinx for Python 2, but the compile-time check only looked for a binary named "sphinx-build", which is typically provided only for Python 2. With Python 3, the binary is typically called "sphinx-build-3". With this commit, either name is accepted. Acked-by: Numan Siddique <nusididq@redhat.com> Signed-off-by: Ben Pfaff <blp@ovn.org>
* Remove ESX references.Justin Pettit2019-06-011-10/+0
| | | | | Signed-off-by: Justin Pettit <jpettit@ovn.org> Acked-by: Ben Pfaff <blp@ovn.org>
* stream-ssl: Add support for TLS SNI (Server Name Indication).Ben Pfaff2019-04-161-3/+20
| | | | | | | | | | | This TLS extension, introduced in RFC 3546, allows the server to know what host the client believes it is contacting, the TLS equivalent of the Host: header in HTTP. Tested-by: Yifeng Sun <pkusunyifeng@gmail.com> Reviewed-by: Yifeng Sun <pkusunyifeng@gmail.com> Requested-by: Shivaram Mysore <smysore@servicefractal.com> Signed-off-by: Ben Pfaff <blp@ovn.org>
* acinclude: Also use LIBS from dpkg pkg-configChristian Ehrhardt2019-02-131-78/+139
| | | | | | | | | | | | | | | | | | | | | | | | | DPDK 18.11 builds using the more modern meson build system no more provide the -ldpdk linker script. Instead it is expected to use pkgconfig for linker options as well. This change will set DPDK_LIB from pkg-config (if pkg-config was available) and since that already carries the whole-archive flags around the PMDs skips the further wrapping in more whole-archive if that is already part of DPDK_LIB. To work reliable in all environments this needs pkg-config 0.29.1. We want to be able to use PKG_CHECK_MODULES_STATIC which is not yet available in 0.24. Therefore update pkg.m4 to pkg-config 0.29.1. This should be backport-safe as these macro files are all versioned. autoconf is smart enough to check the version if you have it locally, and if the system's is higher, it will use that one instead. Acked-by: Luca Boccassi <bluca@debian.org> Acked-by: Aaron Conole <aconole@redhat.com> Signed-off-by: Christian Ehrhardt <christian.ehrhardt@canonical.com> Signed-off-by: Ian Stokes <ian.stokes@intel.com>
* m4: handle configuring with PYTHON="/usr/bin/env python" etcAndre McCurdy2018-10-031-6/+6
| | | | | | | | | | | | It may sometimes be desirable to have the python path determined at run time, ie by setting PYTHON="/usr/bin/env python" etc. Unfortunately that currently fails as $ovs_cv_python2 and $ovs_cv_python3 are not always quoted and therefore fail to parse correctly if PYTHON / PYTHON2 / PYTHON3 are set to values containing spaces. Signed-off-by: Andre McCurdy <armccurdy@gmail.com>
* Permit to build OVS with only Python3 installedTimothy Redaelli2018-07-241-24/+43
| | | | | | | | | | | | | | | | | | This commit renames HAVE_PYTHON to HAVE_PYTHON2 and PYTHON to PYTHON2 and adds HAVE_PYTHON and PYTHON with a different semantics: - If PYTHON environment variable is set, use it as PYTHON - If a python2 interpreter is available, PYTHON became the python2 interpreter - If a python3 interpreter is available, PYTHON became the python3 interpreter PYTHON is only used to run the python scripts needed by the build system NOTE: Since currently most of the utilities and bugtool doesn't support Python3, they're installed only if python2 is available. This will be fixed in later commits. Signed-off-by: Timothy Redaelli <tredaelli@redhat.com> Signed-off-by: Ben Pfaff <blp@ovn.org>
* DNS: Add basic support for asynchronous DNS resolvingYifeng Sun2018-07-061-0/+10
| | | | | | | | | | | | | | | | | | | | | | This patch is a simple implementation for the proposal discussed in https://mail.openvswitch.org/pipermail/ovs-dev/2017-August/337038.html and https://mail.openvswitch.org/pipermail/ovs-dev/2017-October/340013.html. It enables ovs-vswitchd and other utilities to use DNS names when specifying OpenFlow and OVSDB remotes. Below are some of the features and limitations of this patch: - Resolving is asynchornous in daemon context, avoiding blocking main loop; - Resolving is synchronous in general utility context; - Both IPv4 and IPv6 are supported; - The resolving API is thread-safe; - Depends on the unbound library; - When multiple ip addresses are returned, only the first one is used; - /etc/nsswitch.conf isn't respected as unbound library doesn't look at it; - For async-resolving, caller need to retry later; there is no callback. Signed-off-by: Yifeng Sun <pkusunyifeng@gmail.com> Signed-off-by: Ben Pfaff <blp@ovn.org>
* m4: Try to use "python" as Python2 interpreter only as last resortTimothy Redaelli2018-03-081-1/+1
| | | | | | | | | | | | | | | This patch tries to find Python 2 as "python2", then "python2.7" and finally "python". This is needed since "/usr/bin/python" is used as Python 3 on some Linux distributions (for example on Arch Linux) and on Fedora 28 "/usr/bin/python" will be deprecated [1]: "All scripts shall explicitly use /usr/bin/python2." [1] https://fedoraproject.org/wiki/FinalizingFedoraSwitchtoPython3 Signed-off-by: Timothy Redaelli <tredaelli@redhat.com> Signed-off-by: Ben Pfaff <blp@ovn.org>
* tests-windows: Add OpenSSL directory to autotest pathAlin Gabriel Serdean2018-03-081-0/+4
| | | | | | | | | | Running OpenSSL unit tests without it already being included in library path revealed a problem: the AUTOTEST_PATH does not include it. This patch adds a new variable `SSL_DIR` which will be added in AUTOTEST_PATH. Signed-off-by: Alin Gabriel Serdean <aserdean@ovn.org> Acked-by: Ben Pfaff <blp@ovn.org>
* datapath-windows: Support to selectively compile targetsShashank Ram2018-03-021-1/+27
| | | | | | | | | | | | | | | | | Adds support to selectively compile kernel driver for target versions. This is useful when environments to compile for all targets might not be available on the user's machine, or if the user wants to only compile some targets selectively. Also once appveyor has support to build Win10 targets, we will not pass the "--with-vstudiotargetver" to the configure script. Signed-off-by: Shashank Ram <rams@vmware.com> Acked-by: Anand Kumar <kumaranand@vmware.com> Acked-by: Alin Gabriel Serdean <aserdean@ovn.org> Signed-off-by: Alin Gabriel Serdean <aserdean@ovn.org>
* installer-windows: Add x64 installer build via command lineAlin Gabriel Serdean2017-11-141-0/+3
| | | | | | | | | | | | Add a new variable to know on which platform we are compiling. Make the msbuild command to be aware of the platform we want to build. Shorter the msbuild parameters from `property:`->`p:`. Change slashes to double slashes so msys does not get confused. Signed-off-by: Alin Gabriel Serdean <aserdean@ovn.org> Acked-by: Alin Balutoiu <abalutoiu@cloudbasesolutions.com>
* build-windows: Add check for struct timespecAlin Gabriel Serdean2017-11-141-0/+1
| | | | | | | | | | | Starting from WDK 10 the structure `timespec` is defined in <time.h>. This patch adds a check for the structure to make <pthread.h> aware of it, so it doesn't try to redefine the structure. Signed-off-by: Alin Gabriel Serdean <aserdean@ovn.org> Acked-by: Ben Pfaff <blp@ovn.org> Acked-by: Anand Kumar <kumaranand@vmware.com>
* ovs-atomic: Add C++ compatible implementation.Ben Pfaff2017-10-171-0/+3
| | | | | | | | | | | | | | | | | | | | | | | | G++ 5 does not implement the _Atomic keyword, which is part of C11 but not C++11, so the existing <stdatomic.h> based atomic implementation doesn't work. This commit adds a new implementation based on the C++11 <atomic> header. In this area, C++ is pickier about types than C, so a few of the definitions in ovs-atomic.h have to be updated to use more precise types for integer constants. This updates the code that generates cxxtest.cc to #include <config.h> (so that HAVE_ATOMIC is defined) and to automatically regenerate when the program is reconfigured (because otherwise the #include <config.h>) won't get added without a "make clean" step). "ovs-atomic.h" is not a public header, but apparently some code was using it anyway. Fixes: 9c463631e8145 ("ovs-atomic: Report error for contradictory configuration.") Reported-by: Yi-Hung Wei <yihung.wei@gmail.com> Signed-off-by: Ben Pfaff <blp@ovn.org> Acked-by: Yi-Hung Wei <yihung.wei@gmail.com>
* m4: Add pkg.m4 from pkg-config.Ben Pfaff2017-08-082-1/+216
| | | | | | | | | | | | This way, users do not have to install the m4 file from pkg-config, which was not previously a requirement. Without this change, "configure" fails when pkg.m4 is not available via aclocal: ./configure: line 26189: `        PKG_CHECK_MODULES(DPDK, libdpdk,' Reported-by: Alin Serdean <aserdean@cloudbasesolutions.com> Signed-off-by: Ben Pfaff <blp@ovn.org> Acked-by: Alin Gabriel Serdean <aserdean@cloudbasesolutions.com>
* Automatically verify that OVS header files work OK in C++ also.Ben Pfaff2017-07-312-0/+998
| | | | | | | | | | This should help address a recurring problem. This change makes the OVS header files, when parsed by a C++ compiler, require C++11 or later. Signed-off-by: Ben Pfaff <blp@ovn.org> Acked-by: Russell Bryant <russell@ovn.org>
* libopenvswitch: Rename to libfoo-X.Y.Joe Stringer2017-05-171-3/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The current intent for Open vSwitch is to maintain libopenvswitch ABI stability for minor versions, for example each release within the 2.7.z series. According to the following documentation, no changes to exported headers should be made. http://docs.openvswitch.org/en/latest/internals/contributing/libopenvswitch-abi/ However, it is occasionally necessary to make changes to {include/openvswitch,lib}/*.h headers to fix issues within a given release series. The current libtool tagging mechanism in the build system does not allow for this without creating a conflict between the libtool 'current' version and the next minor release of OVS. This patch modifies libopenvswitch build to include the MAJOR.MINOR release version in the libX name, and include the libtool CURRENT and OVS MICRO release in the libtool versioning tags to indicate library stability. The resulting format is "libfoo-X.Y.so.CURRENT.0.Z" for OVS release "X.Y.Z". Developers should still attempt to avoid introducing ABI-breaking changes within a particular OVS-X.Y release series, but if this is not possible this patch introduced a mechanism to allow an ABI-breaking fix to be introduced. In such a case, developers may update the libtool CURRENT version to indicate this breakage to library users. Signed-off-by: Joe Stringer <joe@ovn.org> Acked-by: Ben Pfaff <blp@ovn.org>
* m4: fix use of log fd vs. file in "configure"Lance Richardson2017-04-071-1/+1
| | | | | | | | | | | | | Recent Travis builds are failing when making the distcleancheck target with: ERROR: files left in build directory after distclean: ./5 Fix by treating log fd as a file descriptor instead of a file. Fixes: 7777d53d2f4b ("m4: Add hard requirements for python in "configure"") Signed-off-by: Lance Richardson <lrichard@redhat.com> Signed-off-by: Ben Pfaff <blp@ovn.org>
* m4: Add hard requirements for python in "configure"Timothy Redaelli2017-04-061-13/+17
| | | | | | | | | | Since Python 2.7 and python-six are needed to build Open vSwitch, ./configure should return an error if they are missing or if they are too old Signed-off-by: Timothy Redaelli <tredaelli@redhat.com> Signed-off-by: Ben Pfaff <blp@ovn.org> Tested-by: Timothy Redaelli <tredaelli@redhat.com> Tested-at: https://mail.openvswitch.org/pipermail/ovs-dev/2017-April/330565.html
* doc: Decrease build requirements to support RHEL7.Ilya Maximets2017-03-171-1/+1
| | | | | | | | | | | Sphinx 1.1.3 on RHEL7 is able to properly build the documentation. Discovering fixed because 'sphinx-build v1.1.3' doesn't support '--version' option. Acked-by: Stephen Finucane <stephen@that.guru> Signed-off-by: Ilya Maximets <i.maximets@samsung.com> Signed-off-by: Ben Pfaff <blp@ovn.org>
* libX: add new release / version info tagsAaron Conole2017-01-181-0/+15
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This commit uses the $PACKAGE_VERSION automake variable to construct a release and version info combination which sets the library name to be: libfoo-$(OVS_MAJOR_VERSION).so.$(OVS_MINOR_VERSION).0.$(OVS_MICRO_VERSION) where formerly, it was always: libfoo.so.1.0.0 This allows releases of Open vSwitch libraries to reflect which specific versions they came with, and sets up a psuedo ABI-versioning scheme. In this fashion, future releases of Open vSwitch could be installed alongside older releases, allowing 3rd party utilities linked against previous versions to continue to function. ex: $ ldd /path/to/utility linux-vdso.so.1 (0x00007ffe92cf6000) libopenvswitch-2.so.6 => /lib64/libopenvswitch-2.so.6 (0x00007f733b7a3000) libssl.so.10 => /lib64/libssl.so.10 (0x00007f733b530000) ... Note the library name and version information. Signed-off-by: Aaron Conole <aconole@redhat.com> Signed-off-by: Ben Pfaff <blp@ovn.org>
* make: Check for Sphinx before checking docsStephen Finucane2017-01-041-1/+13
| | | | | Signed-off-by: Stephen Finucane <stephen@that.guru> Signed-off-by: Ben Pfaff <blp@ovn.org>
* build-windows: Update for msysAlin Serdean2016-04-121-1/+1
| | | | | | | | | Building under msys2(https://msys2.github.io/) revealed a small bug while defining the path separator. Signed-off-by: Alin Gabriel Serdean <aserdean@cloudbasesolutions.com> Acked-by: Nithin Raju <nithin@vmware.com> Signed-off-by: Ben Pfaff <blp@ovn.org>
* m4: Rename compat.at to compat.m4.Ben Pfaff2016-02-262-2/+2
| | | | | | | This is used by both Autoconf and Autotest, so it doesn't make sense for it to have a .at (Autotest) extension. Signed-off-by: Ben Pfaff <blp@ovn.org>
* tests: Move Autotest compatibility macros into tests directory.Ben Pfaff2016-02-261-15/+0
| | | | | | | | | compat.at mixes compatibility for m4sh, which is used by Autoconf and Autotest, with compatibility for Autotest. It makes more sense to separate them. This moves the Autotest-only compatibility macros into an Autotest specific file. Signed-off-by: Ben Pfaff <blp@ovn.org>
* configure: Fix checking of six library for Python 3.Ilya Maximets2016-02-241-3/+3
| | | | | | | | Copied from python 2 checker but not corrected. Fixes: 8fb7d02686ed ("configure: Check for presence of Python 3.") Signed-off-by: Ilya Maximets <i.maximets@samsung.com> Signed-off-by: Russell Bryant <russell@ovn.org>
* configure: Check for presence of Python 3.Russell Bryant2016-02-221-0/+42
| | | | | | | | | The configure script already checked for Python 2 (>=2.7). Add another check for Python 3 (>=3.4). This will be used later for automatically running tests with Python 3 as well if available. Signed-off-by: Russell Bryant <russell@ovn.org> Acked-by: Ben Pfaff <blp@ovn.org>
* python: Fix xmlrpclib imports.Russell Bryant2016-01-201-0/+6
| | | | | | | | | | | | | | Fix imports of xmlrpclib to be compatible with Python 3. Python 2 had xmlrpclib (client) and SimpleXMLRPCServer (server). In Python 3, these have been renamed to xmlrpc.client and xmlrpc.server. The solution implemented here is to use the six library. It may seem excessive for this particular issue, but the six library provides helpers for Python 2 and 3 compatibility for many different issues. This is just the first of many uses of the six library. Signed-off-by: Russell Bryant <russell@ovn.org> Acked-by: Ben Pfaff <blp@ovn.org>
* python: Run flake8 at build time.Russell Bryant2016-01-051-0/+12
| | | | | | | | | | | | If flake8 is installed, run it at build time. Similar to most Makefile targets, run it once and then only run again if the files change. flake8 is set to ignore all error and warning types that currently occur. Future patches will remove items from the ignore list as they are resolved. Signed-off-by: Russell Bryant <russell@ovn.org> Acked-by: Ben Pfaff <blp@ovn.org>
* confifugre: Fix broken sed calls in shell code.Alin Serdean2015-12-141-2/+2
| | | | | | | | | | Commit 43000bc (openvswitch.m4: Portability improvement), which introduced a portability improvement, also introduces two bugs. This commit fixes both bug, by adding the command for $SED 's' and changes to x86 for 32 bit instead of x64. Signed-off-by: Alin Gabriel Serdean <aserdean@cloudbasesolutions.com> Signed-off-by: Ben Pfaff <blp@ovn.org>
* openvswitch.m4: Portability improvementYAMAMOTO Takashi2015-11-261-2/+2
| | | | | | | | ${parameter/pattern/string} substituion is not portable. Replace them with $SED equivalent. Signed-off-by: YAMAMOTO Takashi <yamamoto@midokura.com> Acked-by: Ben Pfaff <blp@ovn.org>
* configure: add configuration options for libcap-ngAndy Zhou2015-09-301-0/+36
| | | | | | | | | | | | | | | | | | | Add configuration option for enabling or disabling linking with libcap-ng. Since capabilities are a security feature, the libcapng option is handled as follows: - no option: use libcapng if it's present --disable-libcapng: do not use libcapng --enable-libcapng: do use libcapng and fail configuration if it's missing On Linux, not linking with libcapng makes all OVS daemons fail when --user option is specified. Signed-off-by: Andy Zhou <azhou@nicira.com> Acked-by: Ben Pfaff <blp@nicira.com>
* Add build system for compiling under MSVC x64Alin Serdean2015-09-291-2/+31
| | | | | | | | | | | | | | | This patch adds the modifications needed to compile under x64 under Windows: - created a new macro for testing if we are compiling under x64. this will define the linker flag: "/MACHINE:X64" as per documentation (https://msdn.microsoft.com/en-us/library/9yb4317s.aspx). - added x64 pthread libraries under the pthread defines - add documentation on how to build under x64 Signed-off-by: Alin Gabriel Serdean <aserdean@cloudbasesolutions.com> Signed-off-by: Gurucharan Shetty <gshetty@nicira.com>
* tests: Reduce user burden for running "make check".Alin Serdean2015-06-251-2/+5
| | | | | | | | | With this commit, users do not have to manually add the pthread-win32 DLL directory to their PATH. Signed-off-by: Alin Gabriel Serdean <aserdean@cloudbasesolutions.com> Co-authored-by: Ben Pfaff <blp@nicira.com> Signed-off-by: Ben Pfaff <blp@nicira.com>
* Increase prerequisite from Python 2.4 to Python 2.7.Ben Pfaff2015-06-231-34/+4
| | | | | | | This means that users of XenServer 6.5 and earlier will need to install Python 2.7. Signed-off-by: Ben Pfaff <blp@nicira.com>