| Bug #119239 | Compilation error with clang 21 | ||
|---|---|---|---|
| Submitted: | 27 Oct 7:53 | Modified: | 27 Oct 12:14 |
| Reporter: | Laurynas Biveinis (OCA) | Email Updates: | |
| Status: | Open | Impact on me: | |
| Category: | MySQL Server: Compiling | Severity: | S3 (Non-critical) |
| Version: | 8.0.44, 8.4.7 | OS: | MacOS (26.0.1) |
| Assigned to: | CPU Architecture: | ARM | |
[27 Oct 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 12:14]
Laurynas Biveinis
8.4.7 is also affected, and the workaround allows the build to proceed until bug 119242

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