Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!

Bug 786402

Summary: dev-db/mysql fails to build against gcc-11
Product: Gentoo Linux Reporter: Thomas Deutschmann <whissi>
Component: Current packagesAssignee: Gentoo Linux MySQL bugs team <mysql-bugs>
Status: RESOLVED FIXED    
Severity: normal CC: spreetec
Priority: Normal    
Version: unspecified   
Hardware: All   
OS: Linux   
See Also: https://bugs.gentoo.org/show_bug.cgi?id=789243
Whiteboard:
Package list:
Runtime testing required: ---
Bug Depends on:    
Bug Blocks: 732706    

Description Thomas Deutschmann gentoo-dev Security 2021-04-28 10:53:19 UTC
> [ 62%] Building CXX object storage/innobase/CMakeFiles/innobase.dir/api/api0api.cc.o
> cd /var/tmp/portage/dev-db/mysql-8.0.24/work/mysql-8.0.24_build/storage/innobase && /usr/lib/ccache/bin/x86_64-pc-linux-gnu-g++ -DCOMPILER_HINTS -DHAVE_CONFIG_H -DHAVE_FALLOC_FL_ZERO_RANGE=1 -DHAVE_FALLOC_PUNCH_HOLE_AND_KEEP_SIZE=1 -DHAVE_IB_GCC_ATOMIC_THREAD_FENCE=1 -DHAVE_IB_GCC_SYNC_SYNCHRONISE=1 -DHAVE_IB_LINUX_FUTEX=1 -DHAVE_LZ4=1 -DHAVE_NANOSLEEP=1 -DHAVE_SCHED_GETCPU=1 -DHAVE_TLSv13 -DLINUX_NATIVE_AIO=1 -DLOG_SUBSYSTEM_TAG=\"InnoDB\" -DLZ4_DISABLE_DEPRECATE_WARNINGS -DMUTEX_EVENT -DMYSQL_SERVER -DPFS_DIRECT_CALL -DRAPIDJSON_NO_SIZETYPEDEFINE -DRAPIDJSON_SCHEMA_USE_INTERNALREGEX=0 -DRAPIDJSON_SCHEMA_USE_STDREGEX=1 -DUNIV_LINUX -D_FILE_OFFSET_BITS=64 -D_GNU_SOURCE -D_USE_MATH_DEFINES -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -I/var/tmp/portage/dev-db/mysql-8.0.24/work/mysql-8.0.24_build -I/var/tmp/portage/dev-db/mysql-8.0.24/work/mysql-8.0.24_build/include -I/var/tmp/portage/dev-db/mysql-8.0.24/work/mysql -I/var/tmp/portage/dev-db/mysql-8.0.24/work/mysql/include -I/var/tmp/portage/dev-db/mysql-8.0.24/work/mysql/storage/innobase -I/var/tmp/portage/dev-db/mysql-8.0.24/work/mysql/storage/innobase/include -I/var/tmp/portage/dev-db/mysql-8.0.24/work/mysql/storage/innobase/handler -I/var/tmp/portage/dev-db/mysql-8.0.24/work/mysql/sql -I/var/tmp/portage/dev-db/mysql-8.0.24/work/mysql/sql/auth -isystem /var/tmp/portage/dev-db/mysql-8.0.24/work/mysql/extra/rapidjson/include -isystem /var/tmp/portage/dev-db/mysql-8.0.24/work/mysql/extra/libedit/libedit-20191231-3.1/src/editline  -O2 -pipe -march=znver2 -mno-clzero -mno-mwaitx -mno-wbnoinvd -frecord-gcc-switches -felide-constructors -fno-strict-aliasing -Wall -Wextra -Wformat-security -Wvla -Wundef -Wmissing-format-attribute -Woverloaded-virtual -Wcast-qual -Wimplicit-fallthrough=2 -Wstringop-truncation -Wsuggest-override -Wmissing-include-dirs -Wlogical-op -Wno-unused-parameter -Wno-cast-qual -DNDEBUG -fPIC -MD -MT storage/innobase/CMakeFiles/innobase.dir/api/api0api.cc.o -MF CMakeFiles/innobase.dir/api/api0api.cc.o.d -o CMakeFiles/innobase.dir/api/api0api.cc.o -c /var/tmp/portage/dev-db/mysql-8.0.24/work/mysql/storage/innobase/api/api0api.cc
> In file included from /var/tmp/portage/dev-db/mysql-8.0.24/work/mysql/storage/innobase/os/file.h:47,
>                  from /var/tmp/portage/dev-db/mysql-8.0.24/work/mysql/storage/innobase/include/os0file.h:47,
>                  from /var/tmp/portage/dev-db/mysql-8.0.24/work/mysql/storage/innobase/include/api0misc.h:40,
>                  from /var/tmp/portage/dev-db/mysql-8.0.24/work/mysql/storage/innobase/api/api0api.cc:41:
> /var/tmp/portage/dev-db/mysql-8.0.24/work/mysql/storage/innobase/include/univ.i:387:14: error: unnamed scoped enum is not allowed
>   387 | #define byte unsigned char
>       |              ^~~~~~~~
> /var/tmp/portage/dev-db/mysql-8.0.24/work/mysql/storage/innobase/include/univ.i:387:14: error: expected identifier before ‘unsigned’
> In file included from /var/tmp/portage/dev-db/mysql-8.0.24/work/mysql/include/mysql/components/component_implementation.h:28,
>                  from /var/tmp/portage/dev-db/mysql-8.0.24/work/mysql/include/mysql/components/services/log_builtins.h:34,
>                  from /var/tmp/portage/dev-db/mysql-8.0.24/work/mysql/storage/innobase/include/ut0ut.h:71,
>                  from /var/tmp/portage/dev-db/mysql-8.0.24/work/mysql/storage/innobase/include/ut0cpu_cache.h:33,
>                  from /var/tmp/portage/dev-db/mysql-8.0.24/work/mysql/storage/innobase/include/ut0counter.h:42,
>                  from /var/tmp/portage/dev-db/mysql-8.0.24/work/mysql/storage/innobase/include/sync0sync.h:45,
>                  from /var/tmp/portage/dev-db/mysql-8.0.24/work/mysql/storage/innobase/include/sync0types.h:39,
>                  from /var/tmp/portage/dev-db/mysql-8.0.24/work/mysql/storage/innobase/include/univ.i:588,
>                  from /var/tmp/portage/dev-db/mysql-8.0.24/work/mysql/storage/innobase/os/file.h:47,
>                  from /var/tmp/portage/dev-db/mysql-8.0.24/work/mysql/storage/innobase/include/os0file.h:47,
>                  from /var/tmp/portage/dev-db/mysql-8.0.24/work/mysql/storage/innobase/include/api0misc.h:40,
>                  from /var/tmp/portage/dev-db/mysql-8.0.24/work/mysql/storage/innobase/api/api0api.cc:41:
> /usr/lib/gcc/x86_64-pc-linux-gnu/11.1.0/include/g++-v11/cstddef:69:19: error: expected unqualified-id before ‘:’ token
>    69 |   enum class byte : unsigned char {};
>       |                   ^
> /usr/lib/gcc/x86_64-pc-linux-gnu/11.1.0/include/g++-v11/cstddef:134:3: error: ‘constexpr unsigned char std::operator|(unsigned char, unsigned char)’ must have an argument of class or enumerated type
>   134 |   operator|(byte __l, byte __r) noexcept
>       |   ^~~~~~~~
> /usr/lib/gcc/x86_64-pc-linux-gnu/11.1.0/include/g++-v11/cstddef:138:3: error: ‘constexpr unsigned char std::operator&(unsigned char, unsigned char)’ must have an argument of class or enumerated type
>   138 |   operator&(byte __l, byte __r) noexcept
>       |   ^~~~~~~~
> /usr/lib/gcc/x86_64-pc-linux-gnu/11.1.0/include/g++-v11/cstddef:142:3: error: ‘constexpr unsigned char std::operator^(unsigned char, unsigned char)’ must have an argument of class or enumerated type
>   142 |   operator^(byte __l, byte __r) noexcept
>       |   ^~~~~~~~
> /usr/lib/gcc/x86_64-pc-linux-gnu/11.1.0/include/g++-v11/cstddef:146:3: error: ‘constexpr unsigned char std::operator~(unsigned char)’ must have an argument of class or enumerated type
>   146 |   operator~(byte __b) noexcept
>       |   ^~~~~~~~
> /usr/lib/gcc/x86_64-pc-linux-gnu/11.1.0/include/g++-v11/cstddef:160:3: error: ‘constexpr unsigned char& std::operator|=(unsigned char&, unsigned char)’ must have an argument of class or enumerated type
>   160 |   operator|=(byte& __l, byte __r) noexcept
>       |   ^~~~~~~~
> /usr/lib/gcc/x86_64-pc-linux-gnu/11.1.0/include/g++-v11/cstddef:164:3: error: ‘constexpr unsigned char& std::operator&=(unsigned char&, unsigned char)’ must have an argument of class or enumerated type
>   164 |   operator&=(byte& __l, byte __r) noexcept
>       |   ^~~~~~~~
> /usr/lib/gcc/x86_64-pc-linux-gnu/11.1.0/include/g++-v11/cstddef:168:3: error: ‘constexpr unsigned char& std::operator^=(unsigned char&, unsigned char)’ must have an argument of class or enumerated type
>   168 |   operator^=(byte& __l, byte __r) noexcept
>       |   ^~~~~~~~
> make[2]: *** [storage/innobase/CMakeFiles/innobase.dir/build.make:76: storage/innobase/CMakeFiles/innobase.dir/api/api0api.cc.o] Error 1
> make[2]: Leaving directory '/var/tmp/portage/dev-db/mysql-8.0.24/work/mysql-8.0.24_build'
> make[1]: *** [CMakeFiles/Makefile2:3111: storage/innobase/CMakeFiles/innobase.dir/all] Error 2
> make[1]: Leaving directory '/var/tmp/portage/dev-db/mysql-8.0.24/work/mysql-8.0.24_build'
> make: *** [Makefile:156: all] Error 2
>  * ERROR: dev-db/mysql-8.0.24::gentoo failed (compile phase):
>  *   emake failed
Comment 1 Thomas Deutschmann gentoo-dev Security 2021-04-28 11:35:43 UTC
> [ 94%] Building CXX object plugin/x/tests/driver/CMakeFiles/mysqlxtest.dir/processor/command_multiline_processor.cc.o
> cd /var/tmp/portage/dev-db/mysql-8.0.24/work/mysql-8.0.24_build/plugin/x/tests/driver && /usr/lib/ccache/bin/x86_64-pc-linux-gnu-g++ -D NGS_DISABLE_LOGGING -DHAVE_CONFIG_H -DHAVE_TLSv13 -DLOG_COMPONENT_TAG=\"mysqlx\" -DLZ4_DISABLE_DEPRECATE_WARNINGS -DPROTOBUF_INLINE_NOT_IN_HEADERS=0 -DRAPIDJSON_NO_SIZETYPEDEFINE -DRAPIDJSON_SCHEMA_USE_INTERNALREGEX=0 -DRAPIDJSON_SCHEMA_USE_STDREGEX=1 -DUSE_MYSQLX_FULL_PROTO -D_FILE_OFFSET_BITS=64 -D_GNU_SOURCE -D_USE_MATH_DEFINES -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -I/var/tmp/portage/dev-db/mysql-8.0.24/work/mysql-8.0.24_build -I/var/tmp/portage/dev-db/mysql-8.0.24/work/mysql-8.0.24_build/include -I/var/tmp/portage/dev-db/mysql-8.0.24/work/mysql -I/var/tmp/portage/dev-db/mysql-8.0.24/work/mysql/include -I/var/tmp/portage/dev-db/mysql-8.0.24/work/mysql-8.0.24_build/plugin/x/generated -I/var/tmp/portage/dev-db/mysql-8.0.24/work/mysql/plugin/x -I/var/tmp/portage/dev-db/mysql-8.0.24/work/mysql-8.0.24_build/plugin/x/protocol/protobuf -I/var/tmp/portage/dev-db/mysql-8.0.24/work/mysql/plugin/x/client -I/var/tmp/portage/dev-db/mysql-8.0.24/work/mysql/plugin/x/tests/driver -isystem /var/tmp/portage/dev-db/mysql-8.0.24/work/mysql/extra/rapidjson/include -isystem /var/tmp/portage/dev-db/mysql-8.0.24/work/mysql/extra/libedit/libedit-20191231-3.1/src/editline  -O2 -pipe -march=znver2 -mno-clzero -mno-mwaitx -mno-wbnoinvd -frecord-gcc-switches -felide-constructors -fno-strict-aliasing -Wall -Wextra -Wformat-security -Wvla -Wundef -Wmissing-format-attribute -Woverloaded-virtual -Wcast-qual -Wimplicit-fallthrough=2 -Wstringop-truncation -Wsuggest-override -Wmissing-include-dirs -Wlogical-op -DNDEBUG -fPIE   -Wno-unused-parameter -Wno-undef -Wno-unused-but-set-parameter -Wno-extra-semi -Wno-suggest-override -Wno-unused-but-set-parameter -MD -MT plugin/x/tests/driver/CMakeFiles/mysqlxtest.dir/processor/command_multiline_processor.cc.o -MF CMakeFiles/mysqlxtest.dir/processor/command_multiline_processor.cc.o.d -o CMakeFiles/mysqlxtest.dir/processor/command_multiline_processor.cc.o -c /var/tmp/portage/dev-db/mysql-8.0.24/work/mysql/plugin/x/tests/driver/processor/command_multiline_processor.cc
> In file included from /var/tmp/portage/dev-db/mysql-8.0.24/work/mysql/storage/innobase/include/sync0types.h:42,
>                  from /var/tmp/portage/dev-db/mysql-8.0.24/work/mysql/storage/innobase/include/univ.i:588,
>                  from /var/tmp/portage/dev-db/mysql-8.0.24/work/mysql/storage/innobase/include/btr0types.h:36,
>                  from /var/tmp/portage/dev-db/mysql-8.0.24/work/mysql/storage/innobase/include/btr0btr.h:37,
>                  from /var/tmp/portage/dev-db/mysql-8.0.24/work/mysql/storage/innobase/btr/btr0btr.cc:34:
> /var/tmp/portage/dev-db/mysql-8.0.24/work/mysql/storage/innobase/include/ut0lock_free_hash.h: In destructor ‘ut_lock_free_cnt_t::~ut_lock_free_cnt_t()’:
> /var/tmp/portage/dev-db/mysql-8.0.24/work/mysql/storage/innobase/include/ut0new.h:1126:20: error: template argument 1 is invalid
>  1126 |   ut_allocator<byte>(PSI_NOT_INSTRUMENTED) \
>       |                    ^
> /var/tmp/portage/dev-db/mysql-8.0.24/work/mysql/storage/innobase/include/ut0lock_free_hash.h:149:9: note: in expansion of macro ‘ut_free’
>   149 |         ut_free(m_cnt[i]);
>       |         ^~~~~~~
> /var/tmp/portage/dev-db/mysql-8.0.24/work/mysql/storage/innobase/include/ut0new.h:1127:36: error: reference to ‘byte’ is ambiguous
>  1127 |       .deallocate(reinterpret_cast<byte *>(ptr))
>       |                                    ^~~~
> /var/tmp/portage/dev-db/mysql-8.0.24/work/mysql/storage/innobase/include/ut0lock_free_hash.h:149:9: note: in expansion of macro ‘ut_free’
>   149 |         ut_free(m_cnt[i]);
>       |         ^~~~~~~
> In file included from /var/tmp/portage/dev-db/mysql-8.0.24/work/mysql/storage/innobase/include/btr0types.h:36,
>                  from /var/tmp/portage/dev-db/mysql-8.0.24/work/mysql/storage/innobase/include/btr0btr.h:37,
>                  from /var/tmp/portage/dev-db/mysql-8.0.24/work/mysql/storage/innobase/btr/btr0btr.cc:34:
> /var/tmp/portage/dev-db/mysql-8.0.24/work/mysql/storage/innobase/include/univ.i:387:23: note: candidates are: ‘typedef unsigned char byte’
>   387 | typedef unsigned char byte;
>       |                       ^~~~
> In file included from /var/tmp/portage/dev-db/mysql-8.0.24/work/mysql/include/mysql/components/component_implementation.h:28,
>                  from /var/tmp/portage/dev-db/mysql-8.0.24/work/mysql/include/mysql/components/services/log_builtins.h:34,
>                  from /var/tmp/portage/dev-db/mysql-8.0.24/work/mysql/storage/innobase/include/ut0ut.h:71,
>                  from /var/tmp/portage/dev-db/mysql-8.0.24/work/mysql/storage/innobase/include/ut0cpu_cache.h:33,
>                  from /var/tmp/portage/dev-db/mysql-8.0.24/work/mysql/storage/innobase/include/ut0counter.h:42,
>                  from /var/tmp/portage/dev-db/mysql-8.0.24/work/mysql/storage/innobase/include/sync0sync.h:45,
>                  from /var/tmp/portage/dev-db/mysql-8.0.24/work/mysql/storage/innobase/include/sync0types.h:39,
>                  from /var/tmp/portage/dev-db/mysql-8.0.24/work/mysql/storage/innobase/include/univ.i:588,
>                  from /var/tmp/portage/dev-db/mysql-8.0.24/work/mysql/storage/innobase/include/btr0types.h:36,
>                  from /var/tmp/portage/dev-db/mysql-8.0.24/work/mysql/storage/innobase/include/btr0btr.h:37,
>                  from /var/tmp/portage/dev-db/mysql-8.0.24/work/mysql/storage/innobase/btr/btr0btr.cc:34:
> /usr/lib/gcc/x86_64-pc-linux-gnu/11.1.0/include/g++-v11/cstddef:69:14: note:                 ‘enum class std::byte’
>    69 |   enum class byte : unsigned char {};
>       |              ^~~~
> In file included from /var/tmp/portage/dev-db/mysql-8.0.24/work/mysql/storage/innobase/include/sync0types.h:42,
>                  from /var/tmp/portage/dev-db/mysql-8.0.24/work/mysql/storage/innobase/include/univ.i:588,
>                  from /var/tmp/portage/dev-db/mysql-8.0.24/work/mysql/storage/innobase/include/btr0types.h:36,
>                  from /var/tmp/portage/dev-db/mysql-8.0.24/work/mysql/storage/innobase/include/btr0btr.h:37,
>                  from /var/tmp/portage/dev-db/mysql-8.0.24/work/mysql/storage/innobase/btr/btr0btr.cc:34:
> /var/tmp/portage/dev-db/mysql-8.0.24/work/mysql/storage/innobase/include/ut0new.h:1127:41: error: expected ‘>’ before ‘*’ token
>  1127 |       .deallocate(reinterpret_cast<byte *>(ptr))
>       |                                         ^
> /var/tmp/portage/dev-db/mysql-8.0.24/work/mysql/storage/innobase/include/ut0lock_free_hash.h:149:9: note: in expansion of macro ‘ut_free’
>   149 |         ut_free(m_cnt[i]);
>       |         ^~~~~~~
> /var/tmp/portage/dev-db/mysql-8.0.24/work/mysql/storage/innobase/include/ut0new.h:1127:41: error: expected ‘(’ before ‘*’ token
>  1127 |       .deallocate(reinterpret_cast<byte *>(ptr))
>       |                                         ^
> /var/tmp/portage/dev-db/mysql-8.0.24/work/mysql/storage/innobase/include/ut0lock_free_hash.h:149:9: note: in expansion of macro ‘ut_free’
>   149 |         ut_free(m_cnt[i]);
>       |         ^~~~~~~
> /var/tmp/portage/dev-db/mysql-8.0.24/work/mysql/storage/innobase/include/ut0new.h:1127:42: error: expected primary-expression before ‘>’ token
>  1127 |       .deallocate(reinterpret_cast<byte *>(ptr))
>       |                                          ^
> /var/tmp/portage/dev-db/mysql-8.0.24/work/mysql/storage/innobase/include/ut0lock_free_hash.h:149:9: note: in expansion of macro ‘ut_free’
>   149 |         ut_free(m_cnt[i]);
>       |         ^~~~~~~
> make[2]: *** [storage/innobase/CMakeFiles/innobase.dir/build.make:160: storage/innobase/CMakeFiles/innobase.dir/btr/btr0btr.cc.o] Error 1
Comment 2 Larry the Git Cow gentoo-dev 2021-04-28 13:20:19 UTC
The bug has been closed via the following commit(s):

https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=31ec9d3e6820d715a2d2d3389504fd0185671aee

commit 31ec9d3e6820d715a2d2d3389504fd0185671aee
Author:     Thomas Deutschmann <whissi@gentoo.org>
AuthorDate: 2021-04-28 12:19:17 +0000
Commit:     Thomas Deutschmann <whissi@gentoo.org>
CommitDate: 2021-04-28 13:19:19 +0000

    dev-db/mysql: force C++14
    
    Closes: https://bugs.gentoo.org/786402
    Package-Manager: Portage-3.0.18, Repoman-3.0.3
    Signed-off-by: Thomas Deutschmann <whissi@gentoo.org>

 dev-db/mysql/mysql-5.7.34.ebuild | 3 +++
 dev-db/mysql/mysql-8.0.24.ebuild | 3 +++
 2 files changed, 6 insertions(+)
Comment 3 Thomas Deutschmann gentoo-dev Security 2021-05-10 23:17:40 UTC
*** Bug 789372 has been marked as a duplicate of this bug. ***