Bug #119239 Compilation error with clang 21 / XCode
| Submitted: | 27 Oct 2025 7:53 | Modified: | 11 Jun 4:05 |
|---|---|---|---|
| Reporter: | Laurynas Biveinis (OCA) | Email Updates: | |
| Status: | Open | Impact on me: | |
| Category: | MySQL Server: Compiling | Severity: | S3 (Non-critical) |
| Version: | 8.0.46, 8.4.9 | OS: | MacOS (26.0.1) |
| Assigned to: | CPU Architecture: | ARM |
[27 Oct 2025 8:01]
Laurynas Biveinis
With -Wno-uninitialized-const-pointer the build stops at
[324/3757] Linking CXX executable runtime_output_directory/comp_client_err
FAILED: [code=1] runtime_output_directory/comp_client_err
: && /opt/homebrew/opt/llvm/bin/clang++ -std=c++17 -fno-omit-frame-pointer -ftls-model=initial-exec -Wno-invalid-specialization -Wno-uninitialized-const-pointer -g -Wall -Wextra -Wformat-security -Wvla -Wundef -Wmissing-format-attribute -Woverloaded-virtual -Wcast-qual -Wno-null-conversion -Wno-unused-private-field -Wconditional-uninitialized -Wdeprecated -Wno-deprecated-declarations -Wno-shorten-64-to-32 -Wextra-semi -Wheader-hygiene -Wnon-virtual-dtor -Wundefined-reinterpret-cast -Wrange-loop-analysis -Winconsistent-missing-destructor-override -Winconsistent-missing-override -Wshadow-field -Werror -ffunction-sections -fdata-sections -O2 -DNDEBUG -Wno-invalid-specialization -Wno-uninitialized-const-pointer -g -arch arm64 -Wl,-search_paths_first -Wl,-headerpad_max_install_names -Xlinker -no_warn_duplicate_libraries utilities/CMakeFiles/comp_client_err.dir/comp_client_err.cc.o utilities/CMakeFiles/comp_client_err.dir/__/libmysql/errmsg.cc.o -o runtime_output_directory/comp_client_err archive_output_directory/libmysys.a archive_output_directory/libstrings.a archive_output_directory/libmysys.a archive_output_directory/libstrings.a archive_output_directory/libmytime.a archive_output_directory/libzlib.a /opt/homebrew/lib/libzstd.dylib /opt/homebrew/opt/openssl@1.1/lib/libssl.dylib /opt/homebrew/opt/openssl@1.1/lib/libcrypto.dylib && cd /Users/laurynas/vilniusdb/mysql-8.0.44/_build-release-llvm/utilities && codesign --sign - --preserve-metadata=entitlements --force --entitlements /Users/laurynas/vilniusdb/mysql-8.0.44/_build-release-llvm/dev.entitlements /Users/laurynas/vilniusdb/mysql-8.0.44/_build-release-llvm/runtime_output_directory/comp_client_err
Undefined symbols for architecture arm64:
"std::__1::__hash_memory(void const*, unsigned long)", referenced from:
std::__1::__hash_iterator<std::__1::__hash_node<std::__1::__hash_value_type<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>, int>, void*>*> std::__1::__hash_table<std::__1::__hash_value_type<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>, int>, std::__1::__unordered_map_hasher<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>, std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const, int>, std::__1::hash<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>>, std::__1::equal_to<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>>, true>, std::__1::__unordered_map_equal<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>, std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const, int>, std::__1::equal_to<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>>, std::__1::hash<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>>, true>, std::__1::allocator<std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const, int>>>::find<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>>(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const&) in libmysys.a[3](charset.cc.o)
std::__1::pair<std::__1::__hash_iterator<std::__1::__hash_node<std::__1::__hash_value_type<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>, int>, void*>*>, bool> std::__1::__hash_table<std::__1::__hash_value_type<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>, int>, std::__1::__unordered_map_hasher<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>, std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const, int>, std::__1::hash<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>>, std::__1::equal_to<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>>, true>, std::__1::__unordered_map_equal<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>, std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const, int>, std::__1::equal_to<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>>, std::__1::hash<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>>, true>, std::__1::allocator<std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const, int>>>::__emplace_unique_key_args<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>, std::__1::piecewise_construct_t const&, std::__1::tuple<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>&&>, std::__1::tuple<>>(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const&, std::__1::piecewise_construct_t const&, std::__1::tuple<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>&&>&&, std::__1::tuple<>&&) in libmysys.a[3](charset.cc.o)
ld: symbol(s) not found for architecture arm64
clang++: error: linker command failed with exit code 1 (use -v to see invocation)
[27 Oct 2025 12:14]
Laurynas Biveinis
8.4.7 is also affected, and the workaround allows the build to proceed until bug 119242
[23 Jan 8:23]
Laurynas Biveinis
Same with 8.0.45
[23 Jan 10:19]
Laurynas Biveinis
Same with 8.4.8, which in addition started being affected by bug 119246
[9 Jun 13:51]
Laurynas Biveinis
Same with 8.0.46 with current XCode
[11 Jun 4:05]
Laurynas Biveinis
Same with 8.4.9 with current XCode
Portions of this website are copyright © 2001, 2002 The PHP Group
Page generated in 0.044 sec. using MySQL 8.4.7-u6-cloud
Timestamp references displayed by the system are UTC.
Content reproduced on this site is the property of the
respective copyright holders.
It is not reviewed in advance
by Oracle and does not necessarily represent the opinion of
Oracle or any other party.
Description: CMake options: -DCMAKE_EXPORT_COMPILE_COMMANDS=ON -DFORCE_UNSUPPORTED_COMPILER=ON -DBUILD_CONFIG=mysql_release -DCMAKE_BUILD_TYPE=Release -DMYSQL_MAINTAINER_MODE=ON -DWITH_SYSTEM_LIBS=ON -DWITH_NDBCLUSTER_STORAGE_ENGINE=OFF -DDOWNLOAD_BOOST=ON -DWITH_BOOST=(path) -DFORCE_COLORED_OUTPUT=ON -DCMAKE_CXX_FLAGS=-Wno-invalid-specialization -g -DCMAKE_CXX_FLAGS_DEBUG=-Wno-invalid-specialization -g -DCMAKE_CXX_FLAGS_RELEASE=-O2 -DNDEBUG -Wno-invalid-specialization -g with Homebrew-packaged LLVM 21 result in FAILED: [code=1] scripts/CMakeFiles/comp_sql.dir/comp_sql.cc.o /opt/homebrew/opt/llvm/bin/clang++ -DBOOST_NO_CXX98_FUNCTION_BASE -DHAVE_TLSv13 -DLZ4_DISABLE_DEPRECATE_WARNINGS -D_USE_MATH_DEFINES -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -I/Users/laurynas/vilniusdb/mysql-8.0.44/_build-release-llvm -I/Users/laurynas/vilniusdb/mysql-8.0.44/_build-release-llvm/include -I/Users/laurynas/vilniusdb/mysql-8.0.44 -I/Users/laurynas/vilniusdb/mysql-8.0.44/include -isystem /Users/laurynas/vilniusdb/mysql-8.0.44/extra/rapidjson/include -isystem /opt/homebrew/opt/openssl@1.1/include -isystem /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/editline -isystem /opt/homebrew/include -std=c++17 -fno-omit-frame-pointer -ftls-model=initial-exec -Wno-invalid-specialization -g -Wall -Wextra -Wformat-security -Wvla -Wundef -Wmissing-format-attribute -Woverloaded-virtual -Wcast-qual -Wno-null-conversion -Wno-unused-private-field -Wconditional-uninitialized -Wdeprecated -Wno-deprecated-declarations -Wno-shorten-64-to-32 -Wextra-semi -Wheader-hygiene -Wnon-virtual-dtor -Wundefined-reinterpret-cast -Wrange-loop-analysis -Winconsistent-missing-destructor-override -Winconsistent-missing-override -Wshadow-field -Werror -ffunction-sections -fdata-sections -O2 -DNDEBUG -Wno-invalid-specialization -g -arch arm64 -fPIE -fcolor-diagnostics -MD -MT scripts/CMakeFiles/comp_sql.dir/comp_sql.cc.o -MF scripts/CMakeFiles/comp_sql.dir/comp_sql.cc.o.d --language=c++ -o scripts/CMakeFiles/comp_sql.dir/comp_sql.cc.o -c /Users/laurynas/vilniusdb/mysql-8.0.44/scripts/comp_sql.cc In file included from /Users/laurynas/vilniusdb/mysql-8.0.44/scripts/comp_sql.cc:37: /Users/laurynas/vilniusdb/mysql-8.0.44/include/mysql/psi/mysql_file.h:728:42: error: variable 'locker' is uninitialized when passed as a const pointer argument here [-Werror,-Wuninitialized-const-pointer] 728 | &state, key, PSI_FILE_STAT, path, &locker); | ^~~~~~ /Users/laurynas/vilniusdb/mysql-8.0.44/include/mysql/psi/mysql_file.h:943:48: error: variable 'locker' is uninitialized when passed as a const pointer argument here [-Werror,-Wuninitialized-const-pointer] 943 | &state, key, PSI_FILE_CREATE, filename, &locker); | ^~~~~~ /Users/laurynas/vilniusdb/mysql-8.0.44/include/mysql/psi/mysql_file.h:967:47: error: variable 'locker' is uninitialized when passed as a const pointer argument here [-Werror,-Wuninitialized-const-pointer] 967 | &state, key, PSI_FILE_CREATE, nullptr, &locker); | ^~~~~~ /Users/laurynas/vilniusdb/mysql-8.0.44/include/mysql/psi/mysql_file.h:992:46: error: variable 'locker' is uninitialized when passed as a const pointer argument here [-Werror,-Wuninitialized-const-pointer] 992 | &state, key, PSI_FILE_OPEN, filename, &locker); | ^~~~~~ /Users/laurynas/vilniusdb/mysql-8.0.44/include/mysql/psi/mysql_file.h:1200:44: error: variable 'locker' is uninitialized when passed as a const pointer argument here [-Werror,-Wuninitialized-const-pointer] 1200 | &state, key, PSI_FILE_DELETE, name, &locker); | ^~~~~~ /Users/laurynas/vilniusdb/mysql-8.0.44/include/mysql/psi/mysql_file.h:1223:44: error: variable 'locker' is uninitialized when passed as a const pointer argument here [-Werror,-Wuninitialized-const-pointer] 1223 | &state, key, PSI_FILE_RENAME, from, &locker); | ^~~~~~ /Users/laurynas/vilniusdb/mysql-8.0.44/include/mysql/psi/mysql_file.h:1248:48: error: variable 'locker' is uninitialized when passed as a const pointer argument here [-Werror,-Wuninitialized-const-pointer] 1248 | &state, key, PSI_FILE_CREATE, filename, &locker); | ^~~~~~ /Users/laurynas/vilniusdb/mysql-8.0.44/include/mysql/psi/mysql_file.h:1273:44: error: variable 'locker' is uninitialized when passed as a const pointer argument here [-Werror,-Wuninitialized-const-pointer] 1273 | &state, key, PSI_FILE_DELETE, name, &locker); | ^~~~~~ /Users/laurynas/vilniusdb/mysql-8.0.44/include/mysql/psi/mysql_file.h:1296:44: error: variable 'locker' is uninitialized when passed as a const pointer argument here [-Werror,-Wuninitialized-const-pointer] 1296 | &state, key, PSI_FILE_RENAME, from, &locker); | ^~~~~~ How to repeat: See above