Bug #119246 9.7.0-er2 compilation error with LLVM 21
| Submitted: | 27 Oct 2025 15:02 | Modified: | 11 Jun 10:09 |
|---|---|---|---|
| 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, 9.7.0-er2 | OS: | MacOS (26.0.1) |
| Assigned to: | CPU Architecture: | ARM |
[23 Jan 10:04]
Laurynas Biveinis
8.4 series started being affected too in 8.4.8
[23 Jan 12:14]
Laurynas Biveinis
Same with 9.6.0
[24 Mar 13:48]
Laurynas Biveinis
Some LLVM 21 build errors with 9.7.0-er:
/Users/laurynas/vilniusdb/mysql-9.7.0-er/strings/ctype.cc:378:37: error: diagnostic behavior may be improved by adding the 'format(printf, 2, 3)' attribute to the declaration of 'tailoring_append' [-Werror,-Wmissing-format-attribute]
372 | static int tailoring_append(MY_XML_PARSER *st, const char *fmt, size_t len,
| [[gnu::format(printf, 2, 3)]]
373 | const char *attr) {
374 | auto *i = (struct my_cs_file_info *)st->user_data;
375 | size_t const newlen = i->tailoring_length + len + 64; /* 64 for format */
376 | if (MY_XML_OK == my_charset_file_tailoring_realloc(i, newlen)) {
377 | char *dst = i->tailoring + i->tailoring_length;
378 | sprintf(dst, fmt, (int)len, attr);
| ^
/Users/laurynas/vilniusdb/mysql-9.7.0-er/strings/ctype.cc:372:12: note: 'tailoring_append' declared here
372 | static int tailoring_append(MY_XML_PARSER *st, const char *fmt, size_t len,
| ^
/Users/laurynas/vilniusdb/mysql-9.7.0-er/strings/ctype.cc:393:57: error: diagnostic behavior may be improved by adding the 'format(printf, 2, 3)' attribute to the declaration of 'tailoring_append2' [-Werror,-Wmissing-format-attribute]
385 | static int tailoring_append2(MY_XML_PARSER *st, const char *fmt, size_t len1,
| [[gnu::format(printf, 2, 3)]]
386 | const char *attr1, size_t len2,
387 | const char *attr2) {
388 | auto *i = (struct my_cs_file_info *)st->user_data;
389 | size_t const newlen =
390 | i->tailoring_length + len1 + len2 + 64; /* 64 for format */
391 | if (MY_XML_OK == my_charset_file_tailoring_realloc(i, newlen)) {
392 | char *dst = i->tailoring + i->tailoring_length;
393 | sprintf(dst, fmt, (int)len1, attr1, (int)len2, attr2);
| ^
/Users/laurynas/vilniusdb/mysql-9.7.0-er/strings/ctype.cc:385:12: note: 'tailoring_append2' declared here
385 | static int tailoring_append2(MY_XML_PARSER *st, const char *fmt, size_t len1,
| ^
/Users/laurynas/vilniusdb/mysql-9.7.0-er/strings/ctype.cc:458:41: error: data argument not used by format string [-Werror,-Wformat-extra-args]
458 | return tailoring_append(st, " &", 0, nullptr);
| ~~~~ ^
/Users/laurynas/vilniusdb/mysql-9.7.0-er/strings/ctype.cc:480:58: error: data argument not used by format string [-Werror,-Wformat-extra-args]
480 | rc = tailoring_append(st, "[first non-ignorable]", 0, nullptr);
| ~~~~~~~~~~~~~~~~~~~~~~~ ^
/Users/laurynas/vilniusdb/mysql-9.7.0-er/strings/ctype.cc:484:57: error: data argument not used by format string [-Werror,-Wformat-extra-args]
484 | rc = tailoring_append(st, "[last non-ignorable]", 0, nullptr);
| ~~~~~~~~~~~~~~~~~~~~~~ ^
/Users/laurynas/vilniusdb/mysql-9.7.0-er/strings/ctype.cc:488:62: error: data argument not used by format string [-Werror,-Wformat-extra-args]
488 | rc = tailoring_append(st, "[first primary ignorable]", 0, nullptr);
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~ ^
/Users/laurynas/vilniusdb/mysql-9.7.0-er/strings/ctype.cc:492:61: error: data argument not used by format string [-Werror,-Wformat-extra-args]
492 | rc = tailoring_append(st, "[last primary ignorable]", 0, nullptr);
| ~~~~~~~~~~~~~~~~~~~~~~~~~~ ^
/Users/laurynas/vilniusdb/mysql-9.7.0-er/strings/ctype.cc:496:64: error: data argument not used by format string [-Werror,-Wformat-extra-args]
496 | rc = tailoring_append(st, "[first secondary ignorable]", 0, nullptr);
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ^
/Users/laurynas/vilniusdb/mysql-9.7.0-er/strings/ctype.cc:500:63: error: data argument not used by format string [-Werror,-Wformat-extra-args]
500 | rc = tailoring_append(st, "[last secondary ignorable]", 0, nullptr);
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ^
/Users/laurynas/vilniusdb/mysql-9.7.0-er/strings/ctype.cc:504:63: error: data argument not used by format string [-Werror,-Wformat-extra-args]
504 | rc = tailoring_append(st, "[first tertiary ignorable]", 0, nullptr);
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ^
/Users/laurynas/vilniusdb/mysql-9.7.0-er/strings/ctype.cc:508:62: error: data argument not used by format string [-Werror,-Wformat-extra-args]
508 | rc = tailoring_append(st, "[last tertiary ignorable]", 0, nullptr);
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~ ^
/Users/laurynas/vilniusdb/mysql-9.7.0-er/strings/ctype.cc:512:53: error: data argument not used by format string [-Werror,-Wformat-extra-args]
512 | rc = tailoring_append(st, "[first trailing]", 0, nullptr);
| ~~~~~~~~~~~~~~~~~~ ^
/Users/laurynas/vilniusdb/mysql-9.7.0-er/strings/ctype.cc:516:52: error: data argument not used by format string [-Werror,-Wformat-extra-args]
516 | rc = tailoring_append(st, "[last trailing]", 0, nullptr);
| ~~~~~~~~~~~~~~~~~ ^
/Users/laurynas/vilniusdb/mysql-9.7.0-er/strings/ctype.cc:520:53: error: data argument not used by format string [-Werror,-Wformat-extra-args]
520 | rc = tailoring_append(st, "[first variable]", 0, nullptr);
| ~~~~~~~~~~~~~~~~~~ ^
/Users/laurynas/vilniusdb/mysql-9.7.0-er/strings/ctype.cc:524:52: error: data argument not used by format string [-Werror,-Wformat-extra-args]
524 | rc = tailoring_append(st, "[last variable]", 0, nullptr);
| ~~~~~~~~~~~~~~~~~ ^
/Users/laurynas/vilniusdb/mysql-9.7.0-er/strings/ctype.cc:626:45: error: field precision should have type 'int', but argument has type 'size_t' (aka 'unsigned long') [-Werror,-Wformat]
626 | rc = tailoring_append(st, "[version %.*s]", len, attr);
| ~~^~ ~~~
/Users/laurynas/vilniusdb/mysql-9.7.0-er/strings/ctype.cc:630:59: error: field precision should have type 'int', but argument has type 'size_t' (aka 'unsigned long') [-Werror,-Wformat]
630 | rc = tailoring_append(st, "[suppress contractions %.*s]", len, attr);
| ~~^~ ~~~
/Users/laurynas/vilniusdb/mysql-9.7.0-er/strings/ctype.cc:634:46: error: field precision should have type 'int', but argument has type 'size_t' (aka 'unsigned long') [-Werror,-Wformat]
634 | rc = tailoring_append(st, "[optimize %.*s]", len, attr);
| ~~^~ ~~~
/Users/laurynas/vilniusdb/mysql-9.7.0-er/strings/ctype.cc:638:56: error: field precision should have type 'int', but argument has type 'size_t' (aka 'unsigned long') [-Werror,-Wformat]
638 | rc = tailoring_append(st, "[shift-after-method %.*s]", len, attr);
| ~~^~ ~~~
fatal error: too many errors emitted, stopping now [-ferror-limit=]
[10 Apr 17:14]
Laurynas Biveinis
With 9.7.0-er2 the error is
[24/4515] Building CXX object router/src/harness/src/CMakeFiles/harness_stdx.dir/stdx/filesystem.cc.o
FAILED: [code=1] router/src/harness/src/CMakeFiles/harness_stdx.dir/stdx/filesystem.cc.o
/opt/homebrew/opt/llvm/bin/clang++ -DHAVE_TLSv13 -DLZ4_DISABLE_DEPRECATE_WARNINGS -D_USE_MATH_DEFINES -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -Dharness_stdx_EXPORTS -I/Users/laurynas/vilniusdb/mysql-9.7.0-er2/_build-llvm-21-debug -I/Users/laurynas/vilniusdb/mysql-9.7.0-er2/_build-llvm-21-debug/include -I/Users/laurynas/vilniusdb/mysql-9.7.0-er2 -I/Users/laurynas/vilniusdb/mysql-9.7.0-er2/include -I/Users/laurynas/vilniusdb/mysql-9.7.0-er2/libs -I/Users/laurynas/vilniusdb/mysql-9.7.0-er2/_build-llvm-21-debug/router -I/Users/laurynas/vilniusdb/mysql-9.7.0-er2/_build-llvm-21-debug/router/include -I/Users/laurynas/vilniusdb/mysql-9.7.0-er2/router/src/harness/src/../include -I/Users/laurynas/vilniusdb/mysql-9.7.0-er2/router/src/harness/src -I/Users/laurynas/vilniusdb/mysql-9.7.0-er2/_build-llvm-21-debug/router/src/harness/src/../include -isystem /Users/laurynas/vilniusdb/mysql-9.7.0-er2/extra/rapidjson/include -isystem /opt/homebrew/opt/openssl/include -isystem /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/editline -isystem /opt/homebrew/include -fno-omit-frame-pointer -ftls-model=initial-exec -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 -Wstring-concatenation -Wdocumentation -Wno-documentation-deprecated-sync -Werror -DSAFE_MUTEX -DENABLED_DEBUG_SYNC -g -std=gnu++23 -arch arm64 -fPIC -fcolor-diagnostics -MD -MT router/src/harness/src/CMakeFiles/harness_stdx.dir/stdx/filesystem.cc.o -MF router/src/harness/src/CMakeFiles/harness_stdx.dir/stdx/filesystem.cc.o.d --language=c++ -o router/src/harness/src/CMakeFiles/harness_stdx.dir/stdx/filesystem.cc.o -c /Users/laurynas/vilniusdb/mysql-9.7.0-er2/router/src/harness/src/stdx/filesystem.cc
/Users/laurynas/vilniusdb/mysql-9.7.0-er2/router/src/harness/src/stdx/filesystem.cc:120:18: error: use of undeclared identifier 'getenv'
120 | auto *path = getenv(envvar);
| ^~~~~~
1 error generated.
I don't know if it's earlier or later than the previous errors in the build
[10 Apr 18:24]
Laurynas Biveinis
With -DWITH_ROUTER=OFF the LLVM 21 build error becomes identical to XCode 26.4 one:
FAILED: [code=1] libs/mysql/gtid/CMakeFiles/mysql_gtid.dir/tag_plain.cpp.o
/opt/homebrew/opt/llvm/bin/clang++ -DHAVE_TLSv13 -DLZ4_DISABLE_DEPRECATE_WARNINGS -D_USE_MATH_DEFINES -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -I/Users/laurynas/vilniusdb/mysql-9.7.0-er2/_build-llvm-21-debug -I/Users/laurynas/vilniusdb/mysql-9.7.0-er2/_build-llvm-21-debug/include -I/Users/laurynas/vilniusdb/mysql-9.7.0-er2 -I/Users/laurynas/vilniusdb/mysql-9.7.0-er2/include -I/Users/laurynas/vilniusdb/mysql-9.7.0-er2/libs -isystem /Users/laurynas/vilniusdb/mysql-9.7.0-er2/extra/rapidjson/include -isystem /opt/homebrew/opt/openssl/include -isystem /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/editline -isystem /opt/homebrew/include -fno-omit-frame-pointer -ftls-model=initial-exec -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 -Wstring-concatenation -Wdocumentation -Wno-documentation-deprecated-sync -Werror -DSAFE_MUTEX -DENABLED_DEBUG_SYNC -g -std=gnu++23 -arch arm64 -fPIC -fcolor-diagnostics -MD -MT libs/mysql/gtid/CMakeFiles/mysql_gtid.dir/tag_plain.cpp.o -MF libs/mysql/gtid/CMakeFiles/mysql_gtid.dir/tag_plain.cpp.o.d --language=c++ -o libs/mysql/gtid/CMakeFiles/mysql_gtid.dir/tag_plain.cpp.o -c /Users/laurynas/vilniusdb/mysql-9.7.0-er2/libs/mysql/gtid/tag_plain.cpp
In file included from /Users/laurynas/vilniusdb/mysql-9.7.0-er2/libs/mysql/gtid/tag_plain.cpp:24:
/Users/laurynas/vilniusdb/mysql-9.7.0-er2/libs/mysql/gtid/tag_plain.h:83:20: error: no template named 'is_trivial_v' in namespace 'std'; did you mean 'is_final_v'?
83 | static_assert(std::is_trivial_v<Tag_plain>);
| ~~~~~^~~~~~~~~~~~
| is_final_v
/opt/homebrew/Cellar/llvm/22.1.2/bin/../include/c++/v1/__type_traits/is_final.h:31:50: note: 'is_final_v' declared here
31 | _LIBCPP_NO_SPECIALIZATIONS inline constexpr bool is_final_v = __is_final(_Tp);
| ^
In file included from /Users/laurynas/vilniusdb/mysql-9.7.0-er2/libs/mysql/gtid/tag_plain.cpp:24:
/Users/laurynas/vilniusdb/mysql-9.7.0-er2/libs/mysql/gtid/tag_plain.h:83:15: error: static assertion failed due to requirement 'std::is_final_v<mysql::gtid::Tag_plain>'
83 | static_assert(std::is_trivial_v<Tag_plain>);
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
/Users/laurynas/vilniusdb/mysql-9.7.0-er2/libs/mysql/gtid/tag_plain.h:83:15: note: 'mysql::gtid::Tag_plain' is not final
/Users/laurynas/vilniusdb/mysql-9.7.0-er2/libs/mysql/gtid/tag_plain.h:83:15: note: because it is not marked 'final'
/Users/laurynas/vilniusdb/mysql-9.7.0-er2/libs/mysql/gtid/tag_plain.h:47:8: note: 'Tag_plain' defined here
47 | struct Tag_plain {
| ^
2 errors generated.
[13 Apr 14:33]
Laurynas Biveinis
Update title
[9 Jun 14:56]
Laurynas Biveinis
Same on 8.0.46 with the current XCode
[11 Jun 10:09]
Laurynas Biveinis
Same for 8.4.9
[24 Jun 21:31]
Anton Melnikov
I hit `std::is_trivial_v` compilation error as well (see https://github.com/Homebrew/homebrew-core/pull/288357). It compiles fine after replacing ``` static_assert(std::is_trivial_v<Tag_plain>); ``` in `libs/mysql/gtid/tag_plain.h` with ``` static_assert(std::is_trivially_default_constructible_v<Tag_plain>); static_assert(std::is_trivially_copyable_v<Tag_plain>); ```
Portions of this website are copyright © 2001, 2002 The PHP Group
Page generated in 0.043 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 -DFORCE_COLORED_OUTPUT=ON -DCMAKE_CXX_FLAGS=-g -DCMAKE_CXX_FLAGS_DEBUG=-g -DCMAKE_CXX_FLAGS_RELEASE=-O2 -DNDEBUG -g results in FAILED: [code=1] sql/CMakeFiles/sql_dd.dir/dd/info_schema/show_query_builder.cc.o /opt/homebrew/opt/llvm/bin/clang++ -DBOOST_NO_CXX98_FUNCTION_BASE -DHAVE_TLSv13 -DLZ4_DISABLE_DEPRECATE_WARNINGS -DMYSQLXMESSAGES_STATIC_DEFINE -DMYSQL_SERVER -DRAPIDJSON_HAS_STDSTRING=1 -DRAPIDJSON_NO_SIZETYPEDEFINE -DRAPIDJSON_SCHEMA_USE_INTERNALREGEX=0 -DRAPIDJSON_SCHEMA_USE_STDREGEX=1 -D_USE_MATH_DEFINES -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -I/Users/laurynas/vilniusdb/mysql-9.5.0/_build-release-llvm -I/Users/laurynas/vilniusdb/mysql-9.5.0/_build-release-llvm/include -I/Users/laurynas/vilniusdb/mysql-9.5.0 -I/Users/laurynas/vilniusdb/mysql-9.5.0/include -I/Users/laurynas/vilniusdb/mysql-9.5.0/libs -I/Users/laurynas/vilniusdb/mysql-9.5.0/router/src/harness/include -isystem /Users/laurynas/vilniusdb/mysql-9.5.0/extra/rapidjson/include -isystem /opt/homebrew/opt/openssl/include -isystem /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/editline -isystem /opt/homebrew/include -isystem /opt/homebrew/opt/icu4c/include -isystem /Users/laurynas/vilniusdb/mysql-9.5.0/extra/unordered_dense/unordered_dense-4.4.0/include -isystem /Users/laurynas/vilniusdb/mysql-9.5.0/extra/zlib/zlib-1.3.1 -isystem /Users/laurynas/vilniusdb/mysql-9.5.0/_build-release-llvm/extra/zlib/zlib-1.3.1 -isystem /Users/laurynas/vilniusdb/mysql-9.5.0/plugin/x/client -isystem /Users/laurynas/vilniusdb/mysql-9.5.0/_build-release-llvm/plugin/x/generated/protobuf_lite -isystem /Users/laurynas/vilniusdb/mysql-9.5.0/_build-release-llvm/plugin/x/generated -isystem /Users/laurynas/vilniusdb/mysql-9.5.0/extra/boost/boost_1_87_0 -std=c++20 -fno-omit-frame-pointer -ftls-model=initial-exec -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 -Wstring-concatenation -Wdocumentation -Wno-documentation-deprecated-sync -Werror -ffunction-sections -fdata-sections -O2 -DNDEBUG -g -std=gnu++20 -arch arm64 -fPIC -fcolor-diagnostics -Wshadow-uncaptured-local -MD -MT sql/CMakeFiles/sql_dd.dir/dd/info_schema/show_query_builder.cc.o -MF sql/CMakeFiles/sql_dd.dir/dd/info_schema/show_query_builder.cc.o.d --language=c++ -o sql/CMakeFiles/sql_dd.dir/dd/info_schema/show_query_builder.cc.o -c /Users/laurynas/vilniusdb/mysql-9.5.0/sql/dd/info_schema/show_query_builder.cc In file included from /Users/laurynas/vilniusdb/mysql-9.5.0/sql/dd/info_schema/show_query_builder.cc:37: In file included from /Users/laurynas/vilniusdb/mysql-9.5.0/sql/parse_tree_nodes.h:50: In file included from /Users/laurynas/vilniusdb/mysql-9.5.0/sql/opt_explain.h:61: /Users/laurynas/vilniusdb/mysql-9.5.0/sql/opt_explain_format.h:646:12: error: null passed to a callee that requires a non-null argument [-Werror,-Wnonnull] 646 | return nullptr; | ^~~~~~~ How to repeat: See above