-
Notifications
You must be signed in to change notification settings - Fork 186
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Fix 'tests' target build on macOS 15 #5364
Conversation
`make tests` is broken on current dev with errors like this: ``` pydev ❯ nj tests [184/468] Building CXX object tiledb/stdx/test/CMakeFiles/unit_stdx.dir/compat.cc.o FAILED: tiledb/stdx/test/CMakeFiles/unit_stdx.dir/compat.cc.o /usr/bin/g++ -DNDEBUG -D_FILE_OFFSET_BITS=64 -I/Users/inorton/work/git/TileDB -isystem /Users/inorton/work/bld/TileDB-rel/vcpkg_installed/arm64-osx/include -O3 -DNDEBUG -std=c++20 -arch arm64 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.1.sdk -mmacosx-version-min=15.0 -fPIE -fvisibility=hidden -Wall -Wextra -Werror -O3 -Wno-unqualified-std-cast-call -MD -MT tiledb/stdx/test/CMakeFiles/unit_stdx.dir/compat.cc.o -MF tiledb/stdx/test/CMakeFiles/unit_stdx.dir/compat.cc.o.d -o tiledb/stdx/test/CMakeFiles/unit_stdx.dir/compat.cc.o -c /Users/inorton/work/git/TileDB/tiledb/stdx/test/compat.cc In file included from /Users/inorton/work/git/TileDB/tiledb/stdx/test/compat.cc:34: In file included from /Users/inorton/work/git/TileDB/tiledb/stdx/stop_token:41: /Users/inorton/work/git/TileDB/tiledb/stdx/bits/stop_token.h:150:7: error: reference to '__stop_callback_base' is ambiguous 150 | __stop_callback_base* __cb, | ^ ``` gist: https://gist.github.com/ihnorton/2f616091f92be4b493f7fec6fdd40dee It looks like AppleClang has added incomplete support for `stop_token` and `std::jthread`, but `__cpp_lib_jthread` guard doesn't exist, which breaks our existing feature guards in `tiledb/stdx/{stop_token,thread}`. Fix is to add `-fexperimental-library` to AppleClang>16 cxx flags. --- TYPE: NO_HISTORY DESC: Fix 'tests' target build on AppleClang 16 (stop_token,jthread)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think the root cause of the failures is that we are defining stuff in the std
namespace, which is undefined behavior IIRC. We should use stdx
or something else, and forward to std
if the APIs are available on the platform.
The platform tests are broken on AppleClang 16 without this change because |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM
(removing the requested changes, please create a story to change the |
A few errors include: error: no member named 'copy' in namespace 'std::ranges'; did you mean 'bcopy'?
error: no member named 'permutable' in namespace 'std'
error: unexpected type name 'ZI': expected expression
error: no member named 'sortable' in namespace 'std' |
On macOS 15,
make tests
is broken on current dev with errors like this:gist: https://gist.github.com/ihnorton/2f616091f92be4b493f7fec6fdd40dee
It looks like AppleClang has added incomplete support for
stop_token
andstd::jthread
, but__cpp_lib_jthread
guard doesn't exist, which breaks our existing feature guards intiledb/stdx/{stop_token,thread}
.Fix is to add
-fexperimental-library
to AppleClang>16 cxx flags.TYPE: NO_HISTORY
DESC: Fix 'tests' target build on AppleClang 16 (stop_token,jthread)