Skip to content

ydk_core_test target compilation fails in macOS 14 #1103

@ygorelik

Description

@ygorelik

Current Behavior

YDK core test target (ydk_core_test) compilation in MacOS 14 or 13 fails with this errors:

[ 93%] Building CXX object tests/CMakeFiles/ydk_core_test.dir/main.cpp.o
In file included from /Users/ygorelik/github/ydk-gen/sdk/cpp/core/tests/main.cpp:2:
In file included from /Users/ygorelik/github/ydk-gen/sdk/cpp/core/src/spdlog/spdlog.h:13:
In file included from /Users/ygorelik/github/ydk-gen/sdk/cpp/core/src/spdlog/common.h:8:
In file included from /Library/Developer/CommandLineTools/SDKs/MacOSX14.4.sdk/usr/include/c++/v1/string:622:
In file included from /Library/Developer/CommandLineTools/SDKs/MacOSX14.4.sdk/usr/include/c++/v1/string_view:1059:
In file included from /Library/Developer/CommandLineTools/SDKs/MacOSX14.4.sdk/usr/include/c++/v1/algorithm:1893:
In file included from /Library/Developer/CommandLineTools/SDKs/MacOSX14.4.sdk/usr/include/c++/v1/__algorithm/ranges_sample.h:13:
In file included from /Library/Developer/CommandLineTools/SDKs/MacOSX14.4.sdk/usr/include/c++/v1/__algorithm/sample.h:18:
/Library/Developer/CommandLineTools/SDKs/MacOSX14.4.sdk/usr/include/c++/v1/__random/uniform_int_distribution.h:237:5: error: static assertion failed due to requirement '__libcpp_random_is_valid_urng<Catch::RandomNumberGenerator, void>::value': 
    static_assert(__libcpp_random_is_valid_urng<_URNG>::value, "");
    ^             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/Library/Developer/CommandLineTools/SDKs/MacOSX14.4.sdk/usr/include/c++/v1/__algorithm/shuffle.h:154:35: note: in instantiation of function template specialization 'std::uniform_int_distribution<long>::operator()<Catch::RandomNumberGenerator>' requested here
            difference_type __i = __uid(__g, _Pp(0, __d));
                                  ^
/Library/Developer/CommandLineTools/SDKs/MacOSX14.4.sdk/usr/include/c++/v1/__algorithm/shuffle.h:166:14: note: in instantiation of function template specialization 'std::__shuffle<std::_ClassicAlgPolicy, std::__wrap_iter<Catch::TestCase *>, std::__wrap_iter<Catch::TestCase *>, Catch::RandomNumberGenerator &>' requested here
  (void)std::__shuffle<_ClassicAlgPolicy>(
             ^
/Users/ygorelik/github/ydk-gen/sdk/cpp/core/src/catch.hpp:6906:18: note: in instantiation of function template specialization 'std::shuffle<std::__wrap_iter<Catch::TestCase *>, Catch::RandomNumberGenerator &>' requested here
            std::shuffle( vector.begin(), vector.end(), rng );
                 ^
/Users/ygorelik/github/ydk-gen/sdk/cpp/core/src/catch.hpp:6924:44: note: in instantiation of function template specialization 'Catch::RandomNumberGenerator::shuffle<std::vector<Catch::TestCase>>' requested here
                    RandomNumberGenerator::shuffle( sorted );
                                           ^
1 error generated.
make[2]: *** [tests/CMakeFiles/ydk_core_test.dir/main.cpp.o] Error 1
make[1]: *** [tests/CMakeFiles/ydk_core_test.dir/all] Error 2
make: *** [all] Error 2

Note that C++ compiler fails in the internal MacOS include file:
/Library/Developer/CommandLineTools/SDKs/MacOSX14.4.sdk/usr/include/c++/v1/__random/uniform_int_distribution.h

Steps to Reproduce

Manually compile YDK core library and unit tests. That would create core unit test and sample executables with debug symbols.

cd $YDK_HOME
mkdir -p sdk/cpp/core/build
cd sdk/cpp/core/build && cmake ..
make

System Information

macOS Sonoma (14.4)
YDK 0.8.6.6

Metadata

Metadata

Assignees

Labels

C++MacIssues that appear specifically on Mac platformworkaroundThe issue has a workaround

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions