usrp-users@lists.ettus.com

Discussion and technical support related to USRP, UHD, RFNoC

View all threads

Build error for UHD 4.7.0.0-0-ga5ed1872 on mingw64

CG
Chris Gorman
Tue, Jul 2, 2024 2:13 PM

Hello USRP users,

I'm trying to update my build from 4.6.0.0 to 4.7.0.0 for UHD on
msys2/mingw64.  During the build I get the following error...

$ C:\msys64\mingw64\bin\c++.exe
-DBOOST_ASIO_DISABLE_STD_EXPERIMENTAL_STRING_VIEW
-DBOOST_ASIO_DISABLE_STD_STRING_VIEW -DBOOST_ATOMIC_DYN_LINK
-DBOOST_ATOMIC_NO_LIB -DBOOST_CHRONO_DYN_LINK -DBOOST_CHRONO_NO_LIB
-DBOOST_DATE_TIME_DYN_LINK -DBOOST_DATE_TIME_NO_LIB
-DBOOST_ERROR_CODE_HEADER_ONLY -DBOOST_FILESYSTEM_DYN_LINK
-DBOOST_FILESYSTEM_NO_LIB -DBOOST_PROGRAM_OPTIONS_DYN_LINK
-DBOOST_PROGRAM_OPTIONS_NO_LIB -DBOOST_SERIALIZATION_DYN_LINK
-DBOOST_SERIALIZATION_NO_LIB -DBOOST_SYSTEM_DYN_LINK
-DBOOST_SYSTEM_NO_LIB -DBOOST_TEST_DYN_LINK -DBOOST_TEST_MAIN
-DBOOST_THREAD_DYN_LINK -DBOOST_THREAD_NO_LIB
-DBOOST_UNIT_TEST_FRAMEWORK_DYN_LINK
-DBOOST_UNIT_TEST_FRAMEWORK_NO_LIB -DHAVE_CONFIG_H -DNOMINMAX
-DUHD_LOG_CONSOLE_COLOR -DUHD_LOG_CONSOLE_LEVEL=2
-DUHD_LOG_FILE_LEVEL=2 -DUHD_LOG_MIN_LEVEL=1 -D_WIN32_WINNT=0x0501
-IC:/msys64/home/chris/src/uhd/host/build/include
-IC:/msys64/home/chris/src/uhd/host/include
-IC:/msys64/home/chris/src/uhd/host/lib/include
-IC:/msys64/home/chris/src/uhd/host/build/lib/include
-IC:/msys64/home/chris/src/uhd/host/tests/common
-IC:/msys64/home/chris/src/uhd/host/build/lib/rfnoc
-IC:/msys64/home/chris/src/uhd/host/lib/rfnoc
-IC:/msys64/home/chris/src/uhd/host/build/lib/ic_reg_maps
-IC:/msys64/home/chris/src/uhd/host/lib/deps/rpclib/include
-IC:/msys64/home/chris/src/uhd/host/lib/deps/flatbuffers/include
-IC:/msys64/home/chris/src/uhd/host/build/cmrc/include -O3 -DNDEBUG
-std=gnu++14  -Wall -Wextra -Wsign-compare -MD -MT
tests/CMakeFiles/isatty_test.dir/isatty_test.cpp.obj -MF
tests\CMakeFiles\isatty_test.dir\isatty_test.cpp.obj.d -o
tests/CMakeFiles/isatty_test.dir/isatty_test.cpp.obj -c
C:/msys64/home/chris/src/uhd/host/tests/isatty_test.cpp
In file included from
C:/msys64/mingw64/include/boost/assert/source_location.hpp:15,
from C:/msys64/mingw64/include/boost/exception/exception.hpp:9,
from C:/msys64/mingw64/include/boost/throw_exception.hpp:21,
from
C:/msys64/mingw64/include/boost/smart_ptr/detail/shared_count.hpp:31,
from
C:/msys64/mingw64/include/boost/smart_ptr/shared_ptr.hpp:18,
from C:/msys64/mingw64/include/boost/shared_ptr.hpp:17,
from
C:/msys64/mingw64/include/boost/test/tools/assertion_result.hpp:21,
from
C:/msys64/mingw64/include/boost/test/tools/old/impl.hpp:20,
from C:/msys64/mingw64/include/boost/test/test_tools.hpp:46,
from C:/msys64/mingw64/include/boost/test/unit_test.hpp:18,
from C:/msys64/home/chris/src/uhd/host/tests/isatty_test.cpp:8:
C:/msys64/mingw64/include/c++/14.1.0/cstring:78:11: error: 'memchr'
has not been declared in '::'
78 |  using ::memchr;
|          ^~~~~~
C:/msys64/mingw64/include/c++/14.1.0/cstring:79:11: error: 'memcmp'
has not been declared in '::'
79 |  using ::memcmp;
|          ^~~~~~
C:/msys64/mingw64/include/c++/14.1.0/cstring:82:11: error: 'memset'
has not been declared in '::'
82 |  using ::memset;
|          ^~~~~~
C:/msys64/mingw64/include/c++/14.1.0/cstring:83:11: error: 'strcat'
has not been declared in '::'
83 |  using ::strcat;
|          ^~~~~~
C:/msys64/mingw64/include/c++/14.1.0/cstring:84:11: error: 'strcmp'
has not been declared in '::'
84 |  using ::strcmp;
|          ^~~~~~
C:/msys64/mingw64/include/c++/14.1.0/cstring:85:11: error: 'strcoll'
has not been declared in '::'
85 |  using ::strcoll;
|          ^~~~~~~
C:/msys64/mingw64/include/c++/14.1.0/cstring:86:11: error: 'strcpy'
has not been declared in '::'
86 |  using ::strcpy;
|          ^~~~~~
C:/msys64/mingw64/include/c++/14.1.0/cstring:87:11: error: 'strcspn'
has not been declared in '::'
87 |  using ::strcspn;
|          ^~~~~~~
C:/msys64/mingw64/include/c++/14.1.0/cstring:88:11: error: 'strerror'
has not been declared in '::'
88 |  using ::strerror;
|          ^~~~~~~~
C:/msys64/mingw64/include/c++/14.1.0/cstring:89:11: error: 'strlen'
has not been declared in '::'
89 |  using ::strlen;
|          ^~~~~~
C:/msys64/mingw64/include/c++/14.1.0/cstring:90:11: error: 'strncat'
has not been declared in '::'
90 |  using ::strncat;
|          ^~~~~~~
C:/msys64/mingw64/include/c++/14.1.0/cstring:91:11: error: 'strncmp'
has not been declared in '::'
91 |  using ::strncmp;
|          ^~~~~~~
C:/msys64/mingw64/include/c++/14.1.0/cstring:92:11: error: 'strncpy'
has not been declared in '::'
92 |  using ::strncpy;
|          ^~~~~~~
C:/msys64/mingw64/include/c++/14.1.0/cstring:93:11: error: 'strspn'
has not been declared in '::'
93 |  using ::strspn;
|          ^~~~~~
C:/msys64/mingw64/include/c++/14.1.0/cstring:95:11: error: 'strtok'
has not been declared in '::'
95 |  using ::strtok;
|          ^~~~~~
C:/msys64/mingw64/include/c++/14.1.0/cstring:97:11: error: 'strxfrm'
has not been declared in '::'
97 |  using ::strxfrm;
|          ^~~~~~~
C:/msys64/mingw64/include/c++/14.1.0/cstring:98:11: error: 'strchr'
has not been declared in '::'
98 |  using ::strchr;
|          ^~~~~~
C:/msys64/mingw64/include/c++/14.1.0/cstring:99:11: error: 'strpbrk'
has not been declared in '::'
99 |  using ::strpbrk;
|          ^~~~~~~
C:/msys64/mingw64/include/c++/14.1.0/cstring:100:11: error: 'strrchr'
has not been declared in '::'
100 |  using ::strrchr;
|          ^~~~~~~
C:/msys64/mingw64/include/c++/14.1.0/cstring:101:11: error: 'strstr'
has not been declared in '::'
101 |  using ::strstr;
|          ^~~~~~
C:/msys64/mingw64/include/boost/assert/source_location.hpp: In
function 'bool boost::operator==(const source_location&, const
source_location&)':
C:/msys64/mingw64/include/boost/assert/source_location.hpp:126:21:
error: 'strcmp' is not a member of 'std'; did you mean 'strchr'?
126 |        return std::strcmp( s1.file
, s2.file_ ) == 0 &&
std::strcmp( s1.function_, s2.function_ ) == 0 && s1.line_ == s2.line_
&& s1.column_ == s2.column_;
|                    ^~~~~~
|                    strchr
C:/msys64/mingw64/include/boost/assert/source_location.hpp:126:63:
error: 'strcmp' is not a member of 'std'; did you mean 'strchr'?
126 |        return std::strcmp( s1.file_, s2.file_ ) == 0 &&
std::strcmp( s1.function_, s2.function_ ) == 0 && s1.line_ == s2.line_
&& s1.column_ == s2.column_;
|                                                              ^~~~~~
|                                                              strchr
In file included from C:/msys64/mingw64/include/boost/mpl/for_each.hpp:29,
from
C:/msys64/mingw64/include/boost/test/tree/test_case_template.hpp:28,
from
C:/msys64/mingw64/include/boost/test/unit_test_suite.hpp:19,
from C:/msys64/mingw64/include/boost/test/unit_test.hpp:19:
C:/msys64/mingw64/include/boost/utility/value_init.hpp: In constructor
'boost::detail::zero_init::zero_init(void*, std::size_t)':
C:/msys64/mingw64/include/boost/utility/value_init.hpp:73:12: error:
'memset' is not a member of 'std'; did you mean 'wmemset'?
73 |      std::memset( p, 0, n );
|            ^~~~~~
|            wmemset

It looks like I'm including something I shouldn't, but I don't know what.

My cmake build log is ...

$ cmake -DCMAKE_INSTALL_PREFIX=c:/msys64/mingw64 -DENABLE_PYTHON_API=ON ..

-- Configuring the Python interpreter...
-- Manually determining build Python version...
-- Python interpreter: C:/msys64/mingw64/bin/python3.11.exe Version: 3.11.9
-- Override with: -DPYTHON_EXECUTABLE=<path-to-python>
-- Manually determining runtime Python version...
-- Python runtime interpreter: C:/msys64/mingw64/bin/python3.11.exe
Version: 3.11.9
-- Override with: -DRUNTIME_PYTHON_EXECUTABLE=<path-to-python>
-- Finding Python Libraries...
CMake Warning (dev) at cmake/Modules/UHDPython.cmake:313 (find_package):
Policy CMP0148 is not set: The FindPythonInterp and FindPythonLibs modules
are removed.  Run "cmake --help-policy CMP0148" for policy details.  Use
the cmake_policy command to set the policy and suppress this warning.

Call Stack (most recent call first):
cmake/Modules/UHDVersion.cmake:9 (include)
cmake/Modules/UHDPackage.cmake:9 (include)
CMakeLists.txt:107 (include)
This warning is for project developers.  Use -Wno-dev to suppress it.

-- Python Libraries: C:/msys64/mingw64/lib/libpython3.11.dll.a
-- Python include directories: C:/msys64/mingw64/include/python3.11
-- pybind11::lto disabled (problems with undefined symbols for MinGW for now)
-- pybind11::thin_lto disabled (problems with undefined symbols for
MinGW for now)
-- Operating on master branch.
-- Using UHD Images Directory: C:\msys64\mingw64\share\uhd\images
-- Build type not specified: defaulting to release.

-- Configuring Boost C++ Libraries...

-- Checking for Boost version 1.65 or greater
--  Looking for required Boost components...
--  Enabling Boost Error Code Header Only
--    Disabling boost::asio use of std::string_view
--  Boost version: 1.85.0
--  Boost include directories: C:/msys64/mingw64/include
--  Boost library directories: C:/msys64/mingw64/lib
--  Boost libraries:
Boost::chrono;Boost::date_time;Boost::filesystem;Boost::program_options;Boost::serialization;Boost::thread;Boost::unit_test_framework;Boost::system
-- Looking for Boost version 1.65 or greater - found

-- Python checking for compatible Python version
-- Python checking for compatible Python version - 3.11.9 satisfies
minimum required version 3.7

-- Python checking for Mako templates module
-- Python checking for Mako templates module - 1.3.5 satisfies minimum
required version 0.4.2

-- Python checking for requests module
-- Python checking for requests module - 2.32.2 satisfies minimum
required version 2.0

-- Python checking for numpy module
-- Python checking for numpy module - 1.26.4 satisfies minimum
required version 1.11

-- Python checking for ruamel.yaml module
-- Python checking for ruamel.yaml module - 0.18.6 satisfies minimum
required version 0.15

-- Configuring LibUHD support...
--  Dependency Boost_FOUND = TRUE
--  Dependency HAVE_PYTHON_MODULE_MAKO = TRUE
--  Enabling LibUHD support.
--  Override with -DENABLE_LIBUHD=ON/OFF

-- Configuring LibUHD - C API support...
--  Dependency ENABLE_LIBUHD = ON
--  Enabling LibUHD - C API support.
--  Override with -DENABLE_C_API=ON/OFF

-- Configuring LibUHD - Python API support...
--  Dependency ENABLE_LIBUHD = ON
--  Dependency HAVE_PYTHON_MODULE_NUMPY = TRUE
--  Dependency HAVE_PYTHON_LIBS = TRUE
--  Enabling LibUHD - Python API support.
--  Override with -DENABLE_PYTHON_API=ON/OFF

-- Configuring Examples support...
--  Dependency ENABLE_LIBUHD = ON
--  Enabling Examples support.
--  Override with -DENABLE_EXAMPLES=ON/OFF

-- Configuring Utils support...
--  Dependency ENABLE_LIBUHD = ON
--  Enabling Utils support.
--  Override with -DENABLE_UTILS=ON/OFF

-- Configuring Tests support...
--  Dependency ENABLE_LIBUHD = ON
--  Enabling Tests support.
--  Override with -DENABLE_TESTS=ON/OFF

-- Configuring Python Module (Utils only) support...
--  Dependency HAVE_PYTHON_MODULE_NUMPY = TRUE
--  Dependency HAVE_PYTHON_MODULE_MAKO = TRUE
--  Dependency HAVE_PYTHON_MODULE_YAML = TRUE
--  Enabling Python Module (Utils only) support.
--  Override with -DENABLE_PYMOD_UTILS=ON/OFF

CMake Warning (dev) at
C:/msys64/mingw64/share/cmake/Modules/FindPackageHandleStandardArgs.cmake:447
(message):
find_package() specify a version range but the module DPDK does not
support this capability.  Only the lower endpoint of the range will be
used.
Call Stack (most recent call first):
cmake/Modules/FindDPDK.cmake:86 (find_package_handle_standard_args)
lib/CMakeLists.txt:63 (find_package)
This warning is for project developers.  Use -Wno-dev to suppress it.

-- Could NOT find DPDK (missing: DPDK_INCLUDE_DIRS DPDK_LIBRARIES)
(Required is at least version "18.11")

-- Configuring USB support...
--  Dependency ENABLE_LIBUHD = ON
--  Dependency LIBUSB_FOUND = TRUE
--  Enabling USB support.
--  Override with -DENABLE_USB=ON/OFF

-- Configuring B100 support...
--  Dependency ENABLE_LIBUHD = ON
--  Dependency ENABLE_USB = ON
--  Enabling B100 support.
--  Override with -DENABLE_B100=ON/OFF

-- Configuring B200 support...
--  Dependency ENABLE_LIBUHD = ON
--  Dependency ENABLE_USB = ON
--  Enabling B200 support.
--  Override with -DENABLE_B200=ON/OFF

-- Configuring USRP1 support...
--  Dependency ENABLE_LIBUHD = ON
--  Dependency ENABLE_USB = ON
--  Enabling USRP1 support.
--  Override with -DENABLE_USRP1=ON/OFF

-- Configuring USRP2 support...
--  Dependency ENABLE_LIBUHD = ON
--  Enabling USRP2 support.
--  Override with -DENABLE_USRP2=ON/OFF

-- Configuring X300 support...
--  Dependency ENABLE_LIBUHD = ON
--  Enabling X300 support.
--  Override with -DENABLE_X300=ON/OFF

-- Configuring MPMD support...
--  Dependency ENABLE_LIBUHD = ON
--  Enabling MPMD support.
--  Override with -DENABLE_MPMD=ON/OFF

-- Configuring SIM support...
--  Dependency ENABLE_LIBUHD = ON
--  Dependency ENABLE_MPMD = ON
--  Dependency ENABLE_PYTHON_API = ON
--  Enabling SIM support.
--  Override with -DENABLE_SIM=ON/OFF

-- Configuring N300 support...
--  Dependency ENABLE_LIBUHD = ON
--  Dependency ENABLE_MPMD = ON
--  Enabling N300 support.
--  Override with -DENABLE_N300=ON/OFF

-- Configuring N320 support...
--  Dependency ENABLE_LIBUHD = ON
--  Dependency ENABLE_MPMD = ON
--  Enabling N320 support.
--  Override with -DENABLE_N320=ON/OFF

-- Configuring E320 support...
--  Dependency ENABLE_LIBUHD = ON
--  Dependency ENABLE_MPMD = ON
--  Enabling E320 support.
--  Override with -DENABLE_E320=ON/OFF

-- Configuring E300 support...
--  Dependency ENABLE_LIBUHD = ON
--  Dependency ENABLE_MPMD = ON
--  Enabling E300 support.
--  Override with -DENABLE_E300=ON/OFF

-- Configuring X400 support...
--  Dependency ENABLE_LIBUHD = ON
--  Dependency ENABLE_MPMD = ON
--  Enabling X400 support.
--  Override with -DENABLE_X400=ON/OFF

-- Configuring OctoClock support...
--  Dependency ENABLE_LIBUHD = ON
--  Enabling OctoClock support.
--  Override with -DENABLE_OCTOCLOCK=ON/OFF

-- Configuring DPDK support...
--  Dependency ENABLE_MPMD = ON
--  Dependency DPDK_FOUND = FALSE
--  Disabling DPDK support.
--  Override with -DENABLE_DPDK=ON/OFF

--
-- Configuring priority scheduling...
--  Priority scheduling supported through pthread_setschedparam.
--  Setting thread names is supported through pthread_setname_np.
--  Setting thread affinity is supported through windows SetThreadAffinityMask.

-- Configuring module loading...
--  Module loading supported through LoadLibrary.

-- Configuring atomics support...
--  Atomics support is built-in, no linking required.

-- Processing NI-RIO FPGA LVBITX Bitstreams...
--  Using x300.lvbitx_base for codegen
--  Using x310.lvbitx_base for codegen

-- USB support enabled via libusb.

-- Configuring interface address discovery...
--  Interface address discovery supported through SIO_GET_INTERFACE_LIST.

-- Loading build info.
CMake Deprecation Warning at cmake/Modules/CMakeRC.cmake:63
(cmake_minimum_required):
Compatibility with CMake < 3.5 will be removed from a future version of
CMake.

Update the VERSION argument <min> value or use a ...<max> suffix to tell
CMake that the project does not need compatibility with older versions.
Call Stack (most recent call first):
lib/rc/CMakeLists.txt:7 (include)

--
-- Adding B2XX device test target
-- Adding X3x0 device test target
-- Adding E3XX device test target
-- Adding N3XX device test target
-- Adding E32x device test target
-- Adding X410 device test target
-- Adding X440 device test target

--
-- Configuring Manual support...
--  Dependency DOXYGEN_FOUND = YES
--  Enabling Manual support.
--  Override with -DENABLE_MANUAL=ON/OFF

-- Configuring API/Doxygen support...
--  Dependency DOXYGEN_FOUND = YES
--  Enabling API/Doxygen support.
--  Override with -DENABLE_DOXYGEN=ON/OFF

-- Found GZip: C:/msys64/usr/bin/gzip.exe

-- Compressed Man Pages enabled
--  Override with -DENABLE_MAN_PAGE_COMPRESSION=ON/OFF

-- Configuring Man Pages support...
--  Dependency NOT_WIN32 =
--  Dependency GZIP_FOUND = TRUE
--  Disabling Man Pages support.
--  Override with -DENABLE_MAN_PAGES=ON/OFF
-- Using Pybind11 from: C:/msys64/mingw64/include

-- Python checking for gevent module
-- Python checking for gevent module - "import gevent" failed (is it installed?)

-- Python checking for mprpc module
-- Python checking for mprpc module - "import mprpc" failed (is it installed?)

-- Python checking for pyudev module
-- Python checking for pyudev module - "import pyudev" failed (is it installed?)

-- Python checking for pyroute2 module
-- Python checking for pyroute2 module - "import pyroute2" failed (is
it installed?)
-- MPM unit test Python package prerequisites not met; skipping

--
-- Python checking for virtual environment
-- Python checking for virtual environment - "assert sys.prefix !=
sys.base_prefix" failed
-- Installing 'uhd' Python module to:
C:/msys64/mingw64/lib/python3.11/site-packages

-- ######################################################
-- # UHD enabled components
-- ######################################################
--  * LibUHD
--  * LibUHD - C API
--  * LibUHD - Python API
--  * Examples
--  * Utils
--  * Tests
--  * Python Module (Utils only)
--  * USB
--  * B100
--  * B200
--  * USRP1
--  * USRP2
--  * X300
--  * MPMD
--  * SIM
--  * N300
--  * N320
--  * E320
--  * E300
--  * X400
--  * OctoClock
--  * Manual
--  * API/Doxygen

-- ######################################################
-- # UHD disabled components
-- ######################################################
--  * DPDK
--  * Man Pages

-- ******************************************************
-- * You are building the UHD development master branch.
-- * For production code, we recommend our stable,
-- * releases or using the release branch (maint).
-- ******************************************************
-- Building version: 4.7.0.0-0-ga5ed1872
-- Using install prefix: C:/msys64/mingw64
-- Configuring done (3.7s)
-- Generating done (0.7s)
-- Build files have been written to: C:/msys64/home/chris/src/uhd/host/build

I'm also applying a patch to get it to build.  It was needed for
4.6.0.0 and I've had to make some tweaks.  None of the files touched
by the patch are part of the error, but I'll include it for
completeness.

Thanks in advance,

Chris

Hello USRP users, I'm trying to update my build from 4.6.0.0 to 4.7.0.0 for UHD on msys2/mingw64. During the build I get the following error... $ C:\msys64\mingw64\bin\c++.exe -DBOOST_ASIO_DISABLE_STD_EXPERIMENTAL_STRING_VIEW -DBOOST_ASIO_DISABLE_STD_STRING_VIEW -DBOOST_ATOMIC_DYN_LINK -DBOOST_ATOMIC_NO_LIB -DBOOST_CHRONO_DYN_LINK -DBOOST_CHRONO_NO_LIB -DBOOST_DATE_TIME_DYN_LINK -DBOOST_DATE_TIME_NO_LIB -DBOOST_ERROR_CODE_HEADER_ONLY -DBOOST_FILESYSTEM_DYN_LINK -DBOOST_FILESYSTEM_NO_LIB -DBOOST_PROGRAM_OPTIONS_DYN_LINK -DBOOST_PROGRAM_OPTIONS_NO_LIB -DBOOST_SERIALIZATION_DYN_LINK -DBOOST_SERIALIZATION_NO_LIB -DBOOST_SYSTEM_DYN_LINK -DBOOST_SYSTEM_NO_LIB -DBOOST_TEST_DYN_LINK -DBOOST_TEST_MAIN -DBOOST_THREAD_DYN_LINK -DBOOST_THREAD_NO_LIB -DBOOST_UNIT_TEST_FRAMEWORK_DYN_LINK -DBOOST_UNIT_TEST_FRAMEWORK_NO_LIB -DHAVE_CONFIG_H -DNOMINMAX -DUHD_LOG_CONSOLE_COLOR -DUHD_LOG_CONSOLE_LEVEL=2 -DUHD_LOG_FILE_LEVEL=2 -DUHD_LOG_MIN_LEVEL=1 -D_WIN32_WINNT=0x0501 -IC:/msys64/home/chris/src/uhd/host/build/include -IC:/msys64/home/chris/src/uhd/host/include -IC:/msys64/home/chris/src/uhd/host/lib/include -IC:/msys64/home/chris/src/uhd/host/build/lib/include -IC:/msys64/home/chris/src/uhd/host/tests/common -IC:/msys64/home/chris/src/uhd/host/build/lib/rfnoc -IC:/msys64/home/chris/src/uhd/host/lib/rfnoc -IC:/msys64/home/chris/src/uhd/host/build/lib/ic_reg_maps -IC:/msys64/home/chris/src/uhd/host/lib/deps/rpclib/include -IC:/msys64/home/chris/src/uhd/host/lib/deps/flatbuffers/include -IC:/msys64/home/chris/src/uhd/host/build/_cmrc/include -O3 -DNDEBUG -std=gnu++14 -Wall -Wextra -Wsign-compare -MD -MT tests/CMakeFiles/isatty_test.dir/isatty_test.cpp.obj -MF tests\CMakeFiles\isatty_test.dir\isatty_test.cpp.obj.d -o tests/CMakeFiles/isatty_test.dir/isatty_test.cpp.obj -c C:/msys64/home/chris/src/uhd/host/tests/isatty_test.cpp In file included from C:/msys64/mingw64/include/boost/assert/source_location.hpp:15, from C:/msys64/mingw64/include/boost/exception/exception.hpp:9, from C:/msys64/mingw64/include/boost/throw_exception.hpp:21, from C:/msys64/mingw64/include/boost/smart_ptr/detail/shared_count.hpp:31, from C:/msys64/mingw64/include/boost/smart_ptr/shared_ptr.hpp:18, from C:/msys64/mingw64/include/boost/shared_ptr.hpp:17, from C:/msys64/mingw64/include/boost/test/tools/assertion_result.hpp:21, from C:/msys64/mingw64/include/boost/test/tools/old/impl.hpp:20, from C:/msys64/mingw64/include/boost/test/test_tools.hpp:46, from C:/msys64/mingw64/include/boost/test/unit_test.hpp:18, from C:/msys64/home/chris/src/uhd/host/tests/isatty_test.cpp:8: C:/msys64/mingw64/include/c++/14.1.0/cstring:78:11: error: 'memchr' has not been declared in '::' 78 | using ::memchr; | ^~~~~~ C:/msys64/mingw64/include/c++/14.1.0/cstring:79:11: error: 'memcmp' has not been declared in '::' 79 | using ::memcmp; | ^~~~~~ C:/msys64/mingw64/include/c++/14.1.0/cstring:82:11: error: 'memset' has not been declared in '::' 82 | using ::memset; | ^~~~~~ C:/msys64/mingw64/include/c++/14.1.0/cstring:83:11: error: 'strcat' has not been declared in '::' 83 | using ::strcat; | ^~~~~~ C:/msys64/mingw64/include/c++/14.1.0/cstring:84:11: error: 'strcmp' has not been declared in '::' 84 | using ::strcmp; | ^~~~~~ C:/msys64/mingw64/include/c++/14.1.0/cstring:85:11: error: 'strcoll' has not been declared in '::' 85 | using ::strcoll; | ^~~~~~~ C:/msys64/mingw64/include/c++/14.1.0/cstring:86:11: error: 'strcpy' has not been declared in '::' 86 | using ::strcpy; | ^~~~~~ C:/msys64/mingw64/include/c++/14.1.0/cstring:87:11: error: 'strcspn' has not been declared in '::' 87 | using ::strcspn; | ^~~~~~~ C:/msys64/mingw64/include/c++/14.1.0/cstring:88:11: error: 'strerror' has not been declared in '::' 88 | using ::strerror; | ^~~~~~~~ C:/msys64/mingw64/include/c++/14.1.0/cstring:89:11: error: 'strlen' has not been declared in '::' 89 | using ::strlen; | ^~~~~~ C:/msys64/mingw64/include/c++/14.1.0/cstring:90:11: error: 'strncat' has not been declared in '::' 90 | using ::strncat; | ^~~~~~~ C:/msys64/mingw64/include/c++/14.1.0/cstring:91:11: error: 'strncmp' has not been declared in '::' 91 | using ::strncmp; | ^~~~~~~ C:/msys64/mingw64/include/c++/14.1.0/cstring:92:11: error: 'strncpy' has not been declared in '::' 92 | using ::strncpy; | ^~~~~~~ C:/msys64/mingw64/include/c++/14.1.0/cstring:93:11: error: 'strspn' has not been declared in '::' 93 | using ::strspn; | ^~~~~~ C:/msys64/mingw64/include/c++/14.1.0/cstring:95:11: error: 'strtok' has not been declared in '::' 95 | using ::strtok; | ^~~~~~ C:/msys64/mingw64/include/c++/14.1.0/cstring:97:11: error: 'strxfrm' has not been declared in '::' 97 | using ::strxfrm; | ^~~~~~~ C:/msys64/mingw64/include/c++/14.1.0/cstring:98:11: error: 'strchr' has not been declared in '::' 98 | using ::strchr; | ^~~~~~ C:/msys64/mingw64/include/c++/14.1.0/cstring:99:11: error: 'strpbrk' has not been declared in '::' 99 | using ::strpbrk; | ^~~~~~~ C:/msys64/mingw64/include/c++/14.1.0/cstring:100:11: error: 'strrchr' has not been declared in '::' 100 | using ::strrchr; | ^~~~~~~ C:/msys64/mingw64/include/c++/14.1.0/cstring:101:11: error: 'strstr' has not been declared in '::' 101 | using ::strstr; | ^~~~~~ C:/msys64/mingw64/include/boost/assert/source_location.hpp: In function 'bool boost::operator==(const source_location&, const source_location&)': C:/msys64/mingw64/include/boost/assert/source_location.hpp:126:21: error: 'strcmp' is not a member of 'std'; did you mean 'strchr'? 126 | return std::strcmp( s1.file_, s2.file_ ) == 0 && std::strcmp( s1.function_, s2.function_ ) == 0 && s1.line_ == s2.line_ && s1.column_ == s2.column_; | ^~~~~~ | strchr C:/msys64/mingw64/include/boost/assert/source_location.hpp:126:63: error: 'strcmp' is not a member of 'std'; did you mean 'strchr'? 126 | return std::strcmp( s1.file_, s2.file_ ) == 0 && std::strcmp( s1.function_, s2.function_ ) == 0 && s1.line_ == s2.line_ && s1.column_ == s2.column_; | ^~~~~~ | strchr In file included from C:/msys64/mingw64/include/boost/mpl/for_each.hpp:29, from C:/msys64/mingw64/include/boost/test/tree/test_case_template.hpp:28, from C:/msys64/mingw64/include/boost/test/unit_test_suite.hpp:19, from C:/msys64/mingw64/include/boost/test/unit_test.hpp:19: C:/msys64/mingw64/include/boost/utility/value_init.hpp: In constructor 'boost::detail::zero_init::zero_init(void*, std::size_t)': C:/msys64/mingw64/include/boost/utility/value_init.hpp:73:12: error: 'memset' is not a member of 'std'; did you mean 'wmemset'? 73 | std::memset( p, 0, n ); | ^~~~~~ | wmemset It looks like I'm including something I shouldn't, but I don't know what. My cmake build log is ... $ cmake -DCMAKE_INSTALL_PREFIX=c:/msys64/mingw64 -DENABLE_PYTHON_API=ON .. -- -- Configuring the Python interpreter... -- Manually determining build Python version... -- Python interpreter: C:/msys64/mingw64/bin/python3.11.exe Version: 3.11.9 -- Override with: -DPYTHON_EXECUTABLE=<path-to-python> -- Manually determining runtime Python version... -- Python runtime interpreter: C:/msys64/mingw64/bin/python3.11.exe Version: 3.11.9 -- Override with: -DRUNTIME_PYTHON_EXECUTABLE=<path-to-python> -- Finding Python Libraries... CMake Warning (dev) at cmake/Modules/UHDPython.cmake:313 (find_package): Policy CMP0148 is not set: The FindPythonInterp and FindPythonLibs modules are removed. Run "cmake --help-policy CMP0148" for policy details. Use the cmake_policy command to set the policy and suppress this warning. Call Stack (most recent call first): cmake/Modules/UHDVersion.cmake:9 (include) cmake/Modules/UHDPackage.cmake:9 (include) CMakeLists.txt:107 (include) This warning is for project developers. Use -Wno-dev to suppress it. -- Python Libraries: C:/msys64/mingw64/lib/libpython3.11.dll.a -- Python include directories: C:/msys64/mingw64/include/python3.11 -- pybind11::lto disabled (problems with undefined symbols for MinGW for now) -- pybind11::thin_lto disabled (problems with undefined symbols for MinGW for now) -- Operating on master branch. -- Using UHD Images Directory: C:\msys64\mingw64\share\uhd\images -- Build type not specified: defaulting to release. -- -- Configuring Boost C++ Libraries... -- -- Checking for Boost version 1.65 or greater -- Looking for required Boost components... -- Enabling Boost Error Code Header Only -- Disabling boost::asio use of std::string_view -- Boost version: 1.85.0 -- Boost include directories: C:/msys64/mingw64/include -- Boost library directories: C:/msys64/mingw64/lib -- Boost libraries: Boost::chrono;Boost::date_time;Boost::filesystem;Boost::program_options;Boost::serialization;Boost::thread;Boost::unit_test_framework;Boost::system -- Looking for Boost version 1.65 or greater - found -- -- Python checking for compatible Python version -- Python checking for compatible Python version - 3.11.9 satisfies minimum required version 3.7 -- -- Python checking for Mako templates module -- Python checking for Mako templates module - 1.3.5 satisfies minimum required version 0.4.2 -- -- Python checking for requests module -- Python checking for requests module - 2.32.2 satisfies minimum required version 2.0 -- -- Python checking for numpy module -- Python checking for numpy module - 1.26.4 satisfies minimum required version 1.11 -- -- Python checking for ruamel.yaml module -- Python checking for ruamel.yaml module - 0.18.6 satisfies minimum required version 0.15 -- -- Configuring LibUHD support... -- Dependency Boost_FOUND = TRUE -- Dependency HAVE_PYTHON_MODULE_MAKO = TRUE -- Enabling LibUHD support. -- Override with -DENABLE_LIBUHD=ON/OFF -- -- Configuring LibUHD - C API support... -- Dependency ENABLE_LIBUHD = ON -- Enabling LibUHD - C API support. -- Override with -DENABLE_C_API=ON/OFF -- -- Configuring LibUHD - Python API support... -- Dependency ENABLE_LIBUHD = ON -- Dependency HAVE_PYTHON_MODULE_NUMPY = TRUE -- Dependency HAVE_PYTHON_LIBS = TRUE -- Enabling LibUHD - Python API support. -- Override with -DENABLE_PYTHON_API=ON/OFF -- -- Configuring Examples support... -- Dependency ENABLE_LIBUHD = ON -- Enabling Examples support. -- Override with -DENABLE_EXAMPLES=ON/OFF -- -- Configuring Utils support... -- Dependency ENABLE_LIBUHD = ON -- Enabling Utils support. -- Override with -DENABLE_UTILS=ON/OFF -- -- Configuring Tests support... -- Dependency ENABLE_LIBUHD = ON -- Enabling Tests support. -- Override with -DENABLE_TESTS=ON/OFF -- -- Configuring Python Module (Utils only) support... -- Dependency HAVE_PYTHON_MODULE_NUMPY = TRUE -- Dependency HAVE_PYTHON_MODULE_MAKO = TRUE -- Dependency HAVE_PYTHON_MODULE_YAML = TRUE -- Enabling Python Module (Utils only) support. -- Override with -DENABLE_PYMOD_UTILS=ON/OFF -- CMake Warning (dev) at C:/msys64/mingw64/share/cmake/Modules/FindPackageHandleStandardArgs.cmake:447 (message): `find_package()` specify a version range but the module DPDK does not support this capability. Only the lower endpoint of the range will be used. Call Stack (most recent call first): cmake/Modules/FindDPDK.cmake:86 (find_package_handle_standard_args) lib/CMakeLists.txt:63 (find_package) This warning is for project developers. Use -Wno-dev to suppress it. -- Could NOT find DPDK (missing: DPDK_INCLUDE_DIRS DPDK_LIBRARIES) (Required is at least version "18.11") -- -- Configuring USB support... -- Dependency ENABLE_LIBUHD = ON -- Dependency LIBUSB_FOUND = TRUE -- Enabling USB support. -- Override with -DENABLE_USB=ON/OFF -- -- Configuring B100 support... -- Dependency ENABLE_LIBUHD = ON -- Dependency ENABLE_USB = ON -- Enabling B100 support. -- Override with -DENABLE_B100=ON/OFF -- -- Configuring B200 support... -- Dependency ENABLE_LIBUHD = ON -- Dependency ENABLE_USB = ON -- Enabling B200 support. -- Override with -DENABLE_B200=ON/OFF -- -- Configuring USRP1 support... -- Dependency ENABLE_LIBUHD = ON -- Dependency ENABLE_USB = ON -- Enabling USRP1 support. -- Override with -DENABLE_USRP1=ON/OFF -- -- Configuring USRP2 support... -- Dependency ENABLE_LIBUHD = ON -- Enabling USRP2 support. -- Override with -DENABLE_USRP2=ON/OFF -- -- Configuring X300 support... -- Dependency ENABLE_LIBUHD = ON -- Enabling X300 support. -- Override with -DENABLE_X300=ON/OFF -- -- Configuring MPMD support... -- Dependency ENABLE_LIBUHD = ON -- Enabling MPMD support. -- Override with -DENABLE_MPMD=ON/OFF -- -- Configuring SIM support... -- Dependency ENABLE_LIBUHD = ON -- Dependency ENABLE_MPMD = ON -- Dependency ENABLE_PYTHON_API = ON -- Enabling SIM support. -- Override with -DENABLE_SIM=ON/OFF -- -- Configuring N300 support... -- Dependency ENABLE_LIBUHD = ON -- Dependency ENABLE_MPMD = ON -- Enabling N300 support. -- Override with -DENABLE_N300=ON/OFF -- -- Configuring N320 support... -- Dependency ENABLE_LIBUHD = ON -- Dependency ENABLE_MPMD = ON -- Enabling N320 support. -- Override with -DENABLE_N320=ON/OFF -- -- Configuring E320 support... -- Dependency ENABLE_LIBUHD = ON -- Dependency ENABLE_MPMD = ON -- Enabling E320 support. -- Override with -DENABLE_E320=ON/OFF -- -- Configuring E300 support... -- Dependency ENABLE_LIBUHD = ON -- Dependency ENABLE_MPMD = ON -- Enabling E300 support. -- Override with -DENABLE_E300=ON/OFF -- -- Configuring X400 support... -- Dependency ENABLE_LIBUHD = ON -- Dependency ENABLE_MPMD = ON -- Enabling X400 support. -- Override with -DENABLE_X400=ON/OFF -- -- Configuring OctoClock support... -- Dependency ENABLE_LIBUHD = ON -- Enabling OctoClock support. -- Override with -DENABLE_OCTOCLOCK=ON/OFF -- -- Configuring DPDK support... -- Dependency ENABLE_MPMD = ON -- Dependency DPDK_FOUND = FALSE -- Disabling DPDK support. -- Override with -DENABLE_DPDK=ON/OFF -- -- -- Configuring priority scheduling... -- Priority scheduling supported through pthread_setschedparam. -- Setting thread names is supported through pthread_setname_np. -- Setting thread affinity is supported through windows SetThreadAffinityMask. -- -- Configuring module loading... -- Module loading supported through LoadLibrary. -- -- Configuring atomics support... -- Atomics support is built-in, no linking required. -- -- Processing NI-RIO FPGA LVBITX Bitstreams... -- Using x300.lvbitx_base for codegen -- Using x310.lvbitx_base for codegen -- -- USB support enabled via libusb. -- -- Configuring interface address discovery... -- Interface address discovery supported through SIO_GET_INTERFACE_LIST. -- -- Loading build info. CMake Deprecation Warning at cmake/Modules/CMakeRC.cmake:63 (cmake_minimum_required): Compatibility with CMake < 3.5 will be removed from a future version of CMake. Update the VERSION argument <min> value or use a ...<max> suffix to tell CMake that the project does not need compatibility with older versions. Call Stack (most recent call first): lib/rc/CMakeLists.txt:7 (include) -- -- Adding B2XX device test target -- Adding X3x0 device test target -- Adding E3XX device test target -- Adding N3XX device test target -- Adding E32x device test target -- Adding X410 device test target -- Adding X440 device test target -- -- -- Configuring Manual support... -- Dependency DOXYGEN_FOUND = YES -- Enabling Manual support. -- Override with -DENABLE_MANUAL=ON/OFF -- -- Configuring API/Doxygen support... -- Dependency DOXYGEN_FOUND = YES -- Enabling API/Doxygen support. -- Override with -DENABLE_DOXYGEN=ON/OFF -- -- Found GZip: C:/msys64/usr/bin/gzip.exe -- -- Compressed Man Pages enabled -- Override with -DENABLE_MAN_PAGE_COMPRESSION=ON/OFF -- -- Configuring Man Pages support... -- Dependency NOT_WIN32 = -- Dependency GZIP_FOUND = TRUE -- Disabling Man Pages support. -- Override with -DENABLE_MAN_PAGES=ON/OFF -- Using Pybind11 from: C:/msys64/mingw64/include -- -- Python checking for gevent module -- Python checking for gevent module - "import gevent" failed (is it installed?) -- -- Python checking for mprpc module -- Python checking for mprpc module - "import mprpc" failed (is it installed?) -- -- Python checking for pyudev module -- Python checking for pyudev module - "import pyudev" failed (is it installed?) -- -- Python checking for pyroute2 module -- Python checking for pyroute2 module - "import pyroute2" failed (is it installed?) -- MPM unit test Python package prerequisites not met; skipping -- -- -- Python checking for virtual environment -- Python checking for virtual environment - "assert sys.prefix != sys.base_prefix" failed -- Installing 'uhd' Python module to: C:/msys64/mingw64/lib/python3.11/site-packages -- -- ###################################################### -- # UHD enabled components -- ###################################################### -- * LibUHD -- * LibUHD - C API -- * LibUHD - Python API -- * Examples -- * Utils -- * Tests -- * Python Module (Utils only) -- * USB -- * B100 -- * B200 -- * USRP1 -- * USRP2 -- * X300 -- * MPMD -- * SIM -- * N300 -- * N320 -- * E320 -- * E300 -- * X400 -- * OctoClock -- * Manual -- * API/Doxygen -- -- ###################################################### -- # UHD disabled components -- ###################################################### -- * DPDK -- * Man Pages -- -- ****************************************************** -- * You are building the UHD development master branch. -- * For production code, we recommend our stable, -- * releases or using the release branch (maint). -- ****************************************************** -- Building version: 4.7.0.0-0-ga5ed1872 -- Using install prefix: C:/msys64/mingw64 -- Configuring done (3.7s) -- Generating done (0.7s) -- Build files have been written to: C:/msys64/home/chris/src/uhd/host/build I'm also applying a patch to get it to build. It was needed for 4.6.0.0 and I've had to make some tweaks. None of the files touched by the patch are part of the error, but I'll include it for completeness. Thanks in advance, Chris
CG
Chris Gorman
Thu, Jul 4, 2024 8:25 PM

Hello all,

Just a follow up email in case someone else tries to build a msys2
package for libuhd and gets the same error.  The fix was to invert the
include order and have <boost/test/unit_test.hpp> included before
<uhdlib/utils//isatty.hpp>.

diff --git a/host/tests/isatty_test.cpp b/host/tests/isatty_test.cpp
index 99da27fd1..de1b4e110 100644
--- a/host/tests/isatty_test.cpp
+++ b/host/tests/isatty_test.cpp
@@ -3,9 +3,8 @@
//
// SPDX-License-Identifier: GPL-3.0-or-later
//

-#include <uhdlib/utils/isatty.hpp>
#include <boost/test/unit_test.hpp>
+#include <uhdlib/utils/isatty.hpp>
#include <cstdio>
#include <iostream>

I also ran into a linker error and fixed it by inverting the order in
which two libraries occurred on the command line.

diff --git a/host/tests/CMakeLists.txt b/host/tests/CMakeLists.txt
index bac599811..682ce01c2 100644
--- a/host/tests/CMakeLists.txt
+++ b/host/tests/CMakeLists.txt
@@ -97,7 +97,7 @@ include_directories("${CMAKE_CURRENT_SOURCE_DIR}/common")
foreach(test_source ${test_sources})
get_filename_component(test_name ${test_source} NAME_WE)
add_executable(${test_name} ${test_source})

  • target_link_libraries(${test_name} uhd uhd_test ${Boost_LIBRARIES})
  • target_link_libraries(${test_name} uhd_test uhd ${Boost_LIBRARIES})
    UHD_ADD_TEST(${test_name} ${test_name})
    UHD_INSTALL(TARGETS ${test_name} RUNTIME DESTINATION
    ${PKG_LIB_DIR}/tests COMPONENT tests)
    endforeach(test_source)
    @@ -106,7 +106,7 @@ endforeach(test_source)
    foreach(benchmark_source ${benchmark_sources})
    get_filename_component(benchmark_name ${benchmark_source} NAME_WE)
    add_executable(${benchmark_name} ${benchmark_source})
  • target_link_libraries(${benchmark_name} uhd uhd_test ${Boost_LIBRARIES})
  • target_link_libraries(${benchmark_name} uhd_test uhd ${Boost_LIBRARIES})
    UHD_INSTALL(TARGETS ${benchmark_name} RUNTIME DESTINATION
    ${PKG_LIB_DIR}/tests COMPONENT tests)
    endforeach(benchmark_source)

Thanks for your time.

Chris

On Tue, Jul 2, 2024 at 10:13 AM Chris Gorman chrisjohgorman@gmail.com wrote:

Hello USRP users,

I'm trying to update my build from 4.6.0.0 to 4.7.0.0 for UHD on
msys2/mingw64.  During the build I get the following error...

$ C:\msys64\mingw64\bin\c++.exe
-DBOOST_ASIO_DISABLE_STD_EXPERIMENTAL_STRING_VIEW
-DBOOST_ASIO_DISABLE_STD_STRING_VIEW -DBOOST_ATOMIC_DYN_LINK
-DBOOST_ATOMIC_NO_LIB -DBOOST_CHRONO_DYN_LINK -DBOOST_CHRONO_NO_LIB
-DBOOST_DATE_TIME_DYN_LINK -DBOOST_DATE_TIME_NO_LIB
-DBOOST_ERROR_CODE_HEADER_ONLY -DBOOST_FILESYSTEM_DYN_LINK
-DBOOST_FILESYSTEM_NO_LIB -DBOOST_PROGRAM_OPTIONS_DYN_LINK
-DBOOST_PROGRAM_OPTIONS_NO_LIB -DBOOST_SERIALIZATION_DYN_LINK
-DBOOST_SERIALIZATION_NO_LIB -DBOOST_SYSTEM_DYN_LINK
-DBOOST_SYSTEM_NO_LIB -DBOOST_TEST_DYN_LINK -DBOOST_TEST_MAIN
-DBOOST_THREAD_DYN_LINK -DBOOST_THREAD_NO_LIB
-DBOOST_UNIT_TEST_FRAMEWORK_DYN_LINK
-DBOOST_UNIT_TEST_FRAMEWORK_NO_LIB -DHAVE_CONFIG_H -DNOMINMAX
-DUHD_LOG_CONSOLE_COLOR -DUHD_LOG_CONSOLE_LEVEL=2
-DUHD_LOG_FILE_LEVEL=2 -DUHD_LOG_MIN_LEVEL=1 -D_WIN32_WINNT=0x0501
-IC:/msys64/home/chris/src/uhd/host/build/include
-IC:/msys64/home/chris/src/uhd/host/include
-IC:/msys64/home/chris/src/uhd/host/lib/include
-IC:/msys64/home/chris/src/uhd/host/build/lib/include
-IC:/msys64/home/chris/src/uhd/host/tests/common
-IC:/msys64/home/chris/src/uhd/host/build/lib/rfnoc
-IC:/msys64/home/chris/src/uhd/host/lib/rfnoc
-IC:/msys64/home/chris/src/uhd/host/build/lib/ic_reg_maps
-IC:/msys64/home/chris/src/uhd/host/lib/deps/rpclib/include
-IC:/msys64/home/chris/src/uhd/host/lib/deps/flatbuffers/include
-IC:/msys64/home/chris/src/uhd/host/build/cmrc/include -O3 -DNDEBUG
-std=gnu++14  -Wall -Wextra -Wsign-compare -MD -MT
tests/CMakeFiles/isatty_test.dir/isatty_test.cpp.obj -MF
tests\CMakeFiles\isatty_test.dir\isatty_test.cpp.obj.d -o
tests/CMakeFiles/isatty_test.dir/isatty_test.cpp.obj -c
C:/msys64/home/chris/src/uhd/host/tests/isatty_test.cpp
In file included from
C:/msys64/mingw64/include/boost/assert/source_location.hpp:15,
from C:/msys64/mingw64/include/boost/exception/exception.hpp:9,
from C:/msys64/mingw64/include/boost/throw_exception.hpp:21,
from
C:/msys64/mingw64/include/boost/smart_ptr/detail/shared_count.hpp:31,
from
C:/msys64/mingw64/include/boost/smart_ptr/shared_ptr.hpp:18,
from C:/msys64/mingw64/include/boost/shared_ptr.hpp:17,
from
C:/msys64/mingw64/include/boost/test/tools/assertion_result.hpp:21,
from
C:/msys64/mingw64/include/boost/test/tools/old/impl.hpp:20,
from C:/msys64/mingw64/include/boost/test/test_tools.hpp:46,
from C:/msys64/mingw64/include/boost/test/unit_test.hpp:18,
from C:/msys64/home/chris/src/uhd/host/tests/isatty_test.cpp:8:
C:/msys64/mingw64/include/c++/14.1.0/cstring:78:11: error: 'memchr'
has not been declared in '::'
78 |  using ::memchr;
|          ^~~~~~
C:/msys64/mingw64/include/c++/14.1.0/cstring:79:11: error: 'memcmp'
has not been declared in '::'
79 |  using ::memcmp;
|          ^~~~~~
C:/msys64/mingw64/include/c++/14.1.0/cstring:82:11: error: 'memset'
has not been declared in '::'
82 |  using ::memset;
|          ^~~~~~
C:/msys64/mingw64/include/c++/14.1.0/cstring:83:11: error: 'strcat'
has not been declared in '::'
83 |  using ::strcat;
|          ^~~~~~
C:/msys64/mingw64/include/c++/14.1.0/cstring:84:11: error: 'strcmp'
has not been declared in '::'
84 |  using ::strcmp;
|          ^~~~~~
C:/msys64/mingw64/include/c++/14.1.0/cstring:85:11: error: 'strcoll'
has not been declared in '::'
85 |  using ::strcoll;
|          ^~~~~~~
C:/msys64/mingw64/include/c++/14.1.0/cstring:86:11: error: 'strcpy'
has not been declared in '::'
86 |  using ::strcpy;
|          ^~~~~~
C:/msys64/mingw64/include/c++/14.1.0/cstring:87:11: error: 'strcspn'
has not been declared in '::'
87 |  using ::strcspn;
|          ^~~~~~~
C:/msys64/mingw64/include/c++/14.1.0/cstring:88:11: error: 'strerror'
has not been declared in '::'
88 |  using ::strerror;
|          ^~~~~~~~
C:/msys64/mingw64/include/c++/14.1.0/cstring:89:11: error: 'strlen'
has not been declared in '::'
89 |  using ::strlen;
|          ^~~~~~
C:/msys64/mingw64/include/c++/14.1.0/cstring:90:11: error: 'strncat'
has not been declared in '::'
90 |  using ::strncat;
|          ^~~~~~~
C:/msys64/mingw64/include/c++/14.1.0/cstring:91:11: error: 'strncmp'
has not been declared in '::'
91 |  using ::strncmp;
|          ^~~~~~~
C:/msys64/mingw64/include/c++/14.1.0/cstring:92:11: error: 'strncpy'
has not been declared in '::'
92 |  using ::strncpy;
|          ^~~~~~~
C:/msys64/mingw64/include/c++/14.1.0/cstring:93:11: error: 'strspn'
has not been declared in '::'
93 |  using ::strspn;
|          ^~~~~~
C:/msys64/mingw64/include/c++/14.1.0/cstring:95:11: error: 'strtok'
has not been declared in '::'
95 |  using ::strtok;
|          ^~~~~~
C:/msys64/mingw64/include/c++/14.1.0/cstring:97:11: error: 'strxfrm'
has not been declared in '::'
97 |  using ::strxfrm;
|          ^~~~~~~
C:/msys64/mingw64/include/c++/14.1.0/cstring:98:11: error: 'strchr'
has not been declared in '::'
98 |  using ::strchr;
|          ^~~~~~
C:/msys64/mingw64/include/c++/14.1.0/cstring:99:11: error: 'strpbrk'
has not been declared in '::'
99 |  using ::strpbrk;
|          ^~~~~~~
C:/msys64/mingw64/include/c++/14.1.0/cstring:100:11: error: 'strrchr'
has not been declared in '::'
100 |  using ::strrchr;
|          ^~~~~~~
C:/msys64/mingw64/include/c++/14.1.0/cstring:101:11: error: 'strstr'
has not been declared in '::'
101 |  using ::strstr;
|          ^~~~~~
C:/msys64/mingw64/include/boost/assert/source_location.hpp: In
function 'bool boost::operator==(const source_location&, const
source_location&)':
C:/msys64/mingw64/include/boost/assert/source_location.hpp:126:21:
error: 'strcmp' is not a member of 'std'; did you mean 'strchr'?
126 |        return std::strcmp( s1.file
, s2.file_ ) == 0 &&
std::strcmp( s1.function_, s2.function_ ) == 0 && s1.line_ == s2.line_
&& s1.column_ == s2.column_;
|                    ^~~~~~
|                    strchr
C:/msys64/mingw64/include/boost/assert/source_location.hpp:126:63:
error: 'strcmp' is not a member of 'std'; did you mean 'strchr'?
126 |        return std::strcmp( s1.file_, s2.file_ ) == 0 &&
std::strcmp( s1.function_, s2.function_ ) == 0 && s1.line_ == s2.line_
&& s1.column_ == s2.column_;
|                                                              ^~~~~~
|                                                              strchr
In file included from C:/msys64/mingw64/include/boost/mpl/for_each.hpp:29,
from
C:/msys64/mingw64/include/boost/test/tree/test_case_template.hpp:28,
from
C:/msys64/mingw64/include/boost/test/unit_test_suite.hpp:19,
from C:/msys64/mingw64/include/boost/test/unit_test.hpp:19:
C:/msys64/mingw64/include/boost/utility/value_init.hpp: In constructor
'boost::detail::zero_init::zero_init(void*, std::size_t)':
C:/msys64/mingw64/include/boost/utility/value_init.hpp:73:12: error:
'memset' is not a member of 'std'; did you mean 'wmemset'?
73 |      std::memset( p, 0, n );
|            ^~~~~~
|            wmemset

It looks like I'm including something I shouldn't, but I don't know what.

My cmake build log is ...

$ cmake -DCMAKE_INSTALL_PREFIX=c:/msys64/mingw64 -DENABLE_PYTHON_API=ON ..

-- Configuring the Python interpreter...
-- Manually determining build Python version...
-- Python interpreter: C:/msys64/mingw64/bin/python3.11.exe Version: 3.11.9
-- Override with: -DPYTHON_EXECUTABLE=<path-to-python>
-- Manually determining runtime Python version...
-- Python runtime interpreter: C:/msys64/mingw64/bin/python3.11.exe
Version: 3.11.9
-- Override with: -DRUNTIME_PYTHON_EXECUTABLE=<path-to-python>
-- Finding Python Libraries...
CMake Warning (dev) at cmake/Modules/UHDPython.cmake:313 (find_package):
Policy CMP0148 is not set: The FindPythonInterp and FindPythonLibs modules
are removed.  Run "cmake --help-policy CMP0148" for policy details.  Use
the cmake_policy command to set the policy and suppress this warning.

Call Stack (most recent call first):
cmake/Modules/UHDVersion.cmake:9 (include)
cmake/Modules/UHDPackage.cmake:9 (include)
CMakeLists.txt:107 (include)
This warning is for project developers.  Use -Wno-dev to suppress it.

-- Python Libraries: C:/msys64/mingw64/lib/libpython3.11.dll.a
-- Python include directories: C:/msys64/mingw64/include/python3.11
-- pybind11::lto disabled (problems with undefined symbols for MinGW for now)
-- pybind11::thin_lto disabled (problems with undefined symbols for
MinGW for now)
-- Operating on master branch.
-- Using UHD Images Directory: C:\msys64\mingw64\share\uhd\images
-- Build type not specified: defaulting to release.

-- Configuring Boost C++ Libraries...

-- Checking for Boost version 1.65 or greater
--  Looking for required Boost components...
--  Enabling Boost Error Code Header Only
--    Disabling boost::asio use of std::string_view
--  Boost version: 1.85.0
--  Boost include directories: C:/msys64/mingw64/include
--  Boost library directories: C:/msys64/mingw64/lib
--  Boost libraries:
Boost::chrono;Boost::date_time;Boost::filesystem;Boost::program_options;Boost::serialization;Boost::thread;Boost::unit_test_framework;Boost::system
-- Looking for Boost version 1.65 or greater - found

-- Python checking for compatible Python version
-- Python checking for compatible Python version - 3.11.9 satisfies
minimum required version 3.7

-- Python checking for Mako templates module
-- Python checking for Mako templates module - 1.3.5 satisfies minimum
required version 0.4.2

-- Python checking for requests module
-- Python checking for requests module - 2.32.2 satisfies minimum
required version 2.0

-- Python checking for numpy module
-- Python checking for numpy module - 1.26.4 satisfies minimum
required version 1.11

-- Python checking for ruamel.yaml module
-- Python checking for ruamel.yaml module - 0.18.6 satisfies minimum
required version 0.15

-- Configuring LibUHD support...
--  Dependency Boost_FOUND = TRUE
--  Dependency HAVE_PYTHON_MODULE_MAKO = TRUE
--  Enabling LibUHD support.
--  Override with -DENABLE_LIBUHD=ON/OFF

-- Configuring LibUHD - C API support...
--  Dependency ENABLE_LIBUHD = ON
--  Enabling LibUHD - C API support.
--  Override with -DENABLE_C_API=ON/OFF

-- Configuring LibUHD - Python API support...
--  Dependency ENABLE_LIBUHD = ON
--  Dependency HAVE_PYTHON_MODULE_NUMPY = TRUE
--  Dependency HAVE_PYTHON_LIBS = TRUE
--  Enabling LibUHD - Python API support.
--  Override with -DENABLE_PYTHON_API=ON/OFF

-- Configuring Examples support...
--  Dependency ENABLE_LIBUHD = ON
--  Enabling Examples support.
--  Override with -DENABLE_EXAMPLES=ON/OFF

-- Configuring Utils support...
--  Dependency ENABLE_LIBUHD = ON
--  Enabling Utils support.
--  Override with -DENABLE_UTILS=ON/OFF

-- Configuring Tests support...
--  Dependency ENABLE_LIBUHD = ON
--  Enabling Tests support.
--  Override with -DENABLE_TESTS=ON/OFF

-- Configuring Python Module (Utils only) support...
--  Dependency HAVE_PYTHON_MODULE_NUMPY = TRUE
--  Dependency HAVE_PYTHON_MODULE_MAKO = TRUE
--  Dependency HAVE_PYTHON_MODULE_YAML = TRUE
--  Enabling Python Module (Utils only) support.
--  Override with -DENABLE_PYMOD_UTILS=ON/OFF

CMake Warning (dev) at
C:/msys64/mingw64/share/cmake/Modules/FindPackageHandleStandardArgs.cmake:447
(message):
find_package() specify a version range but the module DPDK does not
support this capability.  Only the lower endpoint of the range will be
used.
Call Stack (most recent call first):
cmake/Modules/FindDPDK.cmake:86 (find_package_handle_standard_args)
lib/CMakeLists.txt:63 (find_package)
This warning is for project developers.  Use -Wno-dev to suppress it.

-- Could NOT find DPDK (missing: DPDK_INCLUDE_DIRS DPDK_LIBRARIES)
(Required is at least version "18.11")

-- Configuring USB support...
--  Dependency ENABLE_LIBUHD = ON
--  Dependency LIBUSB_FOUND = TRUE
--  Enabling USB support.
--  Override with -DENABLE_USB=ON/OFF

-- Configuring B100 support...
--  Dependency ENABLE_LIBUHD = ON
--  Dependency ENABLE_USB = ON
--  Enabling B100 support.
--  Override with -DENABLE_B100=ON/OFF

-- Configuring B200 support...
--  Dependency ENABLE_LIBUHD = ON
--  Dependency ENABLE_USB = ON
--  Enabling B200 support.
--  Override with -DENABLE_B200=ON/OFF

-- Configuring USRP1 support...
--  Dependency ENABLE_LIBUHD = ON
--  Dependency ENABLE_USB = ON
--  Enabling USRP1 support.
--  Override with -DENABLE_USRP1=ON/OFF

-- Configuring USRP2 support...
--  Dependency ENABLE_LIBUHD = ON
--  Enabling USRP2 support.
--  Override with -DENABLE_USRP2=ON/OFF

-- Configuring X300 support...
--  Dependency ENABLE_LIBUHD = ON
--  Enabling X300 support.
--  Override with -DENABLE_X300=ON/OFF

-- Configuring MPMD support...
--  Dependency ENABLE_LIBUHD = ON
--  Enabling MPMD support.
--  Override with -DENABLE_MPMD=ON/OFF

-- Configuring SIM support...
--  Dependency ENABLE_LIBUHD = ON
--  Dependency ENABLE_MPMD = ON
--  Dependency ENABLE_PYTHON_API = ON
--  Enabling SIM support.
--  Override with -DENABLE_SIM=ON/OFF

-- Configuring N300 support...
--  Dependency ENABLE_LIBUHD = ON
--  Dependency ENABLE_MPMD = ON
--  Enabling N300 support.
--  Override with -DENABLE_N300=ON/OFF

-- Configuring N320 support...
--  Dependency ENABLE_LIBUHD = ON
--  Dependency ENABLE_MPMD = ON
--  Enabling N320 support.
--  Override with -DENABLE_N320=ON/OFF

-- Configuring E320 support...
--  Dependency ENABLE_LIBUHD = ON
--  Dependency ENABLE_MPMD = ON
--  Enabling E320 support.
--  Override with -DENABLE_E320=ON/OFF

-- Configuring E300 support...
--  Dependency ENABLE_LIBUHD = ON
--  Dependency ENABLE_MPMD = ON
--  Enabling E300 support.
--  Override with -DENABLE_E300=ON/OFF

-- Configuring X400 support...
--  Dependency ENABLE_LIBUHD = ON
--  Dependency ENABLE_MPMD = ON
--  Enabling X400 support.
--  Override with -DENABLE_X400=ON/OFF

-- Configuring OctoClock support...
--  Dependency ENABLE_LIBUHD = ON
--  Enabling OctoClock support.
--  Override with -DENABLE_OCTOCLOCK=ON/OFF

-- Configuring DPDK support...
--  Dependency ENABLE_MPMD = ON
--  Dependency DPDK_FOUND = FALSE
--  Disabling DPDK support.
--  Override with -DENABLE_DPDK=ON/OFF

--
-- Configuring priority scheduling...
--  Priority scheduling supported through pthread_setschedparam.
--  Setting thread names is supported through pthread_setname_np.
--  Setting thread affinity is supported through windows SetThreadAffinityMask.

-- Configuring module loading...
--  Module loading supported through LoadLibrary.

-- Configuring atomics support...
--  Atomics support is built-in, no linking required.

-- Processing NI-RIO FPGA LVBITX Bitstreams...
--  Using x300.lvbitx_base for codegen
--  Using x310.lvbitx_base for codegen

-- USB support enabled via libusb.

-- Configuring interface address discovery...
--  Interface address discovery supported through SIO_GET_INTERFACE_LIST.

-- Loading build info.
CMake Deprecation Warning at cmake/Modules/CMakeRC.cmake:63
(cmake_minimum_required):
Compatibility with CMake < 3.5 will be removed from a future version of
CMake.

Update the VERSION argument <min> value or use a ...<max> suffix to tell
CMake that the project does not need compatibility with older versions.
Call Stack (most recent call first):
lib/rc/CMakeLists.txt:7 (include)

--
-- Adding B2XX device test target
-- Adding X3x0 device test target
-- Adding E3XX device test target
-- Adding N3XX device test target
-- Adding E32x device test target
-- Adding X410 device test target
-- Adding X440 device test target

--
-- Configuring Manual support...
--  Dependency DOXYGEN_FOUND = YES
--  Enabling Manual support.
--  Override with -DENABLE_MANUAL=ON/OFF

-- Configuring API/Doxygen support...
--  Dependency DOXYGEN_FOUND = YES
--  Enabling API/Doxygen support.
--  Override with -DENABLE_DOXYGEN=ON/OFF

-- Found GZip: C:/msys64/usr/bin/gzip.exe

-- Compressed Man Pages enabled
--  Override with -DENABLE_MAN_PAGE_COMPRESSION=ON/OFF

-- Configuring Man Pages support...
--  Dependency NOT_WIN32 =
--  Dependency GZIP_FOUND = TRUE
--  Disabling Man Pages support.
--  Override with -DENABLE_MAN_PAGES=ON/OFF
-- Using Pybind11 from: C:/msys64/mingw64/include

-- Python checking for gevent module
-- Python checking for gevent module - "import gevent" failed (is it installed?)

-- Python checking for mprpc module
-- Python checking for mprpc module - "import mprpc" failed (is it installed?)

-- Python checking for pyudev module
-- Python checking for pyudev module - "import pyudev" failed (is it installed?)

-- Python checking for pyroute2 module
-- Python checking for pyroute2 module - "import pyroute2" failed (is
it installed?)
-- MPM unit test Python package prerequisites not met; skipping

--
-- Python checking for virtual environment
-- Python checking for virtual environment - "assert sys.prefix !=
sys.base_prefix" failed
-- Installing 'uhd' Python module to:
C:/msys64/mingw64/lib/python3.11/site-packages

-- ######################################################
-- # UHD enabled components
-- ######################################################
--  * LibUHD
--  * LibUHD - C API
--  * LibUHD - Python API
--  * Examples
--  * Utils
--  * Tests
--  * Python Module (Utils only)
--  * USB
--  * B100
--  * B200
--  * USRP1
--  * USRP2
--  * X300
--  * MPMD
--  * SIM
--  * N300
--  * N320
--  * E320
--  * E300
--  * X400
--  * OctoClock
--  * Manual
--  * API/Doxygen

-- ######################################################
-- # UHD disabled components
-- ######################################################
--  * DPDK
--  * Man Pages

-- ******************************************************
-- * You are building the UHD development master branch.
-- * For production code, we recommend our stable,
-- * releases or using the release branch (maint).
-- ******************************************************
-- Building version: 4.7.0.0-0-ga5ed1872
-- Using install prefix: C:/msys64/mingw64
-- Configuring done (3.7s)
-- Generating done (0.7s)
-- Build files have been written to: C:/msys64/home/chris/src/uhd/host/build

I'm also applying a patch to get it to build.  It was needed for
4.6.0.0 and I've had to make some tweaks.  None of the files touched
by the patch are part of the error, but I'll include it for
completeness.

Thanks in advance,

Chris

Hello all, Just a follow up email in case someone else tries to build a msys2 package for libuhd and gets the same error. The fix was to invert the include order and have <boost/test/unit_test.hpp> included before <uhdlib/utils//isatty.hpp>. diff --git a/host/tests/isatty_test.cpp b/host/tests/isatty_test.cpp index 99da27fd1..de1b4e110 100644 --- a/host/tests/isatty_test.cpp +++ b/host/tests/isatty_test.cpp @@ -3,9 +3,8 @@ // // SPDX-License-Identifier: GPL-3.0-or-later // - -#include <uhdlib/utils/isatty.hpp> #include <boost/test/unit_test.hpp> +#include <uhdlib/utils/isatty.hpp> #include <cstdio> #include <iostream> I also ran into a linker error and fixed it by inverting the order in which two libraries occurred on the command line. diff --git a/host/tests/CMakeLists.txt b/host/tests/CMakeLists.txt index bac599811..682ce01c2 100644 --- a/host/tests/CMakeLists.txt +++ b/host/tests/CMakeLists.txt @@ -97,7 +97,7 @@ include_directories("${CMAKE_CURRENT_SOURCE_DIR}/common") foreach(test_source ${test_sources}) get_filename_component(test_name ${test_source} NAME_WE) add_executable(${test_name} ${test_source}) - target_link_libraries(${test_name} uhd uhd_test ${Boost_LIBRARIES}) + target_link_libraries(${test_name} uhd_test uhd ${Boost_LIBRARIES}) UHD_ADD_TEST(${test_name} ${test_name}) UHD_INSTALL(TARGETS ${test_name} RUNTIME DESTINATION ${PKG_LIB_DIR}/tests COMPONENT tests) endforeach(test_source) @@ -106,7 +106,7 @@ endforeach(test_source) foreach(benchmark_source ${benchmark_sources}) get_filename_component(benchmark_name ${benchmark_source} NAME_WE) add_executable(${benchmark_name} ${benchmark_source}) - target_link_libraries(${benchmark_name} uhd uhd_test ${Boost_LIBRARIES}) + target_link_libraries(${benchmark_name} uhd_test uhd ${Boost_LIBRARIES}) UHD_INSTALL(TARGETS ${benchmark_name} RUNTIME DESTINATION ${PKG_LIB_DIR}/tests COMPONENT tests) endforeach(benchmark_source) Thanks for your time. Chris On Tue, Jul 2, 2024 at 10:13 AM Chris Gorman <chrisjohgorman@gmail.com> wrote: > > Hello USRP users, > > I'm trying to update my build from 4.6.0.0 to 4.7.0.0 for UHD on > msys2/mingw64. During the build I get the following error... > > $ C:\msys64\mingw64\bin\c++.exe > -DBOOST_ASIO_DISABLE_STD_EXPERIMENTAL_STRING_VIEW > -DBOOST_ASIO_DISABLE_STD_STRING_VIEW -DBOOST_ATOMIC_DYN_LINK > -DBOOST_ATOMIC_NO_LIB -DBOOST_CHRONO_DYN_LINK -DBOOST_CHRONO_NO_LIB > -DBOOST_DATE_TIME_DYN_LINK -DBOOST_DATE_TIME_NO_LIB > -DBOOST_ERROR_CODE_HEADER_ONLY -DBOOST_FILESYSTEM_DYN_LINK > -DBOOST_FILESYSTEM_NO_LIB -DBOOST_PROGRAM_OPTIONS_DYN_LINK > -DBOOST_PROGRAM_OPTIONS_NO_LIB -DBOOST_SERIALIZATION_DYN_LINK > -DBOOST_SERIALIZATION_NO_LIB -DBOOST_SYSTEM_DYN_LINK > -DBOOST_SYSTEM_NO_LIB -DBOOST_TEST_DYN_LINK -DBOOST_TEST_MAIN > -DBOOST_THREAD_DYN_LINK -DBOOST_THREAD_NO_LIB > -DBOOST_UNIT_TEST_FRAMEWORK_DYN_LINK > -DBOOST_UNIT_TEST_FRAMEWORK_NO_LIB -DHAVE_CONFIG_H -DNOMINMAX > -DUHD_LOG_CONSOLE_COLOR -DUHD_LOG_CONSOLE_LEVEL=2 > -DUHD_LOG_FILE_LEVEL=2 -DUHD_LOG_MIN_LEVEL=1 -D_WIN32_WINNT=0x0501 > -IC:/msys64/home/chris/src/uhd/host/build/include > -IC:/msys64/home/chris/src/uhd/host/include > -IC:/msys64/home/chris/src/uhd/host/lib/include > -IC:/msys64/home/chris/src/uhd/host/build/lib/include > -IC:/msys64/home/chris/src/uhd/host/tests/common > -IC:/msys64/home/chris/src/uhd/host/build/lib/rfnoc > -IC:/msys64/home/chris/src/uhd/host/lib/rfnoc > -IC:/msys64/home/chris/src/uhd/host/build/lib/ic_reg_maps > -IC:/msys64/home/chris/src/uhd/host/lib/deps/rpclib/include > -IC:/msys64/home/chris/src/uhd/host/lib/deps/flatbuffers/include > -IC:/msys64/home/chris/src/uhd/host/build/_cmrc/include -O3 -DNDEBUG > -std=gnu++14 -Wall -Wextra -Wsign-compare -MD -MT > tests/CMakeFiles/isatty_test.dir/isatty_test.cpp.obj -MF > tests\CMakeFiles\isatty_test.dir\isatty_test.cpp.obj.d -o > tests/CMakeFiles/isatty_test.dir/isatty_test.cpp.obj -c > C:/msys64/home/chris/src/uhd/host/tests/isatty_test.cpp > In file included from > C:/msys64/mingw64/include/boost/assert/source_location.hpp:15, > from C:/msys64/mingw64/include/boost/exception/exception.hpp:9, > from C:/msys64/mingw64/include/boost/throw_exception.hpp:21, > from > C:/msys64/mingw64/include/boost/smart_ptr/detail/shared_count.hpp:31, > from > C:/msys64/mingw64/include/boost/smart_ptr/shared_ptr.hpp:18, > from C:/msys64/mingw64/include/boost/shared_ptr.hpp:17, > from > C:/msys64/mingw64/include/boost/test/tools/assertion_result.hpp:21, > from > C:/msys64/mingw64/include/boost/test/tools/old/impl.hpp:20, > from C:/msys64/mingw64/include/boost/test/test_tools.hpp:46, > from C:/msys64/mingw64/include/boost/test/unit_test.hpp:18, > from C:/msys64/home/chris/src/uhd/host/tests/isatty_test.cpp:8: > C:/msys64/mingw64/include/c++/14.1.0/cstring:78:11: error: 'memchr' > has not been declared in '::' > 78 | using ::memchr; > | ^~~~~~ > C:/msys64/mingw64/include/c++/14.1.0/cstring:79:11: error: 'memcmp' > has not been declared in '::' > 79 | using ::memcmp; > | ^~~~~~ > C:/msys64/mingw64/include/c++/14.1.0/cstring:82:11: error: 'memset' > has not been declared in '::' > 82 | using ::memset; > | ^~~~~~ > C:/msys64/mingw64/include/c++/14.1.0/cstring:83:11: error: 'strcat' > has not been declared in '::' > 83 | using ::strcat; > | ^~~~~~ > C:/msys64/mingw64/include/c++/14.1.0/cstring:84:11: error: 'strcmp' > has not been declared in '::' > 84 | using ::strcmp; > | ^~~~~~ > C:/msys64/mingw64/include/c++/14.1.0/cstring:85:11: error: 'strcoll' > has not been declared in '::' > 85 | using ::strcoll; > | ^~~~~~~ > C:/msys64/mingw64/include/c++/14.1.0/cstring:86:11: error: 'strcpy' > has not been declared in '::' > 86 | using ::strcpy; > | ^~~~~~ > C:/msys64/mingw64/include/c++/14.1.0/cstring:87:11: error: 'strcspn' > has not been declared in '::' > 87 | using ::strcspn; > | ^~~~~~~ > C:/msys64/mingw64/include/c++/14.1.0/cstring:88:11: error: 'strerror' > has not been declared in '::' > 88 | using ::strerror; > | ^~~~~~~~ > C:/msys64/mingw64/include/c++/14.1.0/cstring:89:11: error: 'strlen' > has not been declared in '::' > 89 | using ::strlen; > | ^~~~~~ > C:/msys64/mingw64/include/c++/14.1.0/cstring:90:11: error: 'strncat' > has not been declared in '::' > 90 | using ::strncat; > | ^~~~~~~ > C:/msys64/mingw64/include/c++/14.1.0/cstring:91:11: error: 'strncmp' > has not been declared in '::' > 91 | using ::strncmp; > | ^~~~~~~ > C:/msys64/mingw64/include/c++/14.1.0/cstring:92:11: error: 'strncpy' > has not been declared in '::' > 92 | using ::strncpy; > | ^~~~~~~ > C:/msys64/mingw64/include/c++/14.1.0/cstring:93:11: error: 'strspn' > has not been declared in '::' > 93 | using ::strspn; > | ^~~~~~ > C:/msys64/mingw64/include/c++/14.1.0/cstring:95:11: error: 'strtok' > has not been declared in '::' > 95 | using ::strtok; > | ^~~~~~ > C:/msys64/mingw64/include/c++/14.1.0/cstring:97:11: error: 'strxfrm' > has not been declared in '::' > 97 | using ::strxfrm; > | ^~~~~~~ > C:/msys64/mingw64/include/c++/14.1.0/cstring:98:11: error: 'strchr' > has not been declared in '::' > 98 | using ::strchr; > | ^~~~~~ > C:/msys64/mingw64/include/c++/14.1.0/cstring:99:11: error: 'strpbrk' > has not been declared in '::' > 99 | using ::strpbrk; > | ^~~~~~~ > C:/msys64/mingw64/include/c++/14.1.0/cstring:100:11: error: 'strrchr' > has not been declared in '::' > 100 | using ::strrchr; > | ^~~~~~~ > C:/msys64/mingw64/include/c++/14.1.0/cstring:101:11: error: 'strstr' > has not been declared in '::' > 101 | using ::strstr; > | ^~~~~~ > C:/msys64/mingw64/include/boost/assert/source_location.hpp: In > function 'bool boost::operator==(const source_location&, const > source_location&)': > C:/msys64/mingw64/include/boost/assert/source_location.hpp:126:21: > error: 'strcmp' is not a member of 'std'; did you mean 'strchr'? > 126 | return std::strcmp( s1.file_, s2.file_ ) == 0 && > std::strcmp( s1.function_, s2.function_ ) == 0 && s1.line_ == s2.line_ > && s1.column_ == s2.column_; > | ^~~~~~ > | strchr > C:/msys64/mingw64/include/boost/assert/source_location.hpp:126:63: > error: 'strcmp' is not a member of 'std'; did you mean 'strchr'? > 126 | return std::strcmp( s1.file_, s2.file_ ) == 0 && > std::strcmp( s1.function_, s2.function_ ) == 0 && s1.line_ == s2.line_ > && s1.column_ == s2.column_; > | ^~~~~~ > | strchr > In file included from C:/msys64/mingw64/include/boost/mpl/for_each.hpp:29, > from > C:/msys64/mingw64/include/boost/test/tree/test_case_template.hpp:28, > from > C:/msys64/mingw64/include/boost/test/unit_test_suite.hpp:19, > from C:/msys64/mingw64/include/boost/test/unit_test.hpp:19: > C:/msys64/mingw64/include/boost/utility/value_init.hpp: In constructor > 'boost::detail::zero_init::zero_init(void*, std::size_t)': > C:/msys64/mingw64/include/boost/utility/value_init.hpp:73:12: error: > 'memset' is not a member of 'std'; did you mean 'wmemset'? > 73 | std::memset( p, 0, n ); > | ^~~~~~ > | wmemset > > It looks like I'm including something I shouldn't, but I don't know what. > > My cmake build log is ... > > $ cmake -DCMAKE_INSTALL_PREFIX=c:/msys64/mingw64 -DENABLE_PYTHON_API=ON .. > -- > -- Configuring the Python interpreter... > -- Manually determining build Python version... > -- Python interpreter: C:/msys64/mingw64/bin/python3.11.exe Version: 3.11.9 > -- Override with: -DPYTHON_EXECUTABLE=<path-to-python> > -- Manually determining runtime Python version... > -- Python runtime interpreter: C:/msys64/mingw64/bin/python3.11.exe > Version: 3.11.9 > -- Override with: -DRUNTIME_PYTHON_EXECUTABLE=<path-to-python> > -- Finding Python Libraries... > CMake Warning (dev) at cmake/Modules/UHDPython.cmake:313 (find_package): > Policy CMP0148 is not set: The FindPythonInterp and FindPythonLibs modules > are removed. Run "cmake --help-policy CMP0148" for policy details. Use > the cmake_policy command to set the policy and suppress this warning. > > Call Stack (most recent call first): > cmake/Modules/UHDVersion.cmake:9 (include) > cmake/Modules/UHDPackage.cmake:9 (include) > CMakeLists.txt:107 (include) > This warning is for project developers. Use -Wno-dev to suppress it. > > -- Python Libraries: C:/msys64/mingw64/lib/libpython3.11.dll.a > -- Python include directories: C:/msys64/mingw64/include/python3.11 > -- pybind11::lto disabled (problems with undefined symbols for MinGW for now) > -- pybind11::thin_lto disabled (problems with undefined symbols for > MinGW for now) > -- Operating on master branch. > -- Using UHD Images Directory: C:\msys64\mingw64\share\uhd\images > -- Build type not specified: defaulting to release. > -- > -- Configuring Boost C++ Libraries... > -- > -- Checking for Boost version 1.65 or greater > -- Looking for required Boost components... > -- Enabling Boost Error Code Header Only > -- Disabling boost::asio use of std::string_view > -- Boost version: 1.85.0 > -- Boost include directories: C:/msys64/mingw64/include > -- Boost library directories: C:/msys64/mingw64/lib > -- Boost libraries: > Boost::chrono;Boost::date_time;Boost::filesystem;Boost::program_options;Boost::serialization;Boost::thread;Boost::unit_test_framework;Boost::system > -- Looking for Boost version 1.65 or greater - found > -- > -- Python checking for compatible Python version > -- Python checking for compatible Python version - 3.11.9 satisfies > minimum required version 3.7 > -- > -- Python checking for Mako templates module > -- Python checking for Mako templates module - 1.3.5 satisfies minimum > required version 0.4.2 > -- > -- Python checking for requests module > -- Python checking for requests module - 2.32.2 satisfies minimum > required version 2.0 > -- > -- Python checking for numpy module > -- Python checking for numpy module - 1.26.4 satisfies minimum > required version 1.11 > -- > -- Python checking for ruamel.yaml module > -- Python checking for ruamel.yaml module - 0.18.6 satisfies minimum > required version 0.15 > -- > -- Configuring LibUHD support... > -- Dependency Boost_FOUND = TRUE > -- Dependency HAVE_PYTHON_MODULE_MAKO = TRUE > -- Enabling LibUHD support. > -- Override with -DENABLE_LIBUHD=ON/OFF > -- > -- Configuring LibUHD - C API support... > -- Dependency ENABLE_LIBUHD = ON > -- Enabling LibUHD - C API support. > -- Override with -DENABLE_C_API=ON/OFF > -- > -- Configuring LibUHD - Python API support... > -- Dependency ENABLE_LIBUHD = ON > -- Dependency HAVE_PYTHON_MODULE_NUMPY = TRUE > -- Dependency HAVE_PYTHON_LIBS = TRUE > -- Enabling LibUHD - Python API support. > -- Override with -DENABLE_PYTHON_API=ON/OFF > -- > -- Configuring Examples support... > -- Dependency ENABLE_LIBUHD = ON > -- Enabling Examples support. > -- Override with -DENABLE_EXAMPLES=ON/OFF > -- > -- Configuring Utils support... > -- Dependency ENABLE_LIBUHD = ON > -- Enabling Utils support. > -- Override with -DENABLE_UTILS=ON/OFF > -- > -- Configuring Tests support... > -- Dependency ENABLE_LIBUHD = ON > -- Enabling Tests support. > -- Override with -DENABLE_TESTS=ON/OFF > -- > -- Configuring Python Module (Utils only) support... > -- Dependency HAVE_PYTHON_MODULE_NUMPY = TRUE > -- Dependency HAVE_PYTHON_MODULE_MAKO = TRUE > -- Dependency HAVE_PYTHON_MODULE_YAML = TRUE > -- Enabling Python Module (Utils only) support. > -- Override with -DENABLE_PYMOD_UTILS=ON/OFF > -- > CMake Warning (dev) at > C:/msys64/mingw64/share/cmake/Modules/FindPackageHandleStandardArgs.cmake:447 > (message): > `find_package()` specify a version range but the module DPDK does not > support this capability. Only the lower endpoint of the range will be > used. > Call Stack (most recent call first): > cmake/Modules/FindDPDK.cmake:86 (find_package_handle_standard_args) > lib/CMakeLists.txt:63 (find_package) > This warning is for project developers. Use -Wno-dev to suppress it. > > -- Could NOT find DPDK (missing: DPDK_INCLUDE_DIRS DPDK_LIBRARIES) > (Required is at least version "18.11") > -- > -- Configuring USB support... > -- Dependency ENABLE_LIBUHD = ON > -- Dependency LIBUSB_FOUND = TRUE > -- Enabling USB support. > -- Override with -DENABLE_USB=ON/OFF > -- > -- Configuring B100 support... > -- Dependency ENABLE_LIBUHD = ON > -- Dependency ENABLE_USB = ON > -- Enabling B100 support. > -- Override with -DENABLE_B100=ON/OFF > -- > -- Configuring B200 support... > -- Dependency ENABLE_LIBUHD = ON > -- Dependency ENABLE_USB = ON > -- Enabling B200 support. > -- Override with -DENABLE_B200=ON/OFF > -- > -- Configuring USRP1 support... > -- Dependency ENABLE_LIBUHD = ON > -- Dependency ENABLE_USB = ON > -- Enabling USRP1 support. > -- Override with -DENABLE_USRP1=ON/OFF > -- > -- Configuring USRP2 support... > -- Dependency ENABLE_LIBUHD = ON > -- Enabling USRP2 support. > -- Override with -DENABLE_USRP2=ON/OFF > -- > -- Configuring X300 support... > -- Dependency ENABLE_LIBUHD = ON > -- Enabling X300 support. > -- Override with -DENABLE_X300=ON/OFF > -- > -- Configuring MPMD support... > -- Dependency ENABLE_LIBUHD = ON > -- Enabling MPMD support. > -- Override with -DENABLE_MPMD=ON/OFF > -- > -- Configuring SIM support... > -- Dependency ENABLE_LIBUHD = ON > -- Dependency ENABLE_MPMD = ON > -- Dependency ENABLE_PYTHON_API = ON > -- Enabling SIM support. > -- Override with -DENABLE_SIM=ON/OFF > -- > -- Configuring N300 support... > -- Dependency ENABLE_LIBUHD = ON > -- Dependency ENABLE_MPMD = ON > -- Enabling N300 support. > -- Override with -DENABLE_N300=ON/OFF > -- > -- Configuring N320 support... > -- Dependency ENABLE_LIBUHD = ON > -- Dependency ENABLE_MPMD = ON > -- Enabling N320 support. > -- Override with -DENABLE_N320=ON/OFF > -- > -- Configuring E320 support... > -- Dependency ENABLE_LIBUHD = ON > -- Dependency ENABLE_MPMD = ON > -- Enabling E320 support. > -- Override with -DENABLE_E320=ON/OFF > -- > -- Configuring E300 support... > -- Dependency ENABLE_LIBUHD = ON > -- Dependency ENABLE_MPMD = ON > -- Enabling E300 support. > -- Override with -DENABLE_E300=ON/OFF > -- > -- Configuring X400 support... > -- Dependency ENABLE_LIBUHD = ON > -- Dependency ENABLE_MPMD = ON > -- Enabling X400 support. > -- Override with -DENABLE_X400=ON/OFF > -- > -- Configuring OctoClock support... > -- Dependency ENABLE_LIBUHD = ON > -- Enabling OctoClock support. > -- Override with -DENABLE_OCTOCLOCK=ON/OFF > -- > -- Configuring DPDK support... > -- Dependency ENABLE_MPMD = ON > -- Dependency DPDK_FOUND = FALSE > -- Disabling DPDK support. > -- Override with -DENABLE_DPDK=ON/OFF > -- > -- > -- Configuring priority scheduling... > -- Priority scheduling supported through pthread_setschedparam. > -- Setting thread names is supported through pthread_setname_np. > -- Setting thread affinity is supported through windows SetThreadAffinityMask. > -- > -- Configuring module loading... > -- Module loading supported through LoadLibrary. > -- > -- Configuring atomics support... > -- Atomics support is built-in, no linking required. > -- > -- Processing NI-RIO FPGA LVBITX Bitstreams... > -- Using x300.lvbitx_base for codegen > -- Using x310.lvbitx_base for codegen > -- > -- USB support enabled via libusb. > -- > -- Configuring interface address discovery... > -- Interface address discovery supported through SIO_GET_INTERFACE_LIST. > -- > -- Loading build info. > CMake Deprecation Warning at cmake/Modules/CMakeRC.cmake:63 > (cmake_minimum_required): > Compatibility with CMake < 3.5 will be removed from a future version of > CMake. > > Update the VERSION argument <min> value or use a ...<max> suffix to tell > CMake that the project does not need compatibility with older versions. > Call Stack (most recent call first): > lib/rc/CMakeLists.txt:7 (include) > > > -- > -- Adding B2XX device test target > -- Adding X3x0 device test target > -- Adding E3XX device test target > -- Adding N3XX device test target > -- Adding E32x device test target > -- Adding X410 device test target > -- Adding X440 device test target > -- > -- > -- Configuring Manual support... > -- Dependency DOXYGEN_FOUND = YES > -- Enabling Manual support. > -- Override with -DENABLE_MANUAL=ON/OFF > -- > -- Configuring API/Doxygen support... > -- Dependency DOXYGEN_FOUND = YES > -- Enabling API/Doxygen support. > -- Override with -DENABLE_DOXYGEN=ON/OFF > -- > -- Found GZip: C:/msys64/usr/bin/gzip.exe > -- > -- Compressed Man Pages enabled > -- Override with -DENABLE_MAN_PAGE_COMPRESSION=ON/OFF > -- > -- Configuring Man Pages support... > -- Dependency NOT_WIN32 = > -- Dependency GZIP_FOUND = TRUE > -- Disabling Man Pages support. > -- Override with -DENABLE_MAN_PAGES=ON/OFF > -- Using Pybind11 from: C:/msys64/mingw64/include > -- > -- Python checking for gevent module > -- Python checking for gevent module - "import gevent" failed (is it installed?) > -- > -- Python checking for mprpc module > -- Python checking for mprpc module - "import mprpc" failed (is it installed?) > -- > -- Python checking for pyudev module > -- Python checking for pyudev module - "import pyudev" failed (is it installed?) > -- > -- Python checking for pyroute2 module > -- Python checking for pyroute2 module - "import pyroute2" failed (is > it installed?) > -- MPM unit test Python package prerequisites not met; skipping > -- > -- > -- Python checking for virtual environment > -- Python checking for virtual environment - "assert sys.prefix != > sys.base_prefix" failed > -- Installing 'uhd' Python module to: > C:/msys64/mingw64/lib/python3.11/site-packages > -- > -- ###################################################### > -- # UHD enabled components > -- ###################################################### > -- * LibUHD > -- * LibUHD - C API > -- * LibUHD - Python API > -- * Examples > -- * Utils > -- * Tests > -- * Python Module (Utils only) > -- * USB > -- * B100 > -- * B200 > -- * USRP1 > -- * USRP2 > -- * X300 > -- * MPMD > -- * SIM > -- * N300 > -- * N320 > -- * E320 > -- * E300 > -- * X400 > -- * OctoClock > -- * Manual > -- * API/Doxygen > -- > -- ###################################################### > -- # UHD disabled components > -- ###################################################### > -- * DPDK > -- * Man Pages > -- > -- ****************************************************** > -- * You are building the UHD development master branch. > -- * For production code, we recommend our stable, > -- * releases or using the release branch (maint). > -- ****************************************************** > -- Building version: 4.7.0.0-0-ga5ed1872 > -- Using install prefix: C:/msys64/mingw64 > -- Configuring done (3.7s) > -- Generating done (0.7s) > -- Build files have been written to: C:/msys64/home/chris/src/uhd/host/build > > I'm also applying a patch to get it to build. It was needed for > 4.6.0.0 and I've had to make some tweaks. None of the files touched > by the patch are part of the error, but I'll include it for > completeness. > > Thanks in advance, > > Chris
MB
Martin Braun
Fri, Jul 5, 2024 10:09 AM

Hi Chris,

thanks for reporting back! mingw is not one of the compilers we test with
(it's not so long ago that it didn't even support std::thread and couldn't
compile UHD at all).

But this fix is something we can add permanently to UHD. In fact,  I think
this include should come first in all the tests, but it seems not to be a
problem for most of them.

Cheers,
M

On Thu, Jul 4, 2024 at 10:26 PM Chris Gorman chrisjohgorman@gmail.com
wrote:

Hello all,

Just a follow up email in case someone else tries to build a msys2
package for libuhd and gets the same error.  The fix was to invert the
include order and have <boost/test/unit_test.hpp> included before
<uhdlib/utils//isatty.hpp>.

diff --git a/host/tests/isatty_test.cpp b/host/tests/isatty_test.cpp
index 99da27fd1..de1b4e110 100644
--- a/host/tests/isatty_test.cpp
+++ b/host/tests/isatty_test.cpp
@@ -3,9 +3,8 @@
//
// SPDX-License-Identifier: GPL-3.0-or-later
//

-#include <uhdlib/utils/isatty.hpp>
#include <boost/test/unit_test.hpp>
+#include <uhdlib/utils/isatty.hpp>
#include <cstdio>
#include <iostream>

I also ran into a linker error and fixed it by inverting the order in
which two libraries occurred on the command line.

diff --git a/host/tests/CMakeLists.txt b/host/tests/CMakeLists.txt
index bac599811..682ce01c2 100644
--- a/host/tests/CMakeLists.txt
+++ b/host/tests/CMakeLists.txt
@@ -97,7 +97,7 @@ include_directories("${CMAKE_CURRENT_SOURCE_DIR}/common")
foreach(test_source ${test_sources})
get_filename_component(test_name ${test_source} NAME_WE)
add_executable(${test_name} ${test_source})

  • target_link_libraries(${test_name} uhd uhd_test ${Boost_LIBRARIES})
  • target_link_libraries(${test_name} uhd_test uhd ${Boost_LIBRARIES})
    UHD_ADD_TEST(${test_name} ${test_name})
    UHD_INSTALL(TARGETS ${test_name} RUNTIME DESTINATION
    ${PKG_LIB_DIR}/tests COMPONENT tests)
    endforeach(test_source)
    @@ -106,7 +106,7 @@ endforeach(test_source)
    foreach(benchmark_source ${benchmark_sources})
    get_filename_component(benchmark_name ${benchmark_source} NAME_WE)
    add_executable(${benchmark_name} ${benchmark_source})
  • target_link_libraries(${benchmark_name} uhd uhd_test
    ${Boost_LIBRARIES})
  • target_link_libraries(${benchmark_name} uhd_test uhd
    ${Boost_LIBRARIES})
    UHD_INSTALL(TARGETS ${benchmark_name} RUNTIME DESTINATION
    ${PKG_LIB_DIR}/tests COMPONENT tests)
    endforeach(benchmark_source)

Thanks for your time.

Chris

On Tue, Jul 2, 2024 at 10:13 AM Chris Gorman chrisjohgorman@gmail.com
wrote:

Hello USRP users,

I'm trying to update my build from 4.6.0.0 to 4.7.0.0 for UHD on
msys2/mingw64.  During the build I get the following error...

$ C:\msys64\mingw64\bin\c++.exe
-DBOOST_ASIO_DISABLE_STD_EXPERIMENTAL_STRING_VIEW
-DBOOST_ASIO_DISABLE_STD_STRING_VIEW -DBOOST_ATOMIC_DYN_LINK
-DBOOST_ATOMIC_NO_LIB -DBOOST_CHRONO_DYN_LINK -DBOOST_CHRONO_NO_LIB
-DBOOST_DATE_TIME_DYN_LINK -DBOOST_DATE_TIME_NO_LIB
-DBOOST_ERROR_CODE_HEADER_ONLY -DBOOST_FILESYSTEM_DYN_LINK
-DBOOST_FILESYSTEM_NO_LIB -DBOOST_PROGRAM_OPTIONS_DYN_LINK
-DBOOST_PROGRAM_OPTIONS_NO_LIB -DBOOST_SERIALIZATION_DYN_LINK
-DBOOST_SERIALIZATION_NO_LIB -DBOOST_SYSTEM_DYN_LINK
-DBOOST_SYSTEM_NO_LIB -DBOOST_TEST_DYN_LINK -DBOOST_TEST_MAIN
-DBOOST_THREAD_DYN_LINK -DBOOST_THREAD_NO_LIB
-DBOOST_UNIT_TEST_FRAMEWORK_DYN_LINK
-DBOOST_UNIT_TEST_FRAMEWORK_NO_LIB -DHAVE_CONFIG_H -DNOMINMAX
-DUHD_LOG_CONSOLE_COLOR -DUHD_LOG_CONSOLE_LEVEL=2
-DUHD_LOG_FILE_LEVEL=2 -DUHD_LOG_MIN_LEVEL=1 -D_WIN32_WINNT=0x0501
-IC:/msys64/home/chris/src/uhd/host/build/include
-IC:/msys64/home/chris/src/uhd/host/include
-IC:/msys64/home/chris/src/uhd/host/lib/include
-IC:/msys64/home/chris/src/uhd/host/build/lib/include
-IC:/msys64/home/chris/src/uhd/host/tests/common
-IC:/msys64/home/chris/src/uhd/host/build/lib/rfnoc
-IC:/msys64/home/chris/src/uhd/host/lib/rfnoc
-IC:/msys64/home/chris/src/uhd/host/build/lib/ic_reg_maps
-IC:/msys64/home/chris/src/uhd/host/lib/deps/rpclib/include
-IC:/msys64/home/chris/src/uhd/host/lib/deps/flatbuffers/include
-IC:/msys64/home/chris/src/uhd/host/build/_cmrc/include -O3 -DNDEBUG
-std=gnu++14  -Wall -Wextra -Wsign-compare -MD -MT
tests/CMakeFiles/isatty_test.dir/isatty_test.cpp.obj -MF
tests\CMakeFiles\isatty_test.dir\isatty_test.cpp.obj.d -o
tests/CMakeFiles/isatty_test.dir/isatty_test.cpp.obj -c
C:/msys64/home/chris/src/uhd/host/tests/isatty_test.cpp
In file included from
C:/msys64/mingw64/include/boost/assert/source_location.hpp:15,
from

C:/msys64/mingw64/include/boost/exception/exception.hpp:9,

              from

C:/msys64/mingw64/include/boost/throw_exception.hpp:21,

              from

C:/msys64/mingw64/include/boost/smart_ptr/detail/shared_count.hpp:31,
from
C:/msys64/mingw64/include/boost/smart_ptr/shared_ptr.hpp:18,
from C:/msys64/mingw64/include/boost/shared_ptr.hpp:17,
from
C:/msys64/mingw64/include/boost/test/tools/assertion_result.hpp:21,
from
C:/msys64/mingw64/include/boost/test/tools/old/impl.hpp:20,
from

C:/msys64/mingw64/include/boost/test/test_tools.hpp:46,

              from

C:/msys64/mingw64/include/boost/test/unit_test.hpp:18,

              from

C:/msys64/home/chris/src/uhd/host/tests/isatty_test.cpp:8:

C:/msys64/mingw64/include/c++/14.1.0/cstring:78:11: error: 'memchr'
has not been declared in '::'
78 |  using ::memchr;
|          ^~~~~~
C:/msys64/mingw64/include/c++/14.1.0/cstring:79:11: error: 'memcmp'
has not been declared in '::'
79 |  using ::memcmp;
|          ^~~~~~
C:/msys64/mingw64/include/c++/14.1.0/cstring:82:11: error: 'memset'
has not been declared in '::'
82 |  using ::memset;
|          ^~~~~~
C:/msys64/mingw64/include/c++/14.1.0/cstring:83:11: error: 'strcat'
has not been declared in '::'
83 |  using ::strcat;
|          ^~~~~~
C:/msys64/mingw64/include/c++/14.1.0/cstring:84:11: error: 'strcmp'
has not been declared in '::'
84 |  using ::strcmp;
|          ^~~~~~
C:/msys64/mingw64/include/c++/14.1.0/cstring:85:11: error: 'strcoll'
has not been declared in '::'
85 |  using ::strcoll;
|          ^~~~~~~
C:/msys64/mingw64/include/c++/14.1.0/cstring:86:11: error: 'strcpy'
has not been declared in '::'
86 |  using ::strcpy;
|          ^~~~~~
C:/msys64/mingw64/include/c++/14.1.0/cstring:87:11: error: 'strcspn'
has not been declared in '::'
87 |  using ::strcspn;
|          ^~~~~~~
C:/msys64/mingw64/include/c++/14.1.0/cstring:88:11: error: 'strerror'
has not been declared in '::'
88 |  using ::strerror;
|          ^~~~~~~~
C:/msys64/mingw64/include/c++/14.1.0/cstring:89:11: error: 'strlen'
has not been declared in '::'
89 |  using ::strlen;
|          ^~~~~~
C:/msys64/mingw64/include/c++/14.1.0/cstring:90:11: error: 'strncat'
has not been declared in '::'
90 |  using ::strncat;
|          ^~~~~~~
C:/msys64/mingw64/include/c++/14.1.0/cstring:91:11: error: 'strncmp'
has not been declared in '::'
91 |  using ::strncmp;
|          ^~~~~~~
C:/msys64/mingw64/include/c++/14.1.0/cstring:92:11: error: 'strncpy'
has not been declared in '::'
92 |  using ::strncpy;
|          ^~~~~~~
C:/msys64/mingw64/include/c++/14.1.0/cstring:93:11: error: 'strspn'
has not been declared in '::'
93 |  using ::strspn;
|          ^~~~~~
C:/msys64/mingw64/include/c++/14.1.0/cstring:95:11: error: 'strtok'
has not been declared in '::'
95 |  using ::strtok;
|          ^~~~~~
C:/msys64/mingw64/include/c++/14.1.0/cstring:97:11: error: 'strxfrm'
has not been declared in '::'
97 |  using ::strxfrm;
|          ^~~~~~~
C:/msys64/mingw64/include/c++/14.1.0/cstring:98:11: error: 'strchr'
has not been declared in '::'
98 |  using ::strchr;
|          ^~~~~~
C:/msys64/mingw64/include/c++/14.1.0/cstring:99:11: error: 'strpbrk'
has not been declared in '::'
99 |  using ::strpbrk;
|          ^~~~~~~
C:/msys64/mingw64/include/c++/14.1.0/cstring:100:11: error: 'strrchr'
has not been declared in '::'
100 |  using ::strrchr;
|          ^~~~~~~
C:/msys64/mingw64/include/c++/14.1.0/cstring:101:11: error: 'strstr'
has not been declared in '::'
101 |  using ::strstr;
|          ^~~~~~
C:/msys64/mingw64/include/boost/assert/source_location.hpp: In
function 'bool boost::operator==(const source_location&, const
source_location&)':
C:/msys64/mingw64/include/boost/assert/source_location.hpp:126:21:
error: 'strcmp' is not a member of 'std'; did you mean 'strchr'?
126 |        return std::strcmp( s1.file_, s2.file_ ) == 0 &&
std::strcmp( s1.function_, s2.function_ ) == 0 && s1.line_ == s2.line_
&& s1.column_ == s2.column_;
|                    ^~~~~~
|                    strchr
C:/msys64/mingw64/include/boost/assert/source_location.hpp:126:63:
error: 'strcmp' is not a member of 'std'; did you mean 'strchr'?
126 |        return std::strcmp( s1.file_, s2.file_ ) == 0 &&
std::strcmp( s1.function_, s2.function_ ) == 0 && s1.line_ == s2.line_
&& s1.column_ == s2.column_;
|

^~~~~~

   |

strchr

In file included from

C:/msys64/mingw64/include/boost/mpl/for_each.hpp:29,

              from

C:/msys64/mingw64/include/boost/test/tree/test_case_template.hpp:28,
from
C:/msys64/mingw64/include/boost/test/unit_test_suite.hpp:19,
from

C:/msys64/mingw64/include/boost/test/unit_test.hpp:19:

C:/msys64/mingw64/include/boost/utility/value_init.hpp: In constructor
'boost::detail::zero_init::zero_init(void*, std::size_t)':
C:/msys64/mingw64/include/boost/utility/value_init.hpp:73:12: error:
'memset' is not a member of 'std'; did you mean 'wmemset'?
73 |      std::memset( p, 0, n );
|            ^~~~~~
|            wmemset

It looks like I'm including something I shouldn't, but I don't know what.

My cmake build log is ...

$ cmake -DCMAKE_INSTALL_PREFIX=c:/msys64/mingw64 -DENABLE_PYTHON_API=ON

..

--
-- Configuring the Python interpreter...
-- Manually determining build Python version...
-- Python interpreter: C:/msys64/mingw64/bin/python3.11.exe Version:

3.11.9

-- Override with: -DPYTHON_EXECUTABLE=<path-to-python>
-- Manually determining runtime Python version...
-- Python runtime interpreter: C:/msys64/mingw64/bin/python3.11.exe
Version: 3.11.9
-- Override with: -DRUNTIME_PYTHON_EXECUTABLE=<path-to-python>
-- Finding Python Libraries...
CMake Warning (dev) at cmake/Modules/UHDPython.cmake:313 (find_package):
Policy CMP0148 is not set: The FindPythonInterp and FindPythonLibs

modules

are removed.  Run "cmake --help-policy CMP0148" for policy details.

Use

the cmake_policy command to set the policy and suppress this warning.

Call Stack (most recent call first):
cmake/Modules/UHDVersion.cmake:9 (include)
cmake/Modules/UHDPackage.cmake:9 (include)
CMakeLists.txt:107 (include)
This warning is for project developers.  Use -Wno-dev to suppress it.

-- Python Libraries: C:/msys64/mingw64/lib/libpython3.11.dll.a
-- Python include directories: C:/msys64/mingw64/include/python3.11
-- pybind11::lto disabled (problems with undefined symbols for MinGW for

now)

-- pybind11::thin_lto disabled (problems with undefined symbols for
MinGW for now)
-- Operating on master branch.
-- Using UHD Images Directory: C:\msys64\mingw64\share\uhd\images
-- Build type not specified: defaulting to release.

-- Configuring Boost C++ Libraries...

-- Checking for Boost version 1.65 or greater
--  Looking for required Boost components...
--  Enabling Boost Error Code Header Only
--    Disabling boost::asio use of std::string_view
--  Boost version: 1.85.0
--  Boost include directories: C:/msys64/mingw64/include
--  Boost library directories: C:/msys64/mingw64/lib
--  Boost libraries:

Boost::chrono;Boost::date_time;Boost::filesystem;Boost::program_options;Boost::serialization;Boost::thread;Boost::unit_test_framework;Boost::system

-- Looking for Boost version 1.65 or greater - found

-- Python checking for compatible Python version
-- Python checking for compatible Python version - 3.11.9 satisfies
minimum required version 3.7

-- Python checking for Mako templates module
-- Python checking for Mako templates module - 1.3.5 satisfies minimum
required version 0.4.2

-- Python checking for requests module
-- Python checking for requests module - 2.32.2 satisfies minimum
required version 2.0

-- Python checking for numpy module
-- Python checking for numpy module - 1.26.4 satisfies minimum
required version 1.11

-- Python checking for ruamel.yaml module
-- Python checking for ruamel.yaml module - 0.18.6 satisfies minimum
required version 0.15

-- Configuring LibUHD support...
--  Dependency Boost_FOUND = TRUE
--  Dependency HAVE_PYTHON_MODULE_MAKO = TRUE
--  Enabling LibUHD support.
--  Override with -DENABLE_LIBUHD=ON/OFF

-- Configuring LibUHD - C API support...
--  Dependency ENABLE_LIBUHD = ON
--  Enabling LibUHD - C API support.
--  Override with -DENABLE_C_API=ON/OFF

-- Configuring LibUHD - Python API support...
--  Dependency ENABLE_LIBUHD = ON
--  Dependency HAVE_PYTHON_MODULE_NUMPY = TRUE
--  Dependency HAVE_PYTHON_LIBS = TRUE
--  Enabling LibUHD - Python API support.
--  Override with -DENABLE_PYTHON_API=ON/OFF

-- Configuring Examples support...
--  Dependency ENABLE_LIBUHD = ON
--  Enabling Examples support.
--  Override with -DENABLE_EXAMPLES=ON/OFF

-- Configuring Utils support...
--  Dependency ENABLE_LIBUHD = ON
--  Enabling Utils support.
--  Override with -DENABLE_UTILS=ON/OFF

-- Configuring Tests support...
--  Dependency ENABLE_LIBUHD = ON
--  Enabling Tests support.
--  Override with -DENABLE_TESTS=ON/OFF

-- Configuring Python Module (Utils only) support...
--  Dependency HAVE_PYTHON_MODULE_NUMPY = TRUE
--  Dependency HAVE_PYTHON_MODULE_MAKO = TRUE
--  Dependency HAVE_PYTHON_MODULE_YAML = TRUE
--  Enabling Python Module (Utils only) support.
--  Override with -DENABLE_PYMOD_UTILS=ON/OFF

CMake Warning (dev) at

C:/msys64/mingw64/share/cmake/Modules/FindPackageHandleStandardArgs.cmake:447

(message):
find_package() specify a version range but the module DPDK does not
support this capability.  Only the lower endpoint of the range will be
used.
Call Stack (most recent call first):
cmake/Modules/FindDPDK.cmake:86 (find_package_handle_standard_args)
lib/CMakeLists.txt:63 (find_package)
This warning is for project developers.  Use -Wno-dev to suppress it.

-- Could NOT find DPDK (missing: DPDK_INCLUDE_DIRS DPDK_LIBRARIES)
(Required is at least version "18.11")

-- Configuring USB support...
--  Dependency ENABLE_LIBUHD = ON
--  Dependency LIBUSB_FOUND = TRUE
--  Enabling USB support.
--  Override with -DENABLE_USB=ON/OFF

-- Configuring B100 support...
--  Dependency ENABLE_LIBUHD = ON
--  Dependency ENABLE_USB = ON
--  Enabling B100 support.
--  Override with -DENABLE_B100=ON/OFF

-- Configuring B200 support...
--  Dependency ENABLE_LIBUHD = ON
--  Dependency ENABLE_USB = ON
--  Enabling B200 support.
--  Override with -DENABLE_B200=ON/OFF

-- Configuring USRP1 support...
--  Dependency ENABLE_LIBUHD = ON
--  Dependency ENABLE_USB = ON
--  Enabling USRP1 support.
--  Override with -DENABLE_USRP1=ON/OFF

-- Configuring USRP2 support...
--  Dependency ENABLE_LIBUHD = ON
--  Enabling USRP2 support.
--  Override with -DENABLE_USRP2=ON/OFF

-- Configuring X300 support...
--  Dependency ENABLE_LIBUHD = ON
--  Enabling X300 support.
--  Override with -DENABLE_X300=ON/OFF

-- Configuring MPMD support...
--  Dependency ENABLE_LIBUHD = ON
--  Enabling MPMD support.
--  Override with -DENABLE_MPMD=ON/OFF

-- Configuring SIM support...
--  Dependency ENABLE_LIBUHD = ON
--  Dependency ENABLE_MPMD = ON
--  Dependency ENABLE_PYTHON_API = ON
--  Enabling SIM support.
--  Override with -DENABLE_SIM=ON/OFF

-- Configuring N300 support...
--  Dependency ENABLE_LIBUHD = ON
--  Dependency ENABLE_MPMD = ON
--  Enabling N300 support.
--  Override with -DENABLE_N300=ON/OFF

-- Configuring N320 support...
--  Dependency ENABLE_LIBUHD = ON
--  Dependency ENABLE_MPMD = ON
--  Enabling N320 support.
--  Override with -DENABLE_N320=ON/OFF

-- Configuring E320 support...
--  Dependency ENABLE_LIBUHD = ON
--  Dependency ENABLE_MPMD = ON
--  Enabling E320 support.
--  Override with -DENABLE_E320=ON/OFF

-- Configuring E300 support...
--  Dependency ENABLE_LIBUHD = ON
--  Dependency ENABLE_MPMD = ON
--  Enabling E300 support.
--  Override with -DENABLE_E300=ON/OFF

-- Configuring X400 support...
--  Dependency ENABLE_LIBUHD = ON
--  Dependency ENABLE_MPMD = ON
--  Enabling X400 support.
--  Override with -DENABLE_X400=ON/OFF

-- Configuring OctoClock support...
--  Dependency ENABLE_LIBUHD = ON
--  Enabling OctoClock support.
--  Override with -DENABLE_OCTOCLOCK=ON/OFF

-- Configuring DPDK support...
--  Dependency ENABLE_MPMD = ON
--  Dependency DPDK_FOUND = FALSE
--  Disabling DPDK support.
--  Override with -DENABLE_DPDK=ON/OFF

--
-- Configuring priority scheduling...
--  Priority scheduling supported through pthread_setschedparam.
--  Setting thread names is supported through pthread_setname_np.
--  Setting thread affinity is supported through windows

SetThreadAffinityMask.

--
-- Configuring module loading...
--  Module loading supported through LoadLibrary.

-- Configuring atomics support...
--  Atomics support is built-in, no linking required.

-- Processing NI-RIO FPGA LVBITX Bitstreams...
--  Using x300.lvbitx_base for codegen
--  Using x310.lvbitx_base for codegen

-- USB support enabled via libusb.

-- Configuring interface address discovery...
--  Interface address discovery supported through

SIO_GET_INTERFACE_LIST.

--
-- Loading build info.
CMake Deprecation Warning at cmake/Modules/CMakeRC.cmake:63
(cmake_minimum_required):
Compatibility with CMake < 3.5 will be removed from a future version of
CMake.

Update the VERSION argument <min> value or use a ...<max> suffix to

tell

CMake that the project does not need compatibility with older versions.
Call Stack (most recent call first):
lib/rc/CMakeLists.txt:7 (include)

--
-- Adding B2XX device test target
-- Adding X3x0 device test target
-- Adding E3XX device test target
-- Adding N3XX device test target
-- Adding E32x device test target
-- Adding X410 device test target
-- Adding X440 device test target

--
-- Configuring Manual support...
--  Dependency DOXYGEN_FOUND = YES
--  Enabling Manual support.
--  Override with -DENABLE_MANUAL=ON/OFF

-- Configuring API/Doxygen support...
--  Dependency DOXYGEN_FOUND = YES
--  Enabling API/Doxygen support.
--  Override with -DENABLE_DOXYGEN=ON/OFF

-- Found GZip: C:/msys64/usr/bin/gzip.exe

-- Compressed Man Pages enabled
--  Override with -DENABLE_MAN_PAGE_COMPRESSION=ON/OFF

-- Configuring Man Pages support...
--  Dependency NOT_WIN32 =
--  Dependency GZIP_FOUND = TRUE
--  Disabling Man Pages support.
--  Override with -DENABLE_MAN_PAGES=ON/OFF
-- Using Pybind11 from: C:/msys64/mingw64/include

-- Python checking for gevent module
-- Python checking for gevent module - "import gevent" failed (is it

installed?)

--
-- Python checking for mprpc module
-- Python checking for mprpc module - "import mprpc" failed (is it

installed?)

--
-- Python checking for pyudev module
-- Python checking for pyudev module - "import pyudev" failed (is it

installed?)

--
-- Python checking for pyroute2 module
-- Python checking for pyroute2 module - "import pyroute2" failed (is
it installed?)
-- MPM unit test Python package prerequisites not met; skipping

--
-- Python checking for virtual environment
-- Python checking for virtual environment - "assert sys.prefix !=
sys.base_prefix" failed
-- Installing 'uhd' Python module to:
C:/msys64/mingw64/lib/python3.11/site-packages

-- ######################################################
-- # UHD enabled components
-- ######################################################
--  * LibUHD
--  * LibUHD - C API
--  * LibUHD - Python API
--  * Examples
--  * Utils
--  * Tests
--  * Python Module (Utils only)
--  * USB
--  * B100
--  * B200
--  * USRP1
--  * USRP2
--  * X300
--  * MPMD
--  * SIM
--  * N300
--  * N320
--  * E320
--  * E300
--  * X400
--  * OctoClock
--  * Manual
--  * API/Doxygen

-- ######################################################
-- # UHD disabled components
-- ######################################################
--  * DPDK
--  * Man Pages

-- ******************************************************
-- * You are building the UHD development master branch.
-- * For production code, we recommend our stable,
-- * releases or using the release branch (maint).
-- ******************************************************
-- Building version: 4.7.0.0-0-ga5ed1872
-- Using install prefix: C:/msys64/mingw64
-- Configuring done (3.7s)
-- Generating done (0.7s)
-- Build files have been written to:

C:/msys64/home/chris/src/uhd/host/build

I'm also applying a patch to get it to build.  It was needed for
4.6.0.0 and I've had to make some tweaks.  None of the files touched
by the patch are part of the error, but I'll include it for
completeness.

Thanks in advance,

Chris


USRP-users mailing list -- usrp-users@lists.ettus.com
To unsubscribe send an email to usrp-users-leave@lists.ettus.com

Hi Chris, thanks for reporting back! mingw is not one of the compilers we test with (it's not so long ago that it didn't even support std::thread and couldn't compile UHD at all). But this fix is something we can add permanently to UHD. In fact, I think this include should come first in all the tests, but it seems not to be a problem for most of them. Cheers, M On Thu, Jul 4, 2024 at 10:26 PM Chris Gorman <chrisjohgorman@gmail.com> wrote: > Hello all, > > Just a follow up email in case someone else tries to build a msys2 > package for libuhd and gets the same error. The fix was to invert the > include order and have <boost/test/unit_test.hpp> included before > <uhdlib/utils//isatty.hpp>. > > diff --git a/host/tests/isatty_test.cpp b/host/tests/isatty_test.cpp > index 99da27fd1..de1b4e110 100644 > --- a/host/tests/isatty_test.cpp > +++ b/host/tests/isatty_test.cpp > @@ -3,9 +3,8 @@ > // > // SPDX-License-Identifier: GPL-3.0-or-later > // > - > -#include <uhdlib/utils/isatty.hpp> > #include <boost/test/unit_test.hpp> > +#include <uhdlib/utils/isatty.hpp> > #include <cstdio> > #include <iostream> > > I also ran into a linker error and fixed it by inverting the order in > which two libraries occurred on the command line. > > diff --git a/host/tests/CMakeLists.txt b/host/tests/CMakeLists.txt > index bac599811..682ce01c2 100644 > --- a/host/tests/CMakeLists.txt > +++ b/host/tests/CMakeLists.txt > @@ -97,7 +97,7 @@ include_directories("${CMAKE_CURRENT_SOURCE_DIR}/common") > foreach(test_source ${test_sources}) > get_filename_component(test_name ${test_source} NAME_WE) > add_executable(${test_name} ${test_source}) > - target_link_libraries(${test_name} uhd uhd_test ${Boost_LIBRARIES}) > + target_link_libraries(${test_name} uhd_test uhd ${Boost_LIBRARIES}) > UHD_ADD_TEST(${test_name} ${test_name}) > UHD_INSTALL(TARGETS ${test_name} RUNTIME DESTINATION > ${PKG_LIB_DIR}/tests COMPONENT tests) > endforeach(test_source) > @@ -106,7 +106,7 @@ endforeach(test_source) > foreach(benchmark_source ${benchmark_sources}) > get_filename_component(benchmark_name ${benchmark_source} NAME_WE) > add_executable(${benchmark_name} ${benchmark_source}) > - target_link_libraries(${benchmark_name} uhd uhd_test > ${Boost_LIBRARIES}) > + target_link_libraries(${benchmark_name} uhd_test uhd > ${Boost_LIBRARIES}) > UHD_INSTALL(TARGETS ${benchmark_name} RUNTIME DESTINATION > ${PKG_LIB_DIR}/tests COMPONENT tests) > endforeach(benchmark_source) > > Thanks for your time. > > Chris > > On Tue, Jul 2, 2024 at 10:13 AM Chris Gorman <chrisjohgorman@gmail.com> > wrote: > > > > Hello USRP users, > > > > I'm trying to update my build from 4.6.0.0 to 4.7.0.0 for UHD on > > msys2/mingw64. During the build I get the following error... > > > > $ C:\msys64\mingw64\bin\c++.exe > > -DBOOST_ASIO_DISABLE_STD_EXPERIMENTAL_STRING_VIEW > > -DBOOST_ASIO_DISABLE_STD_STRING_VIEW -DBOOST_ATOMIC_DYN_LINK > > -DBOOST_ATOMIC_NO_LIB -DBOOST_CHRONO_DYN_LINK -DBOOST_CHRONO_NO_LIB > > -DBOOST_DATE_TIME_DYN_LINK -DBOOST_DATE_TIME_NO_LIB > > -DBOOST_ERROR_CODE_HEADER_ONLY -DBOOST_FILESYSTEM_DYN_LINK > > -DBOOST_FILESYSTEM_NO_LIB -DBOOST_PROGRAM_OPTIONS_DYN_LINK > > -DBOOST_PROGRAM_OPTIONS_NO_LIB -DBOOST_SERIALIZATION_DYN_LINK > > -DBOOST_SERIALIZATION_NO_LIB -DBOOST_SYSTEM_DYN_LINK > > -DBOOST_SYSTEM_NO_LIB -DBOOST_TEST_DYN_LINK -DBOOST_TEST_MAIN > > -DBOOST_THREAD_DYN_LINK -DBOOST_THREAD_NO_LIB > > -DBOOST_UNIT_TEST_FRAMEWORK_DYN_LINK > > -DBOOST_UNIT_TEST_FRAMEWORK_NO_LIB -DHAVE_CONFIG_H -DNOMINMAX > > -DUHD_LOG_CONSOLE_COLOR -DUHD_LOG_CONSOLE_LEVEL=2 > > -DUHD_LOG_FILE_LEVEL=2 -DUHD_LOG_MIN_LEVEL=1 -D_WIN32_WINNT=0x0501 > > -IC:/msys64/home/chris/src/uhd/host/build/include > > -IC:/msys64/home/chris/src/uhd/host/include > > -IC:/msys64/home/chris/src/uhd/host/lib/include > > -IC:/msys64/home/chris/src/uhd/host/build/lib/include > > -IC:/msys64/home/chris/src/uhd/host/tests/common > > -IC:/msys64/home/chris/src/uhd/host/build/lib/rfnoc > > -IC:/msys64/home/chris/src/uhd/host/lib/rfnoc > > -IC:/msys64/home/chris/src/uhd/host/build/lib/ic_reg_maps > > -IC:/msys64/home/chris/src/uhd/host/lib/deps/rpclib/include > > -IC:/msys64/home/chris/src/uhd/host/lib/deps/flatbuffers/include > > -IC:/msys64/home/chris/src/uhd/host/build/_cmrc/include -O3 -DNDEBUG > > -std=gnu++14 -Wall -Wextra -Wsign-compare -MD -MT > > tests/CMakeFiles/isatty_test.dir/isatty_test.cpp.obj -MF > > tests\CMakeFiles\isatty_test.dir\isatty_test.cpp.obj.d -o > > tests/CMakeFiles/isatty_test.dir/isatty_test.cpp.obj -c > > C:/msys64/home/chris/src/uhd/host/tests/isatty_test.cpp > > In file included from > > C:/msys64/mingw64/include/boost/assert/source_location.hpp:15, > > from > C:/msys64/mingw64/include/boost/exception/exception.hpp:9, > > from > C:/msys64/mingw64/include/boost/throw_exception.hpp:21, > > from > > C:/msys64/mingw64/include/boost/smart_ptr/detail/shared_count.hpp:31, > > from > > C:/msys64/mingw64/include/boost/smart_ptr/shared_ptr.hpp:18, > > from C:/msys64/mingw64/include/boost/shared_ptr.hpp:17, > > from > > C:/msys64/mingw64/include/boost/test/tools/assertion_result.hpp:21, > > from > > C:/msys64/mingw64/include/boost/test/tools/old/impl.hpp:20, > > from > C:/msys64/mingw64/include/boost/test/test_tools.hpp:46, > > from > C:/msys64/mingw64/include/boost/test/unit_test.hpp:18, > > from > C:/msys64/home/chris/src/uhd/host/tests/isatty_test.cpp:8: > > C:/msys64/mingw64/include/c++/14.1.0/cstring:78:11: error: 'memchr' > > has not been declared in '::' > > 78 | using ::memchr; > > | ^~~~~~ > > C:/msys64/mingw64/include/c++/14.1.0/cstring:79:11: error: 'memcmp' > > has not been declared in '::' > > 79 | using ::memcmp; > > | ^~~~~~ > > C:/msys64/mingw64/include/c++/14.1.0/cstring:82:11: error: 'memset' > > has not been declared in '::' > > 82 | using ::memset; > > | ^~~~~~ > > C:/msys64/mingw64/include/c++/14.1.0/cstring:83:11: error: 'strcat' > > has not been declared in '::' > > 83 | using ::strcat; > > | ^~~~~~ > > C:/msys64/mingw64/include/c++/14.1.0/cstring:84:11: error: 'strcmp' > > has not been declared in '::' > > 84 | using ::strcmp; > > | ^~~~~~ > > C:/msys64/mingw64/include/c++/14.1.0/cstring:85:11: error: 'strcoll' > > has not been declared in '::' > > 85 | using ::strcoll; > > | ^~~~~~~ > > C:/msys64/mingw64/include/c++/14.1.0/cstring:86:11: error: 'strcpy' > > has not been declared in '::' > > 86 | using ::strcpy; > > | ^~~~~~ > > C:/msys64/mingw64/include/c++/14.1.0/cstring:87:11: error: 'strcspn' > > has not been declared in '::' > > 87 | using ::strcspn; > > | ^~~~~~~ > > C:/msys64/mingw64/include/c++/14.1.0/cstring:88:11: error: 'strerror' > > has not been declared in '::' > > 88 | using ::strerror; > > | ^~~~~~~~ > > C:/msys64/mingw64/include/c++/14.1.0/cstring:89:11: error: 'strlen' > > has not been declared in '::' > > 89 | using ::strlen; > > | ^~~~~~ > > C:/msys64/mingw64/include/c++/14.1.0/cstring:90:11: error: 'strncat' > > has not been declared in '::' > > 90 | using ::strncat; > > | ^~~~~~~ > > C:/msys64/mingw64/include/c++/14.1.0/cstring:91:11: error: 'strncmp' > > has not been declared in '::' > > 91 | using ::strncmp; > > | ^~~~~~~ > > C:/msys64/mingw64/include/c++/14.1.0/cstring:92:11: error: 'strncpy' > > has not been declared in '::' > > 92 | using ::strncpy; > > | ^~~~~~~ > > C:/msys64/mingw64/include/c++/14.1.0/cstring:93:11: error: 'strspn' > > has not been declared in '::' > > 93 | using ::strspn; > > | ^~~~~~ > > C:/msys64/mingw64/include/c++/14.1.0/cstring:95:11: error: 'strtok' > > has not been declared in '::' > > 95 | using ::strtok; > > | ^~~~~~ > > C:/msys64/mingw64/include/c++/14.1.0/cstring:97:11: error: 'strxfrm' > > has not been declared in '::' > > 97 | using ::strxfrm; > > | ^~~~~~~ > > C:/msys64/mingw64/include/c++/14.1.0/cstring:98:11: error: 'strchr' > > has not been declared in '::' > > 98 | using ::strchr; > > | ^~~~~~ > > C:/msys64/mingw64/include/c++/14.1.0/cstring:99:11: error: 'strpbrk' > > has not been declared in '::' > > 99 | using ::strpbrk; > > | ^~~~~~~ > > C:/msys64/mingw64/include/c++/14.1.0/cstring:100:11: error: 'strrchr' > > has not been declared in '::' > > 100 | using ::strrchr; > > | ^~~~~~~ > > C:/msys64/mingw64/include/c++/14.1.0/cstring:101:11: error: 'strstr' > > has not been declared in '::' > > 101 | using ::strstr; > > | ^~~~~~ > > C:/msys64/mingw64/include/boost/assert/source_location.hpp: In > > function 'bool boost::operator==(const source_location&, const > > source_location&)': > > C:/msys64/mingw64/include/boost/assert/source_location.hpp:126:21: > > error: 'strcmp' is not a member of 'std'; did you mean 'strchr'? > > 126 | return std::strcmp( s1.file_, s2.file_ ) == 0 && > > std::strcmp( s1.function_, s2.function_ ) == 0 && s1.line_ == s2.line_ > > && s1.column_ == s2.column_; > > | ^~~~~~ > > | strchr > > C:/msys64/mingw64/include/boost/assert/source_location.hpp:126:63: > > error: 'strcmp' is not a member of 'std'; did you mean 'strchr'? > > 126 | return std::strcmp( s1.file_, s2.file_ ) == 0 && > > std::strcmp( s1.function_, s2.function_ ) == 0 && s1.line_ == s2.line_ > > && s1.column_ == s2.column_; > > | > ^~~~~~ > > | > strchr > > In file included from > C:/msys64/mingw64/include/boost/mpl/for_each.hpp:29, > > from > > C:/msys64/mingw64/include/boost/test/tree/test_case_template.hpp:28, > > from > > C:/msys64/mingw64/include/boost/test/unit_test_suite.hpp:19, > > from > C:/msys64/mingw64/include/boost/test/unit_test.hpp:19: > > C:/msys64/mingw64/include/boost/utility/value_init.hpp: In constructor > > 'boost::detail::zero_init::zero_init(void*, std::size_t)': > > C:/msys64/mingw64/include/boost/utility/value_init.hpp:73:12: error: > > 'memset' is not a member of 'std'; did you mean 'wmemset'? > > 73 | std::memset( p, 0, n ); > > | ^~~~~~ > > | wmemset > > > > It looks like I'm including something I shouldn't, but I don't know what. > > > > My cmake build log is ... > > > > $ cmake -DCMAKE_INSTALL_PREFIX=c:/msys64/mingw64 -DENABLE_PYTHON_API=ON > .. > > -- > > -- Configuring the Python interpreter... > > -- Manually determining build Python version... > > -- Python interpreter: C:/msys64/mingw64/bin/python3.11.exe Version: > 3.11.9 > > -- Override with: -DPYTHON_EXECUTABLE=<path-to-python> > > -- Manually determining runtime Python version... > > -- Python runtime interpreter: C:/msys64/mingw64/bin/python3.11.exe > > Version: 3.11.9 > > -- Override with: -DRUNTIME_PYTHON_EXECUTABLE=<path-to-python> > > -- Finding Python Libraries... > > CMake Warning (dev) at cmake/Modules/UHDPython.cmake:313 (find_package): > > Policy CMP0148 is not set: The FindPythonInterp and FindPythonLibs > modules > > are removed. Run "cmake --help-policy CMP0148" for policy details. > Use > > the cmake_policy command to set the policy and suppress this warning. > > > > Call Stack (most recent call first): > > cmake/Modules/UHDVersion.cmake:9 (include) > > cmake/Modules/UHDPackage.cmake:9 (include) > > CMakeLists.txt:107 (include) > > This warning is for project developers. Use -Wno-dev to suppress it. > > > > -- Python Libraries: C:/msys64/mingw64/lib/libpython3.11.dll.a > > -- Python include directories: C:/msys64/mingw64/include/python3.11 > > -- pybind11::lto disabled (problems with undefined symbols for MinGW for > now) > > -- pybind11::thin_lto disabled (problems with undefined symbols for > > MinGW for now) > > -- Operating on master branch. > > -- Using UHD Images Directory: C:\msys64\mingw64\share\uhd\images > > -- Build type not specified: defaulting to release. > > -- > > -- Configuring Boost C++ Libraries... > > -- > > -- Checking for Boost version 1.65 or greater > > -- Looking for required Boost components... > > -- Enabling Boost Error Code Header Only > > -- Disabling boost::asio use of std::string_view > > -- Boost version: 1.85.0 > > -- Boost include directories: C:/msys64/mingw64/include > > -- Boost library directories: C:/msys64/mingw64/lib > > -- Boost libraries: > > > Boost::chrono;Boost::date_time;Boost::filesystem;Boost::program_options;Boost::serialization;Boost::thread;Boost::unit_test_framework;Boost::system > > -- Looking for Boost version 1.65 or greater - found > > -- > > -- Python checking for compatible Python version > > -- Python checking for compatible Python version - 3.11.9 satisfies > > minimum required version 3.7 > > -- > > -- Python checking for Mako templates module > > -- Python checking for Mako templates module - 1.3.5 satisfies minimum > > required version 0.4.2 > > -- > > -- Python checking for requests module > > -- Python checking for requests module - 2.32.2 satisfies minimum > > required version 2.0 > > -- > > -- Python checking for numpy module > > -- Python checking for numpy module - 1.26.4 satisfies minimum > > required version 1.11 > > -- > > -- Python checking for ruamel.yaml module > > -- Python checking for ruamel.yaml module - 0.18.6 satisfies minimum > > required version 0.15 > > -- > > -- Configuring LibUHD support... > > -- Dependency Boost_FOUND = TRUE > > -- Dependency HAVE_PYTHON_MODULE_MAKO = TRUE > > -- Enabling LibUHD support. > > -- Override with -DENABLE_LIBUHD=ON/OFF > > -- > > -- Configuring LibUHD - C API support... > > -- Dependency ENABLE_LIBUHD = ON > > -- Enabling LibUHD - C API support. > > -- Override with -DENABLE_C_API=ON/OFF > > -- > > -- Configuring LibUHD - Python API support... > > -- Dependency ENABLE_LIBUHD = ON > > -- Dependency HAVE_PYTHON_MODULE_NUMPY = TRUE > > -- Dependency HAVE_PYTHON_LIBS = TRUE > > -- Enabling LibUHD - Python API support. > > -- Override with -DENABLE_PYTHON_API=ON/OFF > > -- > > -- Configuring Examples support... > > -- Dependency ENABLE_LIBUHD = ON > > -- Enabling Examples support. > > -- Override with -DENABLE_EXAMPLES=ON/OFF > > -- > > -- Configuring Utils support... > > -- Dependency ENABLE_LIBUHD = ON > > -- Enabling Utils support. > > -- Override with -DENABLE_UTILS=ON/OFF > > -- > > -- Configuring Tests support... > > -- Dependency ENABLE_LIBUHD = ON > > -- Enabling Tests support. > > -- Override with -DENABLE_TESTS=ON/OFF > > -- > > -- Configuring Python Module (Utils only) support... > > -- Dependency HAVE_PYTHON_MODULE_NUMPY = TRUE > > -- Dependency HAVE_PYTHON_MODULE_MAKO = TRUE > > -- Dependency HAVE_PYTHON_MODULE_YAML = TRUE > > -- Enabling Python Module (Utils only) support. > > -- Override with -DENABLE_PYMOD_UTILS=ON/OFF > > -- > > CMake Warning (dev) at > > > C:/msys64/mingw64/share/cmake/Modules/FindPackageHandleStandardArgs.cmake:447 > > (message): > > `find_package()` specify a version range but the module DPDK does not > > support this capability. Only the lower endpoint of the range will be > > used. > > Call Stack (most recent call first): > > cmake/Modules/FindDPDK.cmake:86 (find_package_handle_standard_args) > > lib/CMakeLists.txt:63 (find_package) > > This warning is for project developers. Use -Wno-dev to suppress it. > > > > -- Could NOT find DPDK (missing: DPDK_INCLUDE_DIRS DPDK_LIBRARIES) > > (Required is at least version "18.11") > > -- > > -- Configuring USB support... > > -- Dependency ENABLE_LIBUHD = ON > > -- Dependency LIBUSB_FOUND = TRUE > > -- Enabling USB support. > > -- Override with -DENABLE_USB=ON/OFF > > -- > > -- Configuring B100 support... > > -- Dependency ENABLE_LIBUHD = ON > > -- Dependency ENABLE_USB = ON > > -- Enabling B100 support. > > -- Override with -DENABLE_B100=ON/OFF > > -- > > -- Configuring B200 support... > > -- Dependency ENABLE_LIBUHD = ON > > -- Dependency ENABLE_USB = ON > > -- Enabling B200 support. > > -- Override with -DENABLE_B200=ON/OFF > > -- > > -- Configuring USRP1 support... > > -- Dependency ENABLE_LIBUHD = ON > > -- Dependency ENABLE_USB = ON > > -- Enabling USRP1 support. > > -- Override with -DENABLE_USRP1=ON/OFF > > -- > > -- Configuring USRP2 support... > > -- Dependency ENABLE_LIBUHD = ON > > -- Enabling USRP2 support. > > -- Override with -DENABLE_USRP2=ON/OFF > > -- > > -- Configuring X300 support... > > -- Dependency ENABLE_LIBUHD = ON > > -- Enabling X300 support. > > -- Override with -DENABLE_X300=ON/OFF > > -- > > -- Configuring MPMD support... > > -- Dependency ENABLE_LIBUHD = ON > > -- Enabling MPMD support. > > -- Override with -DENABLE_MPMD=ON/OFF > > -- > > -- Configuring SIM support... > > -- Dependency ENABLE_LIBUHD = ON > > -- Dependency ENABLE_MPMD = ON > > -- Dependency ENABLE_PYTHON_API = ON > > -- Enabling SIM support. > > -- Override with -DENABLE_SIM=ON/OFF > > -- > > -- Configuring N300 support... > > -- Dependency ENABLE_LIBUHD = ON > > -- Dependency ENABLE_MPMD = ON > > -- Enabling N300 support. > > -- Override with -DENABLE_N300=ON/OFF > > -- > > -- Configuring N320 support... > > -- Dependency ENABLE_LIBUHD = ON > > -- Dependency ENABLE_MPMD = ON > > -- Enabling N320 support. > > -- Override with -DENABLE_N320=ON/OFF > > -- > > -- Configuring E320 support... > > -- Dependency ENABLE_LIBUHD = ON > > -- Dependency ENABLE_MPMD = ON > > -- Enabling E320 support. > > -- Override with -DENABLE_E320=ON/OFF > > -- > > -- Configuring E300 support... > > -- Dependency ENABLE_LIBUHD = ON > > -- Dependency ENABLE_MPMD = ON > > -- Enabling E300 support. > > -- Override with -DENABLE_E300=ON/OFF > > -- > > -- Configuring X400 support... > > -- Dependency ENABLE_LIBUHD = ON > > -- Dependency ENABLE_MPMD = ON > > -- Enabling X400 support. > > -- Override with -DENABLE_X400=ON/OFF > > -- > > -- Configuring OctoClock support... > > -- Dependency ENABLE_LIBUHD = ON > > -- Enabling OctoClock support. > > -- Override with -DENABLE_OCTOCLOCK=ON/OFF > > -- > > -- Configuring DPDK support... > > -- Dependency ENABLE_MPMD = ON > > -- Dependency DPDK_FOUND = FALSE > > -- Disabling DPDK support. > > -- Override with -DENABLE_DPDK=ON/OFF > > -- > > -- > > -- Configuring priority scheduling... > > -- Priority scheduling supported through pthread_setschedparam. > > -- Setting thread names is supported through pthread_setname_np. > > -- Setting thread affinity is supported through windows > SetThreadAffinityMask. > > -- > > -- Configuring module loading... > > -- Module loading supported through LoadLibrary. > > -- > > -- Configuring atomics support... > > -- Atomics support is built-in, no linking required. > > -- > > -- Processing NI-RIO FPGA LVBITX Bitstreams... > > -- Using x300.lvbitx_base for codegen > > -- Using x310.lvbitx_base for codegen > > -- > > -- USB support enabled via libusb. > > -- > > -- Configuring interface address discovery... > > -- Interface address discovery supported through > SIO_GET_INTERFACE_LIST. > > -- > > -- Loading build info. > > CMake Deprecation Warning at cmake/Modules/CMakeRC.cmake:63 > > (cmake_minimum_required): > > Compatibility with CMake < 3.5 will be removed from a future version of > > CMake. > > > > Update the VERSION argument <min> value or use a ...<max> suffix to > tell > > CMake that the project does not need compatibility with older versions. > > Call Stack (most recent call first): > > lib/rc/CMakeLists.txt:7 (include) > > > > > > -- > > -- Adding B2XX device test target > > -- Adding X3x0 device test target > > -- Adding E3XX device test target > > -- Adding N3XX device test target > > -- Adding E32x device test target > > -- Adding X410 device test target > > -- Adding X440 device test target > > -- > > -- > > -- Configuring Manual support... > > -- Dependency DOXYGEN_FOUND = YES > > -- Enabling Manual support. > > -- Override with -DENABLE_MANUAL=ON/OFF > > -- > > -- Configuring API/Doxygen support... > > -- Dependency DOXYGEN_FOUND = YES > > -- Enabling API/Doxygen support. > > -- Override with -DENABLE_DOXYGEN=ON/OFF > > -- > > -- Found GZip: C:/msys64/usr/bin/gzip.exe > > -- > > -- Compressed Man Pages enabled > > -- Override with -DENABLE_MAN_PAGE_COMPRESSION=ON/OFF > > -- > > -- Configuring Man Pages support... > > -- Dependency NOT_WIN32 = > > -- Dependency GZIP_FOUND = TRUE > > -- Disabling Man Pages support. > > -- Override with -DENABLE_MAN_PAGES=ON/OFF > > -- Using Pybind11 from: C:/msys64/mingw64/include > > -- > > -- Python checking for gevent module > > -- Python checking for gevent module - "import gevent" failed (is it > installed?) > > -- > > -- Python checking for mprpc module > > -- Python checking for mprpc module - "import mprpc" failed (is it > installed?) > > -- > > -- Python checking for pyudev module > > -- Python checking for pyudev module - "import pyudev" failed (is it > installed?) > > -- > > -- Python checking for pyroute2 module > > -- Python checking for pyroute2 module - "import pyroute2" failed (is > > it installed?) > > -- MPM unit test Python package prerequisites not met; skipping > > -- > > -- > > -- Python checking for virtual environment > > -- Python checking for virtual environment - "assert sys.prefix != > > sys.base_prefix" failed > > -- Installing 'uhd' Python module to: > > C:/msys64/mingw64/lib/python3.11/site-packages > > -- > > -- ###################################################### > > -- # UHD enabled components > > -- ###################################################### > > -- * LibUHD > > -- * LibUHD - C API > > -- * LibUHD - Python API > > -- * Examples > > -- * Utils > > -- * Tests > > -- * Python Module (Utils only) > > -- * USB > > -- * B100 > > -- * B200 > > -- * USRP1 > > -- * USRP2 > > -- * X300 > > -- * MPMD > > -- * SIM > > -- * N300 > > -- * N320 > > -- * E320 > > -- * E300 > > -- * X400 > > -- * OctoClock > > -- * Manual > > -- * API/Doxygen > > -- > > -- ###################################################### > > -- # UHD disabled components > > -- ###################################################### > > -- * DPDK > > -- * Man Pages > > -- > > -- ****************************************************** > > -- * You are building the UHD development master branch. > > -- * For production code, we recommend our stable, > > -- * releases or using the release branch (maint). > > -- ****************************************************** > > -- Building version: 4.7.0.0-0-ga5ed1872 > > -- Using install prefix: C:/msys64/mingw64 > > -- Configuring done (3.7s) > > -- Generating done (0.7s) > > -- Build files have been written to: > C:/msys64/home/chris/src/uhd/host/build > > > > I'm also applying a patch to get it to build. It was needed for > > 4.6.0.0 and I've had to make some tweaks. None of the files touched > > by the patch are part of the error, but I'll include it for > > completeness. > > > > Thanks in advance, > > > > Chris > _______________________________________________ > USRP-users mailing list -- usrp-users@lists.ettus.com > To unsubscribe send an email to usrp-users-leave@lists.ettus.com >
CG
Chris Gorman
Fri, Jul 5, 2024 12:19 PM

Hi Martin,

There are some problems with this build.  I had to disable thread
naming in uhd::set_thread_name calls to pthread_setname_np.  I should
probably re-enable it and set HAVE_THREAD_SETNAME_DUMMY instead of
disabling it via comment.  I couldn't get tests to work.  I had a hang
when running one of them, so I disabled testing in the build as it is
done in the arch PKGBUILD file.  Again I should probably set a
ctest_timeout of say 120 seconds and redo the testing.  Otherwise
msys2/mingw worked.  I'm in the process of trying to get a pull
request with libuhd and the rest of gnuradio into msys2/mingw.

All the best,

Chris

On Fri, Jul 5, 2024 at 6:10 AM Martin Braun martin.braun@ettus.com wrote:

Hi Chris,

thanks for reporting back! mingw is not one of the compilers we test with (it's not so long ago that it didn't even support std::thread and couldn't compile UHD at all).

But this fix is something we can add permanently to UHD. In fact,  I think this include should come first in all the tests, but it seems not to be a problem for most of them.

Cheers,
M

On Thu, Jul 4, 2024 at 10:26 PM Chris Gorman chrisjohgorman@gmail.com wrote:

Hello all,

Just a follow up email in case someone else tries to build a msys2
package for libuhd and gets the same error.  The fix was to invert the
include order and have <boost/test/unit_test.hpp> included before
<uhdlib/utils//isatty.hpp>.

diff --git a/host/tests/isatty_test.cpp b/host/tests/isatty_test.cpp
index 99da27fd1..de1b4e110 100644
--- a/host/tests/isatty_test.cpp
+++ b/host/tests/isatty_test.cpp
@@ -3,9 +3,8 @@
//
// SPDX-License-Identifier: GPL-3.0-or-later
//

-#include <uhdlib/utils/isatty.hpp>
#include <boost/test/unit_test.hpp>
+#include <uhdlib/utils/isatty.hpp>
#include <cstdio>
#include <iostream>

I also ran into a linker error and fixed it by inverting the order in
which two libraries occurred on the command line.

diff --git a/host/tests/CMakeLists.txt b/host/tests/CMakeLists.txt
index bac599811..682ce01c2 100644
--- a/host/tests/CMakeLists.txt
+++ b/host/tests/CMakeLists.txt
@@ -97,7 +97,7 @@ include_directories("${CMAKE_CURRENT_SOURCE_DIR}/common")
foreach(test_source ${test_sources})
get_filename_component(test_name ${test_source} NAME_WE)
add_executable(${test_name} ${test_source})

  • target_link_libraries(${test_name} uhd uhd_test ${Boost_LIBRARIES})
  • target_link_libraries(${test_name} uhd_test uhd ${Boost_LIBRARIES})
    UHD_ADD_TEST(${test_name} ${test_name})
    UHD_INSTALL(TARGETS ${test_name} RUNTIME DESTINATION
    ${PKG_LIB_DIR}/tests COMPONENT tests)
    endforeach(test_source)
    @@ -106,7 +106,7 @@ endforeach(test_source)
    foreach(benchmark_source ${benchmark_sources})
    get_filename_component(benchmark_name ${benchmark_source} NAME_WE)
    add_executable(${benchmark_name} ${benchmark_source})
  • target_link_libraries(${benchmark_name} uhd uhd_test ${Boost_LIBRARIES})
  • target_link_libraries(${benchmark_name} uhd_test uhd ${Boost_LIBRARIES})
    UHD_INSTALL(TARGETS ${benchmark_name} RUNTIME DESTINATION
    ${PKG_LIB_DIR}/tests COMPONENT tests)
    endforeach(benchmark_source)

Thanks for your time.

Chris

On Tue, Jul 2, 2024 at 10:13 AM Chris Gorman chrisjohgorman@gmail.com wrote:

Hello USRP users,

I'm trying to update my build from 4.6.0.0 to 4.7.0.0 for UHD on
msys2/mingw64.  During the build I get the following error...

$ C:\msys64\mingw64\bin\c++.exe
-DBOOST_ASIO_DISABLE_STD_EXPERIMENTAL_STRING_VIEW
-DBOOST_ASIO_DISABLE_STD_STRING_VIEW -DBOOST_ATOMIC_DYN_LINK
-DBOOST_ATOMIC_NO_LIB -DBOOST_CHRONO_DYN_LINK -DBOOST_CHRONO_NO_LIB
-DBOOST_DATE_TIME_DYN_LINK -DBOOST_DATE_TIME_NO_LIB
-DBOOST_ERROR_CODE_HEADER_ONLY -DBOOST_FILESYSTEM_DYN_LINK
-DBOOST_FILESYSTEM_NO_LIB -DBOOST_PROGRAM_OPTIONS_DYN_LINK
-DBOOST_PROGRAM_OPTIONS_NO_LIB -DBOOST_SERIALIZATION_DYN_LINK
-DBOOST_SERIALIZATION_NO_LIB -DBOOST_SYSTEM_DYN_LINK
-DBOOST_SYSTEM_NO_LIB -DBOOST_TEST_DYN_LINK -DBOOST_TEST_MAIN
-DBOOST_THREAD_DYN_LINK -DBOOST_THREAD_NO_LIB
-DBOOST_UNIT_TEST_FRAMEWORK_DYN_LINK
-DBOOST_UNIT_TEST_FRAMEWORK_NO_LIB -DHAVE_CONFIG_H -DNOMINMAX
-DUHD_LOG_CONSOLE_COLOR -DUHD_LOG_CONSOLE_LEVEL=2
-DUHD_LOG_FILE_LEVEL=2 -DUHD_LOG_MIN_LEVEL=1 -D_WIN32_WINNT=0x0501
-IC:/msys64/home/chris/src/uhd/host/build/include
-IC:/msys64/home/chris/src/uhd/host/include
-IC:/msys64/home/chris/src/uhd/host/lib/include
-IC:/msys64/home/chris/src/uhd/host/build/lib/include
-IC:/msys64/home/chris/src/uhd/host/tests/common
-IC:/msys64/home/chris/src/uhd/host/build/lib/rfnoc
-IC:/msys64/home/chris/src/uhd/host/lib/rfnoc
-IC:/msys64/home/chris/src/uhd/host/build/lib/ic_reg_maps
-IC:/msys64/home/chris/src/uhd/host/lib/deps/rpclib/include
-IC:/msys64/home/chris/src/uhd/host/lib/deps/flatbuffers/include
-IC:/msys64/home/chris/src/uhd/host/build/cmrc/include -O3 -DNDEBUG
-std=gnu++14  -Wall -Wextra -Wsign-compare -MD -MT
tests/CMakeFiles/isatty_test.dir/isatty_test.cpp.obj -MF
tests\CMakeFiles\isatty_test.dir\isatty_test.cpp.obj.d -o
tests/CMakeFiles/isatty_test.dir/isatty_test.cpp.obj -c
C:/msys64/home/chris/src/uhd/host/tests/isatty_test.cpp
In file included from
C:/msys64/mingw64/include/boost/assert/source_location.hpp:15,
from C:/msys64/mingw64/include/boost/exception/exception.hpp:9,
from C:/msys64/mingw64/include/boost/throw_exception.hpp:21,
from
C:/msys64/mingw64/include/boost/smart_ptr/detail/shared_count.hpp:31,
from
C:/msys64/mingw64/include/boost/smart_ptr/shared_ptr.hpp:18,
from C:/msys64/mingw64/include/boost/shared_ptr.hpp:17,
from
C:/msys64/mingw64/include/boost/test/tools/assertion_result.hpp:21,
from
C:/msys64/mingw64/include/boost/test/tools/old/impl.hpp:20,
from C:/msys64/mingw64/include/boost/test/test_tools.hpp:46,
from C:/msys64/mingw64/include/boost/test/unit_test.hpp:18,
from C:/msys64/home/chris/src/uhd/host/tests/isatty_test.cpp:8:
C:/msys64/mingw64/include/c++/14.1.0/cstring:78:11: error: 'memchr'
has not been declared in '::'
78 |  using ::memchr;
|          ^~~~~~
C:/msys64/mingw64/include/c++/14.1.0/cstring:79:11: error: 'memcmp'
has not been declared in '::'
79 |  using ::memcmp;
|          ^~~~~~
C:/msys64/mingw64/include/c++/14.1.0/cstring:82:11: error: 'memset'
has not been declared in '::'
82 |  using ::memset;
|          ^~~~~~
C:/msys64/mingw64/include/c++/14.1.0/cstring:83:11: error: 'strcat'
has not been declared in '::'
83 |  using ::strcat;
|          ^~~~~~
C:/msys64/mingw64/include/c++/14.1.0/cstring:84:11: error: 'strcmp'
has not been declared in '::'
84 |  using ::strcmp;
|          ^~~~~~
C:/msys64/mingw64/include/c++/14.1.0/cstring:85:11: error: 'strcoll'
has not been declared in '::'
85 |  using ::strcoll;
|          ^~~~~~~
C:/msys64/mingw64/include/c++/14.1.0/cstring:86:11: error: 'strcpy'
has not been declared in '::'
86 |  using ::strcpy;
|          ^~~~~~
C:/msys64/mingw64/include/c++/14.1.0/cstring:87:11: error: 'strcspn'
has not been declared in '::'
87 |  using ::strcspn;
|          ^~~~~~~
C:/msys64/mingw64/include/c++/14.1.0/cstring:88:11: error: 'strerror'
has not been declared in '::'
88 |  using ::strerror;
|          ^~~~~~~~
C:/msys64/mingw64/include/c++/14.1.0/cstring:89:11: error: 'strlen'
has not been declared in '::'
89 |  using ::strlen;
|          ^~~~~~
C:/msys64/mingw64/include/c++/14.1.0/cstring:90:11: error: 'strncat'
has not been declared in '::'
90 |  using ::strncat;
|          ^~~~~~~
C:/msys64/mingw64/include/c++/14.1.0/cstring:91:11: error: 'strncmp'
has not been declared in '::'
91 |  using ::strncmp;
|          ^~~~~~~
C:/msys64/mingw64/include/c++/14.1.0/cstring:92:11: error: 'strncpy'
has not been declared in '::'
92 |  using ::strncpy;
|          ^~~~~~~
C:/msys64/mingw64/include/c++/14.1.0/cstring:93:11: error: 'strspn'
has not been declared in '::'
93 |  using ::strspn;
|          ^~~~~~
C:/msys64/mingw64/include/c++/14.1.0/cstring:95:11: error: 'strtok'
has not been declared in '::'
95 |  using ::strtok;
|          ^~~~~~
C:/msys64/mingw64/include/c++/14.1.0/cstring:97:11: error: 'strxfrm'
has not been declared in '::'
97 |  using ::strxfrm;
|          ^~~~~~~
C:/msys64/mingw64/include/c++/14.1.0/cstring:98:11: error: 'strchr'
has not been declared in '::'
98 |  using ::strchr;
|          ^~~~~~
C:/msys64/mingw64/include/c++/14.1.0/cstring:99:11: error: 'strpbrk'
has not been declared in '::'
99 |  using ::strpbrk;
|          ^~~~~~~
C:/msys64/mingw64/include/c++/14.1.0/cstring:100:11: error: 'strrchr'
has not been declared in '::'
100 |  using ::strrchr;
|          ^~~~~~~
C:/msys64/mingw64/include/c++/14.1.0/cstring:101:11: error: 'strstr'
has not been declared in '::'
101 |  using ::strstr;
|          ^~~~~~
C:/msys64/mingw64/include/boost/assert/source_location.hpp: In
function 'bool boost::operator==(const source_location&, const
source_location&)':
C:/msys64/mingw64/include/boost/assert/source_location.hpp:126:21:
error: 'strcmp' is not a member of 'std'; did you mean 'strchr'?
126 |        return std::strcmp( s1.file
, s2.file_ ) == 0 &&
std::strcmp( s1.function_, s2.function_ ) == 0 && s1.line_ == s2.line_
&& s1.column_ == s2.column_;
|                    ^~~~~~
|                    strchr
C:/msys64/mingw64/include/boost/assert/source_location.hpp:126:63:
error: 'strcmp' is not a member of 'std'; did you mean 'strchr'?
126 |        return std::strcmp( s1.file_, s2.file_ ) == 0 &&
std::strcmp( s1.function_, s2.function_ ) == 0 && s1.line_ == s2.line_
&& s1.column_ == s2.column_;
|                                                              ^~~~~~
|                                                              strchr
In file included from C:/msys64/mingw64/include/boost/mpl/for_each.hpp:29,
from
C:/msys64/mingw64/include/boost/test/tree/test_case_template.hpp:28,
from
C:/msys64/mingw64/include/boost/test/unit_test_suite.hpp:19,
from C:/msys64/mingw64/include/boost/test/unit_test.hpp:19:
C:/msys64/mingw64/include/boost/utility/value_init.hpp: In constructor
'boost::detail::zero_init::zero_init(void*, std::size_t)':
C:/msys64/mingw64/include/boost/utility/value_init.hpp:73:12: error:
'memset' is not a member of 'std'; did you mean 'wmemset'?
73 |      std::memset( p, 0, n );
|            ^~~~~~
|            wmemset

It looks like I'm including something I shouldn't, but I don't know what.

My cmake build log is ...

$ cmake -DCMAKE_INSTALL_PREFIX=c:/msys64/mingw64 -DENABLE_PYTHON_API=ON ..

-- Configuring the Python interpreter...
-- Manually determining build Python version...
-- Python interpreter: C:/msys64/mingw64/bin/python3.11.exe Version: 3.11.9
-- Override with: -DPYTHON_EXECUTABLE=<path-to-python>
-- Manually determining runtime Python version...
-- Python runtime interpreter: C:/msys64/mingw64/bin/python3.11.exe
Version: 3.11.9
-- Override with: -DRUNTIME_PYTHON_EXECUTABLE=<path-to-python>
-- Finding Python Libraries...
CMake Warning (dev) at cmake/Modules/UHDPython.cmake:313 (find_package):
Policy CMP0148 is not set: The FindPythonInterp and FindPythonLibs modules
are removed.  Run "cmake --help-policy CMP0148" for policy details.  Use
the cmake_policy command to set the policy and suppress this warning.

Call Stack (most recent call first):
cmake/Modules/UHDVersion.cmake:9 (include)
cmake/Modules/UHDPackage.cmake:9 (include)
CMakeLists.txt:107 (include)
This warning is for project developers.  Use -Wno-dev to suppress it.

-- Python Libraries: C:/msys64/mingw64/lib/libpython3.11.dll.a
-- Python include directories: C:/msys64/mingw64/include/python3.11
-- pybind11::lto disabled (problems with undefined symbols for MinGW for now)
-- pybind11::thin_lto disabled (problems with undefined symbols for
MinGW for now)
-- Operating on master branch.
-- Using UHD Images Directory: C:\msys64\mingw64\share\uhd\images
-- Build type not specified: defaulting to release.

-- Configuring Boost C++ Libraries...

-- Checking for Boost version 1.65 or greater
--  Looking for required Boost components...
--  Enabling Boost Error Code Header Only
--    Disabling boost::asio use of std::string_view
--  Boost version: 1.85.0
--  Boost include directories: C:/msys64/mingw64/include
--  Boost library directories: C:/msys64/mingw64/lib
--  Boost libraries:
Boost::chrono;Boost::date_time;Boost::filesystem;Boost::program_options;Boost::serialization;Boost::thread;Boost::unit_test_framework;Boost::system
-- Looking for Boost version 1.65 or greater - found

-- Python checking for compatible Python version
-- Python checking for compatible Python version - 3.11.9 satisfies
minimum required version 3.7

-- Python checking for Mako templates module
-- Python checking for Mako templates module - 1.3.5 satisfies minimum
required version 0.4.2

-- Python checking for requests module
-- Python checking for requests module - 2.32.2 satisfies minimum
required version 2.0

-- Python checking for numpy module
-- Python checking for numpy module - 1.26.4 satisfies minimum
required version 1.11

-- Python checking for ruamel.yaml module
-- Python checking for ruamel.yaml module - 0.18.6 satisfies minimum
required version 0.15

-- Configuring LibUHD support...
--  Dependency Boost_FOUND = TRUE
--  Dependency HAVE_PYTHON_MODULE_MAKO = TRUE
--  Enabling LibUHD support.
--  Override with -DENABLE_LIBUHD=ON/OFF

-- Configuring LibUHD - C API support...
--  Dependency ENABLE_LIBUHD = ON
--  Enabling LibUHD - C API support.
--  Override with -DENABLE_C_API=ON/OFF

-- Configuring LibUHD - Python API support...
--  Dependency ENABLE_LIBUHD = ON
--  Dependency HAVE_PYTHON_MODULE_NUMPY = TRUE
--  Dependency HAVE_PYTHON_LIBS = TRUE
--  Enabling LibUHD - Python API support.
--  Override with -DENABLE_PYTHON_API=ON/OFF

-- Configuring Examples support...
--  Dependency ENABLE_LIBUHD = ON
--  Enabling Examples support.
--  Override with -DENABLE_EXAMPLES=ON/OFF

-- Configuring Utils support...
--  Dependency ENABLE_LIBUHD = ON
--  Enabling Utils support.
--  Override with -DENABLE_UTILS=ON/OFF

-- Configuring Tests support...
--  Dependency ENABLE_LIBUHD = ON
--  Enabling Tests support.
--  Override with -DENABLE_TESTS=ON/OFF

-- Configuring Python Module (Utils only) support...
--  Dependency HAVE_PYTHON_MODULE_NUMPY = TRUE
--  Dependency HAVE_PYTHON_MODULE_MAKO = TRUE
--  Dependency HAVE_PYTHON_MODULE_YAML = TRUE
--  Enabling Python Module (Utils only) support.
--  Override with -DENABLE_PYMOD_UTILS=ON/OFF

CMake Warning (dev) at
C:/msys64/mingw64/share/cmake/Modules/FindPackageHandleStandardArgs.cmake:447
(message):
find_package() specify a version range but the module DPDK does not
support this capability.  Only the lower endpoint of the range will be
used.
Call Stack (most recent call first):
cmake/Modules/FindDPDK.cmake:86 (find_package_handle_standard_args)
lib/CMakeLists.txt:63 (find_package)
This warning is for project developers.  Use -Wno-dev to suppress it.

-- Could NOT find DPDK (missing: DPDK_INCLUDE_DIRS DPDK_LIBRARIES)
(Required is at least version "18.11")

-- Configuring USB support...
--  Dependency ENABLE_LIBUHD = ON
--  Dependency LIBUSB_FOUND = TRUE
--  Enabling USB support.
--  Override with -DENABLE_USB=ON/OFF

-- Configuring B100 support...
--  Dependency ENABLE_LIBUHD = ON
--  Dependency ENABLE_USB = ON
--  Enabling B100 support.
--  Override with -DENABLE_B100=ON/OFF

-- Configuring B200 support...
--  Dependency ENABLE_LIBUHD = ON
--  Dependency ENABLE_USB = ON
--  Enabling B200 support.
--  Override with -DENABLE_B200=ON/OFF

-- Configuring USRP1 support...
--  Dependency ENABLE_LIBUHD = ON
--  Dependency ENABLE_USB = ON
--  Enabling USRP1 support.
--  Override with -DENABLE_USRP1=ON/OFF

-- Configuring USRP2 support...
--  Dependency ENABLE_LIBUHD = ON
--  Enabling USRP2 support.
--  Override with -DENABLE_USRP2=ON/OFF

-- Configuring X300 support...
--  Dependency ENABLE_LIBUHD = ON
--  Enabling X300 support.
--  Override with -DENABLE_X300=ON/OFF

-- Configuring MPMD support...
--  Dependency ENABLE_LIBUHD = ON
--  Enabling MPMD support.
--  Override with -DENABLE_MPMD=ON/OFF

-- Configuring SIM support...
--  Dependency ENABLE_LIBUHD = ON
--  Dependency ENABLE_MPMD = ON
--  Dependency ENABLE_PYTHON_API = ON
--  Enabling SIM support.
--  Override with -DENABLE_SIM=ON/OFF

-- Configuring N300 support...
--  Dependency ENABLE_LIBUHD = ON
--  Dependency ENABLE_MPMD = ON
--  Enabling N300 support.
--  Override with -DENABLE_N300=ON/OFF

-- Configuring N320 support...
--  Dependency ENABLE_LIBUHD = ON
--  Dependency ENABLE_MPMD = ON
--  Enabling N320 support.
--  Override with -DENABLE_N320=ON/OFF

-- Configuring E320 support...
--  Dependency ENABLE_LIBUHD = ON
--  Dependency ENABLE_MPMD = ON
--  Enabling E320 support.
--  Override with -DENABLE_E320=ON/OFF

-- Configuring E300 support...
--  Dependency ENABLE_LIBUHD = ON
--  Dependency ENABLE_MPMD = ON
--  Enabling E300 support.
--  Override with -DENABLE_E300=ON/OFF

-- Configuring X400 support...
--  Dependency ENABLE_LIBUHD = ON
--  Dependency ENABLE_MPMD = ON
--  Enabling X400 support.
--  Override with -DENABLE_X400=ON/OFF

-- Configuring OctoClock support...
--  Dependency ENABLE_LIBUHD = ON
--  Enabling OctoClock support.
--  Override with -DENABLE_OCTOCLOCK=ON/OFF

-- Configuring DPDK support...
--  Dependency ENABLE_MPMD = ON
--  Dependency DPDK_FOUND = FALSE
--  Disabling DPDK support.
--  Override with -DENABLE_DPDK=ON/OFF

--
-- Configuring priority scheduling...
--  Priority scheduling supported through pthread_setschedparam.
--  Setting thread names is supported through pthread_setname_np.
--  Setting thread affinity is supported through windows SetThreadAffinityMask.

-- Configuring module loading...
--  Module loading supported through LoadLibrary.

-- Configuring atomics support...
--  Atomics support is built-in, no linking required.

-- Processing NI-RIO FPGA LVBITX Bitstreams...
--  Using x300.lvbitx_base for codegen
--  Using x310.lvbitx_base for codegen

-- USB support enabled via libusb.

-- Configuring interface address discovery...
--  Interface address discovery supported through SIO_GET_INTERFACE_LIST.

-- Loading build info.
CMake Deprecation Warning at cmake/Modules/CMakeRC.cmake:63
(cmake_minimum_required):
Compatibility with CMake < 3.5 will be removed from a future version of
CMake.

Update the VERSION argument <min> value or use a ...<max> suffix to tell
CMake that the project does not need compatibility with older versions.
Call Stack (most recent call first):
lib/rc/CMakeLists.txt:7 (include)

--
-- Adding B2XX device test target
-- Adding X3x0 device test target
-- Adding E3XX device test target
-- Adding N3XX device test target
-- Adding E32x device test target
-- Adding X410 device test target
-- Adding X440 device test target

--
-- Configuring Manual support...
--  Dependency DOXYGEN_FOUND = YES
--  Enabling Manual support.
--  Override with -DENABLE_MANUAL=ON/OFF

-- Configuring API/Doxygen support...
--  Dependency DOXYGEN_FOUND = YES
--  Enabling API/Doxygen support.
--  Override with -DENABLE_DOXYGEN=ON/OFF

-- Found GZip: C:/msys64/usr/bin/gzip.exe

-- Compressed Man Pages enabled
--  Override with -DENABLE_MAN_PAGE_COMPRESSION=ON/OFF

-- Configuring Man Pages support...
--  Dependency NOT_WIN32 =
--  Dependency GZIP_FOUND = TRUE
--  Disabling Man Pages support.
--  Override with -DENABLE_MAN_PAGES=ON/OFF
-- Using Pybind11 from: C:/msys64/mingw64/include

-- Python checking for gevent module
-- Python checking for gevent module - "import gevent" failed (is it installed?)

-- Python checking for mprpc module
-- Python checking for mprpc module - "import mprpc" failed (is it installed?)

-- Python checking for pyudev module
-- Python checking for pyudev module - "import pyudev" failed (is it installed?)

-- Python checking for pyroute2 module
-- Python checking for pyroute2 module - "import pyroute2" failed (is
it installed?)
-- MPM unit test Python package prerequisites not met; skipping

--
-- Python checking for virtual environment
-- Python checking for virtual environment - "assert sys.prefix !=
sys.base_prefix" failed
-- Installing 'uhd' Python module to:
C:/msys64/mingw64/lib/python3.11/site-packages

-- ######################################################
-- # UHD enabled components
-- ######################################################
--  * LibUHD
--  * LibUHD - C API
--  * LibUHD - Python API
--  * Examples
--  * Utils
--  * Tests
--  * Python Module (Utils only)
--  * USB
--  * B100
--  * B200
--  * USRP1
--  * USRP2
--  * X300
--  * MPMD
--  * SIM
--  * N300
--  * N320
--  * E320
--  * E300
--  * X400
--  * OctoClock
--  * Manual
--  * API/Doxygen

-- ######################################################
-- # UHD disabled components
-- ######################################################
--  * DPDK
--  * Man Pages

-- ******************************************************
-- * You are building the UHD development master branch.
-- * For production code, we recommend our stable,
-- * releases or using the release branch (maint).
-- ******************************************************
-- Building version: 4.7.0.0-0-ga5ed1872
-- Using install prefix: C:/msys64/mingw64
-- Configuring done (3.7s)
-- Generating done (0.7s)
-- Build files have been written to: C:/msys64/home/chris/src/uhd/host/build

I'm also applying a patch to get it to build.  It was needed for
4.6.0.0 and I've had to make some tweaks.  None of the files touched
by the patch are part of the error, but I'll include it for
completeness.

Thanks in advance,

Chris


USRP-users mailing list -- usrp-users@lists.ettus.com
To unsubscribe send an email to usrp-users-leave@lists.ettus.com


USRP-users mailing list -- usrp-users@lists.ettus.com
To unsubscribe send an email to usrp-users-leave@lists.ettus.com

Hi Martin, There are some problems with this build. I had to disable thread naming in uhd::set_thread_name calls to pthread_setname_np. I should probably re-enable it and set HAVE_THREAD_SETNAME_DUMMY instead of disabling it via comment. I couldn't get tests to work. I had a hang when running one of them, so I disabled testing in the build as it is done in the arch PKGBUILD file. Again I should probably set a ctest_timeout of say 120 seconds and redo the testing. Otherwise msys2/mingw worked. I'm in the process of trying to get a pull request with libuhd and the rest of gnuradio into msys2/mingw. All the best, Chris On Fri, Jul 5, 2024 at 6:10 AM Martin Braun <martin.braun@ettus.com> wrote: > > Hi Chris, > > thanks for reporting back! mingw is not one of the compilers we test with (it's not so long ago that it didn't even support std::thread and couldn't compile UHD at all). > > But this fix is something we can add permanently to UHD. In fact, I think this include should come first in all the tests, but it seems not to be a problem for most of them. > > Cheers, > M > > On Thu, Jul 4, 2024 at 10:26 PM Chris Gorman <chrisjohgorman@gmail.com> wrote: >> >> Hello all, >> >> Just a follow up email in case someone else tries to build a msys2 >> package for libuhd and gets the same error. The fix was to invert the >> include order and have <boost/test/unit_test.hpp> included before >> <uhdlib/utils//isatty.hpp>. >> >> diff --git a/host/tests/isatty_test.cpp b/host/tests/isatty_test.cpp >> index 99da27fd1..de1b4e110 100644 >> --- a/host/tests/isatty_test.cpp >> +++ b/host/tests/isatty_test.cpp >> @@ -3,9 +3,8 @@ >> // >> // SPDX-License-Identifier: GPL-3.0-or-later >> // >> - >> -#include <uhdlib/utils/isatty.hpp> >> #include <boost/test/unit_test.hpp> >> +#include <uhdlib/utils/isatty.hpp> >> #include <cstdio> >> #include <iostream> >> >> I also ran into a linker error and fixed it by inverting the order in >> which two libraries occurred on the command line. >> >> diff --git a/host/tests/CMakeLists.txt b/host/tests/CMakeLists.txt >> index bac599811..682ce01c2 100644 >> --- a/host/tests/CMakeLists.txt >> +++ b/host/tests/CMakeLists.txt >> @@ -97,7 +97,7 @@ include_directories("${CMAKE_CURRENT_SOURCE_DIR}/common") >> foreach(test_source ${test_sources}) >> get_filename_component(test_name ${test_source} NAME_WE) >> add_executable(${test_name} ${test_source}) >> - target_link_libraries(${test_name} uhd uhd_test ${Boost_LIBRARIES}) >> + target_link_libraries(${test_name} uhd_test uhd ${Boost_LIBRARIES}) >> UHD_ADD_TEST(${test_name} ${test_name}) >> UHD_INSTALL(TARGETS ${test_name} RUNTIME DESTINATION >> ${PKG_LIB_DIR}/tests COMPONENT tests) >> endforeach(test_source) >> @@ -106,7 +106,7 @@ endforeach(test_source) >> foreach(benchmark_source ${benchmark_sources}) >> get_filename_component(benchmark_name ${benchmark_source} NAME_WE) >> add_executable(${benchmark_name} ${benchmark_source}) >> - target_link_libraries(${benchmark_name} uhd uhd_test ${Boost_LIBRARIES}) >> + target_link_libraries(${benchmark_name} uhd_test uhd ${Boost_LIBRARIES}) >> UHD_INSTALL(TARGETS ${benchmark_name} RUNTIME DESTINATION >> ${PKG_LIB_DIR}/tests COMPONENT tests) >> endforeach(benchmark_source) >> >> Thanks for your time. >> >> Chris >> >> On Tue, Jul 2, 2024 at 10:13 AM Chris Gorman <chrisjohgorman@gmail.com> wrote: >> > >> > Hello USRP users, >> > >> > I'm trying to update my build from 4.6.0.0 to 4.7.0.0 for UHD on >> > msys2/mingw64. During the build I get the following error... >> > >> > $ C:\msys64\mingw64\bin\c++.exe >> > -DBOOST_ASIO_DISABLE_STD_EXPERIMENTAL_STRING_VIEW >> > -DBOOST_ASIO_DISABLE_STD_STRING_VIEW -DBOOST_ATOMIC_DYN_LINK >> > -DBOOST_ATOMIC_NO_LIB -DBOOST_CHRONO_DYN_LINK -DBOOST_CHRONO_NO_LIB >> > -DBOOST_DATE_TIME_DYN_LINK -DBOOST_DATE_TIME_NO_LIB >> > -DBOOST_ERROR_CODE_HEADER_ONLY -DBOOST_FILESYSTEM_DYN_LINK >> > -DBOOST_FILESYSTEM_NO_LIB -DBOOST_PROGRAM_OPTIONS_DYN_LINK >> > -DBOOST_PROGRAM_OPTIONS_NO_LIB -DBOOST_SERIALIZATION_DYN_LINK >> > -DBOOST_SERIALIZATION_NO_LIB -DBOOST_SYSTEM_DYN_LINK >> > -DBOOST_SYSTEM_NO_LIB -DBOOST_TEST_DYN_LINK -DBOOST_TEST_MAIN >> > -DBOOST_THREAD_DYN_LINK -DBOOST_THREAD_NO_LIB >> > -DBOOST_UNIT_TEST_FRAMEWORK_DYN_LINK >> > -DBOOST_UNIT_TEST_FRAMEWORK_NO_LIB -DHAVE_CONFIG_H -DNOMINMAX >> > -DUHD_LOG_CONSOLE_COLOR -DUHD_LOG_CONSOLE_LEVEL=2 >> > -DUHD_LOG_FILE_LEVEL=2 -DUHD_LOG_MIN_LEVEL=1 -D_WIN32_WINNT=0x0501 >> > -IC:/msys64/home/chris/src/uhd/host/build/include >> > -IC:/msys64/home/chris/src/uhd/host/include >> > -IC:/msys64/home/chris/src/uhd/host/lib/include >> > -IC:/msys64/home/chris/src/uhd/host/build/lib/include >> > -IC:/msys64/home/chris/src/uhd/host/tests/common >> > -IC:/msys64/home/chris/src/uhd/host/build/lib/rfnoc >> > -IC:/msys64/home/chris/src/uhd/host/lib/rfnoc >> > -IC:/msys64/home/chris/src/uhd/host/build/lib/ic_reg_maps >> > -IC:/msys64/home/chris/src/uhd/host/lib/deps/rpclib/include >> > -IC:/msys64/home/chris/src/uhd/host/lib/deps/flatbuffers/include >> > -IC:/msys64/home/chris/src/uhd/host/build/_cmrc/include -O3 -DNDEBUG >> > -std=gnu++14 -Wall -Wextra -Wsign-compare -MD -MT >> > tests/CMakeFiles/isatty_test.dir/isatty_test.cpp.obj -MF >> > tests\CMakeFiles\isatty_test.dir\isatty_test.cpp.obj.d -o >> > tests/CMakeFiles/isatty_test.dir/isatty_test.cpp.obj -c >> > C:/msys64/home/chris/src/uhd/host/tests/isatty_test.cpp >> > In file included from >> > C:/msys64/mingw64/include/boost/assert/source_location.hpp:15, >> > from C:/msys64/mingw64/include/boost/exception/exception.hpp:9, >> > from C:/msys64/mingw64/include/boost/throw_exception.hpp:21, >> > from >> > C:/msys64/mingw64/include/boost/smart_ptr/detail/shared_count.hpp:31, >> > from >> > C:/msys64/mingw64/include/boost/smart_ptr/shared_ptr.hpp:18, >> > from C:/msys64/mingw64/include/boost/shared_ptr.hpp:17, >> > from >> > C:/msys64/mingw64/include/boost/test/tools/assertion_result.hpp:21, >> > from >> > C:/msys64/mingw64/include/boost/test/tools/old/impl.hpp:20, >> > from C:/msys64/mingw64/include/boost/test/test_tools.hpp:46, >> > from C:/msys64/mingw64/include/boost/test/unit_test.hpp:18, >> > from C:/msys64/home/chris/src/uhd/host/tests/isatty_test.cpp:8: >> > C:/msys64/mingw64/include/c++/14.1.0/cstring:78:11: error: 'memchr' >> > has not been declared in '::' >> > 78 | using ::memchr; >> > | ^~~~~~ >> > C:/msys64/mingw64/include/c++/14.1.0/cstring:79:11: error: 'memcmp' >> > has not been declared in '::' >> > 79 | using ::memcmp; >> > | ^~~~~~ >> > C:/msys64/mingw64/include/c++/14.1.0/cstring:82:11: error: 'memset' >> > has not been declared in '::' >> > 82 | using ::memset; >> > | ^~~~~~ >> > C:/msys64/mingw64/include/c++/14.1.0/cstring:83:11: error: 'strcat' >> > has not been declared in '::' >> > 83 | using ::strcat; >> > | ^~~~~~ >> > C:/msys64/mingw64/include/c++/14.1.0/cstring:84:11: error: 'strcmp' >> > has not been declared in '::' >> > 84 | using ::strcmp; >> > | ^~~~~~ >> > C:/msys64/mingw64/include/c++/14.1.0/cstring:85:11: error: 'strcoll' >> > has not been declared in '::' >> > 85 | using ::strcoll; >> > | ^~~~~~~ >> > C:/msys64/mingw64/include/c++/14.1.0/cstring:86:11: error: 'strcpy' >> > has not been declared in '::' >> > 86 | using ::strcpy; >> > | ^~~~~~ >> > C:/msys64/mingw64/include/c++/14.1.0/cstring:87:11: error: 'strcspn' >> > has not been declared in '::' >> > 87 | using ::strcspn; >> > | ^~~~~~~ >> > C:/msys64/mingw64/include/c++/14.1.0/cstring:88:11: error: 'strerror' >> > has not been declared in '::' >> > 88 | using ::strerror; >> > | ^~~~~~~~ >> > C:/msys64/mingw64/include/c++/14.1.0/cstring:89:11: error: 'strlen' >> > has not been declared in '::' >> > 89 | using ::strlen; >> > | ^~~~~~ >> > C:/msys64/mingw64/include/c++/14.1.0/cstring:90:11: error: 'strncat' >> > has not been declared in '::' >> > 90 | using ::strncat; >> > | ^~~~~~~ >> > C:/msys64/mingw64/include/c++/14.1.0/cstring:91:11: error: 'strncmp' >> > has not been declared in '::' >> > 91 | using ::strncmp; >> > | ^~~~~~~ >> > C:/msys64/mingw64/include/c++/14.1.0/cstring:92:11: error: 'strncpy' >> > has not been declared in '::' >> > 92 | using ::strncpy; >> > | ^~~~~~~ >> > C:/msys64/mingw64/include/c++/14.1.0/cstring:93:11: error: 'strspn' >> > has not been declared in '::' >> > 93 | using ::strspn; >> > | ^~~~~~ >> > C:/msys64/mingw64/include/c++/14.1.0/cstring:95:11: error: 'strtok' >> > has not been declared in '::' >> > 95 | using ::strtok; >> > | ^~~~~~ >> > C:/msys64/mingw64/include/c++/14.1.0/cstring:97:11: error: 'strxfrm' >> > has not been declared in '::' >> > 97 | using ::strxfrm; >> > | ^~~~~~~ >> > C:/msys64/mingw64/include/c++/14.1.0/cstring:98:11: error: 'strchr' >> > has not been declared in '::' >> > 98 | using ::strchr; >> > | ^~~~~~ >> > C:/msys64/mingw64/include/c++/14.1.0/cstring:99:11: error: 'strpbrk' >> > has not been declared in '::' >> > 99 | using ::strpbrk; >> > | ^~~~~~~ >> > C:/msys64/mingw64/include/c++/14.1.0/cstring:100:11: error: 'strrchr' >> > has not been declared in '::' >> > 100 | using ::strrchr; >> > | ^~~~~~~ >> > C:/msys64/mingw64/include/c++/14.1.0/cstring:101:11: error: 'strstr' >> > has not been declared in '::' >> > 101 | using ::strstr; >> > | ^~~~~~ >> > C:/msys64/mingw64/include/boost/assert/source_location.hpp: In >> > function 'bool boost::operator==(const source_location&, const >> > source_location&)': >> > C:/msys64/mingw64/include/boost/assert/source_location.hpp:126:21: >> > error: 'strcmp' is not a member of 'std'; did you mean 'strchr'? >> > 126 | return std::strcmp( s1.file_, s2.file_ ) == 0 && >> > std::strcmp( s1.function_, s2.function_ ) == 0 && s1.line_ == s2.line_ >> > && s1.column_ == s2.column_; >> > | ^~~~~~ >> > | strchr >> > C:/msys64/mingw64/include/boost/assert/source_location.hpp:126:63: >> > error: 'strcmp' is not a member of 'std'; did you mean 'strchr'? >> > 126 | return std::strcmp( s1.file_, s2.file_ ) == 0 && >> > std::strcmp( s1.function_, s2.function_ ) == 0 && s1.line_ == s2.line_ >> > && s1.column_ == s2.column_; >> > | ^~~~~~ >> > | strchr >> > In file included from C:/msys64/mingw64/include/boost/mpl/for_each.hpp:29, >> > from >> > C:/msys64/mingw64/include/boost/test/tree/test_case_template.hpp:28, >> > from >> > C:/msys64/mingw64/include/boost/test/unit_test_suite.hpp:19, >> > from C:/msys64/mingw64/include/boost/test/unit_test.hpp:19: >> > C:/msys64/mingw64/include/boost/utility/value_init.hpp: In constructor >> > 'boost::detail::zero_init::zero_init(void*, std::size_t)': >> > C:/msys64/mingw64/include/boost/utility/value_init.hpp:73:12: error: >> > 'memset' is not a member of 'std'; did you mean 'wmemset'? >> > 73 | std::memset( p, 0, n ); >> > | ^~~~~~ >> > | wmemset >> > >> > It looks like I'm including something I shouldn't, but I don't know what. >> > >> > My cmake build log is ... >> > >> > $ cmake -DCMAKE_INSTALL_PREFIX=c:/msys64/mingw64 -DENABLE_PYTHON_API=ON .. >> > -- >> > -- Configuring the Python interpreter... >> > -- Manually determining build Python version... >> > -- Python interpreter: C:/msys64/mingw64/bin/python3.11.exe Version: 3.11.9 >> > -- Override with: -DPYTHON_EXECUTABLE=<path-to-python> >> > -- Manually determining runtime Python version... >> > -- Python runtime interpreter: C:/msys64/mingw64/bin/python3.11.exe >> > Version: 3.11.9 >> > -- Override with: -DRUNTIME_PYTHON_EXECUTABLE=<path-to-python> >> > -- Finding Python Libraries... >> > CMake Warning (dev) at cmake/Modules/UHDPython.cmake:313 (find_package): >> > Policy CMP0148 is not set: The FindPythonInterp and FindPythonLibs modules >> > are removed. Run "cmake --help-policy CMP0148" for policy details. Use >> > the cmake_policy command to set the policy and suppress this warning. >> > >> > Call Stack (most recent call first): >> > cmake/Modules/UHDVersion.cmake:9 (include) >> > cmake/Modules/UHDPackage.cmake:9 (include) >> > CMakeLists.txt:107 (include) >> > This warning is for project developers. Use -Wno-dev to suppress it. >> > >> > -- Python Libraries: C:/msys64/mingw64/lib/libpython3.11.dll.a >> > -- Python include directories: C:/msys64/mingw64/include/python3.11 >> > -- pybind11::lto disabled (problems with undefined symbols for MinGW for now) >> > -- pybind11::thin_lto disabled (problems with undefined symbols for >> > MinGW for now) >> > -- Operating on master branch. >> > -- Using UHD Images Directory: C:\msys64\mingw64\share\uhd\images >> > -- Build type not specified: defaulting to release. >> > -- >> > -- Configuring Boost C++ Libraries... >> > -- >> > -- Checking for Boost version 1.65 or greater >> > -- Looking for required Boost components... >> > -- Enabling Boost Error Code Header Only >> > -- Disabling boost::asio use of std::string_view >> > -- Boost version: 1.85.0 >> > -- Boost include directories: C:/msys64/mingw64/include >> > -- Boost library directories: C:/msys64/mingw64/lib >> > -- Boost libraries: >> > Boost::chrono;Boost::date_time;Boost::filesystem;Boost::program_options;Boost::serialization;Boost::thread;Boost::unit_test_framework;Boost::system >> > -- Looking for Boost version 1.65 or greater - found >> > -- >> > -- Python checking for compatible Python version >> > -- Python checking for compatible Python version - 3.11.9 satisfies >> > minimum required version 3.7 >> > -- >> > -- Python checking for Mako templates module >> > -- Python checking for Mako templates module - 1.3.5 satisfies minimum >> > required version 0.4.2 >> > -- >> > -- Python checking for requests module >> > -- Python checking for requests module - 2.32.2 satisfies minimum >> > required version 2.0 >> > -- >> > -- Python checking for numpy module >> > -- Python checking for numpy module - 1.26.4 satisfies minimum >> > required version 1.11 >> > -- >> > -- Python checking for ruamel.yaml module >> > -- Python checking for ruamel.yaml module - 0.18.6 satisfies minimum >> > required version 0.15 >> > -- >> > -- Configuring LibUHD support... >> > -- Dependency Boost_FOUND = TRUE >> > -- Dependency HAVE_PYTHON_MODULE_MAKO = TRUE >> > -- Enabling LibUHD support. >> > -- Override with -DENABLE_LIBUHD=ON/OFF >> > -- >> > -- Configuring LibUHD - C API support... >> > -- Dependency ENABLE_LIBUHD = ON >> > -- Enabling LibUHD - C API support. >> > -- Override with -DENABLE_C_API=ON/OFF >> > -- >> > -- Configuring LibUHD - Python API support... >> > -- Dependency ENABLE_LIBUHD = ON >> > -- Dependency HAVE_PYTHON_MODULE_NUMPY = TRUE >> > -- Dependency HAVE_PYTHON_LIBS = TRUE >> > -- Enabling LibUHD - Python API support. >> > -- Override with -DENABLE_PYTHON_API=ON/OFF >> > -- >> > -- Configuring Examples support... >> > -- Dependency ENABLE_LIBUHD = ON >> > -- Enabling Examples support. >> > -- Override with -DENABLE_EXAMPLES=ON/OFF >> > -- >> > -- Configuring Utils support... >> > -- Dependency ENABLE_LIBUHD = ON >> > -- Enabling Utils support. >> > -- Override with -DENABLE_UTILS=ON/OFF >> > -- >> > -- Configuring Tests support... >> > -- Dependency ENABLE_LIBUHD = ON >> > -- Enabling Tests support. >> > -- Override with -DENABLE_TESTS=ON/OFF >> > -- >> > -- Configuring Python Module (Utils only) support... >> > -- Dependency HAVE_PYTHON_MODULE_NUMPY = TRUE >> > -- Dependency HAVE_PYTHON_MODULE_MAKO = TRUE >> > -- Dependency HAVE_PYTHON_MODULE_YAML = TRUE >> > -- Enabling Python Module (Utils only) support. >> > -- Override with -DENABLE_PYMOD_UTILS=ON/OFF >> > -- >> > CMake Warning (dev) at >> > C:/msys64/mingw64/share/cmake/Modules/FindPackageHandleStandardArgs.cmake:447 >> > (message): >> > `find_package()` specify a version range but the module DPDK does not >> > support this capability. Only the lower endpoint of the range will be >> > used. >> > Call Stack (most recent call first): >> > cmake/Modules/FindDPDK.cmake:86 (find_package_handle_standard_args) >> > lib/CMakeLists.txt:63 (find_package) >> > This warning is for project developers. Use -Wno-dev to suppress it. >> > >> > -- Could NOT find DPDK (missing: DPDK_INCLUDE_DIRS DPDK_LIBRARIES) >> > (Required is at least version "18.11") >> > -- >> > -- Configuring USB support... >> > -- Dependency ENABLE_LIBUHD = ON >> > -- Dependency LIBUSB_FOUND = TRUE >> > -- Enabling USB support. >> > -- Override with -DENABLE_USB=ON/OFF >> > -- >> > -- Configuring B100 support... >> > -- Dependency ENABLE_LIBUHD = ON >> > -- Dependency ENABLE_USB = ON >> > -- Enabling B100 support. >> > -- Override with -DENABLE_B100=ON/OFF >> > -- >> > -- Configuring B200 support... >> > -- Dependency ENABLE_LIBUHD = ON >> > -- Dependency ENABLE_USB = ON >> > -- Enabling B200 support. >> > -- Override with -DENABLE_B200=ON/OFF >> > -- >> > -- Configuring USRP1 support... >> > -- Dependency ENABLE_LIBUHD = ON >> > -- Dependency ENABLE_USB = ON >> > -- Enabling USRP1 support. >> > -- Override with -DENABLE_USRP1=ON/OFF >> > -- >> > -- Configuring USRP2 support... >> > -- Dependency ENABLE_LIBUHD = ON >> > -- Enabling USRP2 support. >> > -- Override with -DENABLE_USRP2=ON/OFF >> > -- >> > -- Configuring X300 support... >> > -- Dependency ENABLE_LIBUHD = ON >> > -- Enabling X300 support. >> > -- Override with -DENABLE_X300=ON/OFF >> > -- >> > -- Configuring MPMD support... >> > -- Dependency ENABLE_LIBUHD = ON >> > -- Enabling MPMD support. >> > -- Override with -DENABLE_MPMD=ON/OFF >> > -- >> > -- Configuring SIM support... >> > -- Dependency ENABLE_LIBUHD = ON >> > -- Dependency ENABLE_MPMD = ON >> > -- Dependency ENABLE_PYTHON_API = ON >> > -- Enabling SIM support. >> > -- Override with -DENABLE_SIM=ON/OFF >> > -- >> > -- Configuring N300 support... >> > -- Dependency ENABLE_LIBUHD = ON >> > -- Dependency ENABLE_MPMD = ON >> > -- Enabling N300 support. >> > -- Override with -DENABLE_N300=ON/OFF >> > -- >> > -- Configuring N320 support... >> > -- Dependency ENABLE_LIBUHD = ON >> > -- Dependency ENABLE_MPMD = ON >> > -- Enabling N320 support. >> > -- Override with -DENABLE_N320=ON/OFF >> > -- >> > -- Configuring E320 support... >> > -- Dependency ENABLE_LIBUHD = ON >> > -- Dependency ENABLE_MPMD = ON >> > -- Enabling E320 support. >> > -- Override with -DENABLE_E320=ON/OFF >> > -- >> > -- Configuring E300 support... >> > -- Dependency ENABLE_LIBUHD = ON >> > -- Dependency ENABLE_MPMD = ON >> > -- Enabling E300 support. >> > -- Override with -DENABLE_E300=ON/OFF >> > -- >> > -- Configuring X400 support... >> > -- Dependency ENABLE_LIBUHD = ON >> > -- Dependency ENABLE_MPMD = ON >> > -- Enabling X400 support. >> > -- Override with -DENABLE_X400=ON/OFF >> > -- >> > -- Configuring OctoClock support... >> > -- Dependency ENABLE_LIBUHD = ON >> > -- Enabling OctoClock support. >> > -- Override with -DENABLE_OCTOCLOCK=ON/OFF >> > -- >> > -- Configuring DPDK support... >> > -- Dependency ENABLE_MPMD = ON >> > -- Dependency DPDK_FOUND = FALSE >> > -- Disabling DPDK support. >> > -- Override with -DENABLE_DPDK=ON/OFF >> > -- >> > -- >> > -- Configuring priority scheduling... >> > -- Priority scheduling supported through pthread_setschedparam. >> > -- Setting thread names is supported through pthread_setname_np. >> > -- Setting thread affinity is supported through windows SetThreadAffinityMask. >> > -- >> > -- Configuring module loading... >> > -- Module loading supported through LoadLibrary. >> > -- >> > -- Configuring atomics support... >> > -- Atomics support is built-in, no linking required. >> > -- >> > -- Processing NI-RIO FPGA LVBITX Bitstreams... >> > -- Using x300.lvbitx_base for codegen >> > -- Using x310.lvbitx_base for codegen >> > -- >> > -- USB support enabled via libusb. >> > -- >> > -- Configuring interface address discovery... >> > -- Interface address discovery supported through SIO_GET_INTERFACE_LIST. >> > -- >> > -- Loading build info. >> > CMake Deprecation Warning at cmake/Modules/CMakeRC.cmake:63 >> > (cmake_minimum_required): >> > Compatibility with CMake < 3.5 will be removed from a future version of >> > CMake. >> > >> > Update the VERSION argument <min> value or use a ...<max> suffix to tell >> > CMake that the project does not need compatibility with older versions. >> > Call Stack (most recent call first): >> > lib/rc/CMakeLists.txt:7 (include) >> > >> > >> > -- >> > -- Adding B2XX device test target >> > -- Adding X3x0 device test target >> > -- Adding E3XX device test target >> > -- Adding N3XX device test target >> > -- Adding E32x device test target >> > -- Adding X410 device test target >> > -- Adding X440 device test target >> > -- >> > -- >> > -- Configuring Manual support... >> > -- Dependency DOXYGEN_FOUND = YES >> > -- Enabling Manual support. >> > -- Override with -DENABLE_MANUAL=ON/OFF >> > -- >> > -- Configuring API/Doxygen support... >> > -- Dependency DOXYGEN_FOUND = YES >> > -- Enabling API/Doxygen support. >> > -- Override with -DENABLE_DOXYGEN=ON/OFF >> > -- >> > -- Found GZip: C:/msys64/usr/bin/gzip.exe >> > -- >> > -- Compressed Man Pages enabled >> > -- Override with -DENABLE_MAN_PAGE_COMPRESSION=ON/OFF >> > -- >> > -- Configuring Man Pages support... >> > -- Dependency NOT_WIN32 = >> > -- Dependency GZIP_FOUND = TRUE >> > -- Disabling Man Pages support. >> > -- Override with -DENABLE_MAN_PAGES=ON/OFF >> > -- Using Pybind11 from: C:/msys64/mingw64/include >> > -- >> > -- Python checking for gevent module >> > -- Python checking for gevent module - "import gevent" failed (is it installed?) >> > -- >> > -- Python checking for mprpc module >> > -- Python checking for mprpc module - "import mprpc" failed (is it installed?) >> > -- >> > -- Python checking for pyudev module >> > -- Python checking for pyudev module - "import pyudev" failed (is it installed?) >> > -- >> > -- Python checking for pyroute2 module >> > -- Python checking for pyroute2 module - "import pyroute2" failed (is >> > it installed?) >> > -- MPM unit test Python package prerequisites not met; skipping >> > -- >> > -- >> > -- Python checking for virtual environment >> > -- Python checking for virtual environment - "assert sys.prefix != >> > sys.base_prefix" failed >> > -- Installing 'uhd' Python module to: >> > C:/msys64/mingw64/lib/python3.11/site-packages >> > -- >> > -- ###################################################### >> > -- # UHD enabled components >> > -- ###################################################### >> > -- * LibUHD >> > -- * LibUHD - C API >> > -- * LibUHD - Python API >> > -- * Examples >> > -- * Utils >> > -- * Tests >> > -- * Python Module (Utils only) >> > -- * USB >> > -- * B100 >> > -- * B200 >> > -- * USRP1 >> > -- * USRP2 >> > -- * X300 >> > -- * MPMD >> > -- * SIM >> > -- * N300 >> > -- * N320 >> > -- * E320 >> > -- * E300 >> > -- * X400 >> > -- * OctoClock >> > -- * Manual >> > -- * API/Doxygen >> > -- >> > -- ###################################################### >> > -- # UHD disabled components >> > -- ###################################################### >> > -- * DPDK >> > -- * Man Pages >> > -- >> > -- ****************************************************** >> > -- * You are building the UHD development master branch. >> > -- * For production code, we recommend our stable, >> > -- * releases or using the release branch (maint). >> > -- ****************************************************** >> > -- Building version: 4.7.0.0-0-ga5ed1872 >> > -- Using install prefix: C:/msys64/mingw64 >> > -- Configuring done (3.7s) >> > -- Generating done (0.7s) >> > -- Build files have been written to: C:/msys64/home/chris/src/uhd/host/build >> > >> > I'm also applying a patch to get it to build. It was needed for >> > 4.6.0.0 and I've had to make some tweaks. None of the files touched >> > by the patch are part of the error, but I'll include it for >> > completeness. >> > >> > Thanks in advance, >> > >> > Chris >> _______________________________________________ >> USRP-users mailing list -- usrp-users@lists.ettus.com >> To unsubscribe send an email to usrp-users-leave@lists.ettus.com > > _______________________________________________ > USRP-users mailing list -- usrp-users@lists.ettus.com > To unsubscribe send an email to usrp-users-leave@lists.ettus.com