Bug #115735 | Build fails due to ODR violations | ||
---|---|---|---|
Submitted: | 1 Aug 2024 6:09 | Modified: | 2 Aug 2024 16:16 |
Reporter: | Eli Schwartz | Email Updates: | |
Status: | Unsupported | Impact on me: | |
Category: | MySQL Workbench | Severity: | S3 (Non-critical) |
Version: | OS: | Any | |
Assigned to: | CPU Architecture: | Any |
[1 Aug 2024 6:09]
Eli Schwartz
[1 Aug 2024 6:10]
Eli Schwartz
Full build log of the compilation failure.
Attachment: build.log (text/x-log), 2.01 MiB.
[2 Aug 2024 12:22]
MySQL Verification Team
Hello Eli Schwartz, Thank you for the report. Please note that Gentoo Linux is not yet supported by MySQL Workbench. https://www.mysql.com/support/supportedplatforms/workbench.html Regards, Ashwini Patil
[2 Aug 2024 16:16]
Eli Schwartz
Hi, please don't be petty and insulting. The ISO standard for C++ doesn't change because of the linux distro I used to detect the ISO C++ standards violation. But as you wish, let's reproduce this on Ubuntu 22.04. It was quite hard to do by the way, because your INSTALL file contains incorrect instructions to install packages that no longer exist on Ubuntu, and misses a bunch as well. But I figured out the right packages to install, then fixed a failure to find unixodbc because debian doesn't include all the files in the package ??? so that cmake even succeeds at configuring, and here we are: $ cat /etc/os-release PRETTY_NAME="Ubuntu 22.04.4 LTS" NAME="Ubuntu" VERSION_ID="22.04" VERSION="22.04.4 LTS (Jammy Jellyfish)" VERSION_CODENAME=jammy ID=ubuntu ID_LIKE=debian HOME_URL="https://www.ubuntu.com/" SUPPORT_URL="https://help.ubuntu.com/" BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/" PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy" UBUNTU_CODENAME=jammy $ g++ --version g++ (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0 $ CXXFLAGS="-flto=auto -Werror=odr -fdiagnostics-color=always" LDFLAGS="-flto=auto -Werror=odr" cmake .. -DUSE_UNIXODBC=ON -GNinja -DWITH_ANTLR_JAR=$PWD/../../antlr-4.7.2-complete.jar $ ninja library/sql.parser/source/libsqlparser.so.8.0.38 [41/41] Linking CXX shared library library/sql.parser/source/libsqlparser.so.8.0.38 FAILED: library/sql.parser/source/libsqlparser.so.8.0.38 : && /usr/bin/c++ -fPIC -flto=auto -Werror=odr -fdiagnostics-color=always -O3 -DNDEBUG -flto=auto -Werror=odr -shared -Wl,-soname,libsqlparser.so.8.0.38 -o library/sql.parser/source/libsqlparser.so.8.0.38 library/sql.parser/source/CMakeFiles/sqlparser.dir/charset-def.cpp.o library/sql.parser/source/CMakeFiles/sqlparser.dir/charset.cpp.o library/sql.parser/source/CMakeFiles/sqlparser.dir/ctype-big5.cpp.o library/sql.parser/source/CMakeFiles/sqlparser.dir/ctype-bin.cpp.o library/sql.parser/source/CMakeFiles/sqlparser.dir/ctype-cp932.cpp.o library/sql.parser/source/CMakeFiles/sqlparser.dir/ctype-czech.cpp.o library/sql.parser/source/CMakeFiles/sqlparser.dir/ctype-eucjpms.cpp.o library/sql.parser/source/CMakeFiles/sqlparser.dir/ctype-euc_kr.cpp.o library/sql.parser/source/CMakeFiles/sqlparser.dir/ctype-extra.cpp.o library/sql.parser/source/CMakeFiles/sqlparser.dir/ctype-gb2312.cpp.o library/sql.parser/source/CMakeFiles/sqlparser.dir/ctype-gbk.cpp.o library/sql.parser/source/CMakeFiles/sqlparser.dir/ctype-latin1.cpp.o library/sql.parser/source/CMakeFiles/sqlparser.dir/ctype-mb.cpp.o library/sql.parser/source/CMakeFiles/sqlparser.dir/ctype-simple.cpp.o library/sql.parser/source/CMakeFiles/sqlparser.dir/ctype-sjis.cpp.o library/sql.parser/source/CMakeFiles/sqlparser.dir/ctype-tis620.cpp.o library/sql.parser/source/CMakeFiles/sqlparser.dir/ctype-uca.cpp.o library/sql.parser/source/CMakeFiles/sqlparser.dir/ctype-ucs2.cpp.o library/sql.parser/source/CMakeFiles/sqlparser.dir/ctype-ujis.cpp.o library/sql.parser/source/CMakeFiles/sqlparser.dir/ctype-utf8.cpp.o library/sql.parser/source/CMakeFiles/sqlparser.dir/ctype-win1250ch.cpp.o library/sql.parser/source/CMakeFiles/sqlparser.dir/ctype.cpp.o library/sql.parser/source/CMakeFiles/sqlparser.dir/int2str.cpp.o library/sql.parser/source/CMakeFiles/sqlparser.dir/myx_lex_helpers.cpp.o library/sql.parser/source/CMakeFiles/sqlparser.dir/myx_sql_tree_item.cpp.o library/sql.parser/source/CMakeFiles/sqlparser.dir/myx_statement_parser.cpp.o library/sql.parser/source/CMakeFiles/sqlparser.dir/myx_unicode_scanner.cpp.o library/sql.parser/source/CMakeFiles/sqlparser.dir/sql_parser_symbols.cpp.o library/sql.parser/source/CMakeFiles/sqlparser.dir/my_messnc.cpp.o library/sql.parser/source/CMakeFiles/sqlparser.dir/my_static.cpp.o library/sql.parser/source/CMakeFiles/sqlparser.dir/my_strtoll10.cpp.o library/sql.parser/source/CMakeFiles/sqlparser.dir/my_vsnprintf.cpp.o library/sql.parser/source/CMakeFiles/sqlparser.dir/my_lib.cpp.o library/sql.parser/source/CMakeFiles/sqlparser.dir/strmake.cpp.o library/sql.parser/source/CMakeFiles/sqlparser.dir/strnmov.cpp.o library/sql.parser/source/CMakeFiles/sqlparser.dir/strtod.cpp.o library/sql.parser/source/CMakeFiles/sqlparser.dir/strxmov.cpp.o library/sql.parser/source/CMakeFiles/sqlparser.dir/str_alloc.cpp.o library/sql.parser/source/CMakeFiles/sqlparser.dir/linux/myx_sql_parser.cpp.o library/sql.parser/source/CMakeFiles/sqlparser.dir/xml.cpp.o && : /mysql-workbench-community-8.0.38-src/library/sql.parser/source/ctype-czech.cpp:103:8: error: type 'struct wordvalue' violates the C++ One Definition Rule [-Werror=odr] 103 | struct wordvalue | ^ /mysql-workbench-community-8.0.38-src/library/sql.parser/source/ctype-win1250ch.cpp:406:8: note: a different type is defined in another translation unit 406 | struct wordvalue { | ^ /mysql-workbench-community-8.0.38-src/library/sql.parser/source/ctype-czech.cpp:105:24: note: the first difference of corresponding definitions is field 'word' 105 | const char * word; | ^ /mysql-workbench-community-8.0.38-src/library/sql.parser/source/ctype-win1250ch.cpp:407:23: note: a field of same name but different type is defined in another translation unit 407 | const uchar * word; | ^ /mysql-workbench-community-8.0.38-src/library/sql.parser/source/ctype-czech.cpp:103:8: note: type 'const char' should match type 'const uchar' 103 | struct wordvalue | ^ lto1: some warnings being treated as errors lto-wrapper: fatal error: /usr/bin/c++ returned 1 exit status compilation terminated. /usr/bin/ld: error: lto-wrapper failed collect2: error: ld returned 1 exit status ninja: build stopped: subcommand failed.