Percona XtraDB Cluster - HA scalable solution for MySQL

Galera build fails with gcc 4.8

Reported by Raghavendra D Prabhu on 2013-04-05
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Galera
Medium
Alex Yurchenko
Percona XtraDB Cluster
Undecided
Unassigned

Bug Description

With gcc 4.8, galera build fails.

scons: Reading SConscript files ...
Host: linux x86_64
Target: linux x86_64
Signature: version: 2.5, revision: 148
Checking for C library pthread... yes
Checking for C library rt... yes
Checking for C header file sys/epoll.h... yes
Checking for C header file byteswap.h... yes
Checking for C header file endian.h... yes
Checking for C++ header file boost/shared_ptr.hpp... yes
Checking for C++ header file tr1/unordered_map... yes
Checking for C++ header file boost/pool/pool_alloc.hpp... yes
Using boost pool alloc
Checking for C++ header file asio.hpp... yes
Checking for C++ header file asio/ssl.hpp... yes
Checking for C library ssl... yes
Checking for C library crypto... yes
Checking for C header file check.h... yes
Checking for C library check... yes
Checking for C++ library boost_program_options... yes
scons: done reading SConscript files.
scons: Building targets ...
g++ -o garb/garb_logger.o -c -Wno-long-long -Wno-deprecated -ansi -pipe -Weffc++ -Wold-style-cast -g -O3 -DNDEBUG -m64 -Wall -Wextra -Werror -Wno-unused-parameter -pedantic -D_XOPEN_SOURCE=600 -DHAVE_COMMON_H -DGALERA_USE_GU_NETWORK -DHAVE_BYTESWAP_H -DHAVE_ENDIAN_H -DHAVE_BOOST_SHARED_PTR_HPP -DHAVE_TR1_UNORDERED_MAP -DBOOST_DATE_TIME_POSIX_TIME_STD_CONFIG=1 -DGALERA_USE_BOOST_POOL_ALLOC=1 -DHAVE_ASIO_HPP -DHAVE_ASIO_SSL_HPP -Icommon -Iasio -Igalerautils/src -Igcomm/src -Igcomm/src/gcomm -Igcache/src -Igcs/src -Iwsdb/src -Igalera/src garb/garb_logger.cpp
g++ -o garb/garb_gcs.o -c -Wno-long-long -Wno-deprecated -ansi -pipe -Weffc++ -Wold-style-cast -g -O3 -DNDEBUG -m64 -Wall -Wextra -Werror -Wno-unused-parameter -pedantic -D_XOPEN_SOURCE=600 -DHAVE_COMMON_H -DGALERA_USE_GU_NETWORK -DHAVE_BYTESWAP_H -DHAVE_ENDIAN_H -DHAVE_BOOST_SHARED_PTR_HPP -DHAVE_TR1_UNORDERED_MAP -DBOOST_DATE_TIME_POSIX_TIME_STD_CONFIG=1 -DGALERA_USE_BOOST_POOL_ALLOC=1 -DHAVE_ASIO_HPP -DHAVE_ASIO_SSL_HPP -Icommon -Iasio -Igalerautils/src -Igcomm/src -Igcomm/src/gcomm -Igcache/src -Igcs/src -Iwsdb/src -Igalera/src garb/garb_gcs.cpp
g++ -o garb/garb_recv_loop.o -c -Wno-long-long -Wno-deprecated -ansi -pipe -Weffc++ -Wold-style-cast -g -O3 -DNDEBUG -m64 -Wall -Wextra -Werror -Wno-unused-parameter -pedantic -D_XOPEN_SOURCE=600 -DHAVE_COMMON_H -DGALERA_USE_GU_NETWORK -DHAVE_BYTESWAP_H -DHAVE_ENDIAN_H -DHAVE_BOOST_SHARED_PTR_HPP -DHAVE_TR1_UNORDERED_MAP -DBOOST_DATE_TIME_POSIX_TIME_STD_CONFIG=1 -DGALERA_USE_BOOST_POOL_ALLOC=1 -DHAVE_ASIO_HPP -DHAVE_ASIO_SSL_HPP -Icommon -Iasio -Igalerautils/src -Igcomm/src -Igcomm/src/gcomm -Igcache/src -Igcs/src -Iwsdb/src -Igalera/src garb/garb_recv_loop.cpp
g++ -o garb/garb_main.o -c -Wno-long-long -Wno-deprecated -ansi -pipe -Weffc++ -Wold-style-cast -g -O3 -DNDEBUG -m64 -Wall -Wextra -Werror -Wno-unused-parameter -pedantic -D_XOPEN_SOURCE=600 -DHAVE_COMMON_H -DGALERA_USE_GU_NETWORK -DHAVE_BYTESWAP_H -DHAVE_ENDIAN_H -DHAVE_BOOST_SHARED_PTR_HPP -DHAVE_TR1_UNORDERED_MAP -DBOOST_DATE_TIME_POSIX_TIME_STD_CONFIG=1 -DGALERA_USE_BOOST_POOL_ALLOC=1 -DHAVE_ASIO_HPP -DHAVE_ASIO_SSL_HPP -Icommon -Iasio -Igalerautils/src -Igcomm/src -Igcomm/src/gcomm -Igcache/src -Igcs/src -Iwsdb/src -Igalera/src garb/garb_main.cpp
g++ -o garb/garb_config.os -c -Wno-long-long -Wno-deprecated -ansi -pipe -Weffc++ -Wold-style-cast -g -O3 -DNDEBUG -m64 -Wall -Wextra -Werror -Wno-unused-parameter -pedantic -fPIC -D_XOPEN_SOURCE=600 -DHAVE_COMMON_H -DGALERA_USE_GU_NETWORK -DHAVE_BYTESWAP_H -DHAVE_ENDIAN_H -DHAVE_BOOST_SHARED_PTR_HPP -DHAVE_TR1_UNORDERED_MAP -DBOOST_DATE_TIME_POSIX_TIME_STD_CONFIG=1 -DGALERA_USE_BOOST_POOL_ALLOC=1 -DHAVE_ASIO_HPP -DHAVE_ASIO_SSL_HPP -DGALERA_VER=\"2.5\" -DGALERA_REV=\"148\" -Icommon -Iasio -Igalerautils/src -Igcomm/src -Igcomm/src/gcomm -Igcache/src -Igcs/src -Iwsdb/src -Igalera/src garb/garb_config.cpp
gcc -o gcs/src/.garb/gcs_params.o -c -std=c99 -fno-strict-aliasing -pipe -g -O3 -DNDEBUG -m64 -Wall -Wextra -Werror -Wno-unused-parameter -pedantic -D_XOPEN_SOURCE=600 -DHAVE_COMMON_H -DGALERA_USE_GU_NETWORK -DHAVE_BYTESWAP_H -DHAVE_ENDIAN_H -DHAVE_BOOST_SHARED_PTR_HPP -DHAVE_TR1_UNORDERED_MAP -DBOOST_DATE_TIME_POSIX_TIME_STD_CONFIG=1 -DGALERA_USE_BOOST_POOL_ALLOC=1 -DHAVE_ASIO_HPP -DHAVE_ASIO_SSL_HPP -DGCS_USE_GCOMM -DGCS_FOR_GARB -Icommon -Iasio -Igalerautils/src -Igcomm/src -Igcomm/src/gcomm -Igcache/src -Igcs/src -Iwsdb/src -Igalera/src gcs/src/gcs_params.c
gcc -o gcs/src/.garb/gcs_conf.o -c -std=c99 -fno-strict-aliasing -pipe -g -O3 -DNDEBUG -m64 -Wall -Wextra -Werror -Wno-unused-parameter -pedantic -D_XOPEN_SOURCE=600 -DHAVE_COMMON_H -DGALERA_USE_GU_NETWORK -DHAVE_BYTESWAP_H -DHAVE_ENDIAN_H -DHAVE_BOOST_SHARED_PTR_HPP -DHAVE_TR1_UNORDERED_MAP -DBOOST_DATE_TIME_POSIX_TIME_STD_CONFIG=1 -DGALERA_USE_BOOST_POOL_ALLOC=1 -DHAVE_ASIO_HPP -DHAVE_ASIO_SSL_HPP -DGCS_USE_GCOMM -DGCS_FOR_GARB -Icommon -Iasio -Igalerautils/src -Igcomm/src -Igcomm/src/gcomm -Igcache/src -Igcs/src -Iwsdb/src -Igalera/src gcs/src/gcs_conf.c
gcc -o gcs/src/.garb/gcs_fifo_lite.o -c -std=c99 -fno-strict-aliasing -pipe -g -O3 -DNDEBUG -m64 -Wall -Wextra -Werror -Wno-unused-parameter -pedantic -D_XOPEN_SOURCE=600 -DHAVE_COMMON_H -DGALERA_USE_GU_NETWORK -DHAVE_BYTESWAP_H -DHAVE_ENDIAN_H -DHAVE_BOOST_SHARED_PTR_HPP -DHAVE_TR1_UNORDERED_MAP -DBOOST_DATE_TIME_POSIX_TIME_STD_CONFIG=1 -DGALERA_USE_BOOST_POOL_ALLOC=1 -DHAVE_ASIO_HPP -DHAVE_ASIO_SSL_HPP -DGCS_USE_GCOMM -DGCS_FOR_GARB -Icommon -Iasio -Igalerautils/src -Igcomm/src -Igcomm/src/gcomm -Igcache/src -Igcs/src -Iwsdb/src -Igalera/src gcs/src/gcs_fifo_lite.c
gcc -o gcs/src/.garb/gcs_msg_type.o -c -std=c99 -fno-strict-aliasing -pipe -g -O3 -DNDEBUG -m64 -Wall -Wextra -Werror -Wno-unused-parameter -pedantic -D_XOPEN_SOURCE=600 -DHAVE_COMMON_H -DGALERA_USE_GU_NETWORK -DHAVE_BYTESWAP_H -DHAVE_ENDIAN_H -DHAVE_BOOST_SHARED_PTR_HPP -DHAVE_TR1_UNORDERED_MAP -DBOOST_DATE_TIME_POSIX_TIME_STD_CONFIG=1 -DGALERA_USE_BOOST_POOL_ALLOC=1 -DHAVE_ASIO_HPP -DHAVE_ASIO_SSL_HPP -DGCS_USE_GCOMM -DGCS_FOR_GARB -Icommon -Iasio -Igalerautils/src -Igcomm/src -Igcomm/src/gcomm -Igcache/src -Igcs/src -Iwsdb/src -Igalera/src gcs/src/gcs_msg_type.c
gcc -o gcs/src/.garb/gcs_comp_msg.o -c -std=c99 -fno-strict-aliasing -pipe -g -O3 -DNDEBUG -m64 -Wall -Wextra -Werror -Wno-unused-parameter -pedantic -D_XOPEN_SOURCE=600 -DHAVE_COMMON_H -DGALERA_USE_GU_NETWORK -DHAVE_BYTESWAP_H -DHAVE_ENDIAN_H -DHAVE_BOOST_SHARED_PTR_HPP -DHAVE_TR1_UNORDERED_MAP -DBOOST_DATE_TIME_POSIX_TIME_STD_CONFIG=1 -DGALERA_USE_BOOST_POOL_ALLOC=1 -DHAVE_ASIO_HPP -DHAVE_ASIO_SSL_HPP -DGCS_USE_GCOMM -DGCS_FOR_GARB -Icommon -Iasio -Igalerautils/src -Igcomm/src -Igcomm/src/gcomm -Igcache/src -Igcs/src -Iwsdb/src -Igalera/src gcs/src/gcs_comp_msg.c
gcc -o gcs/src/.garb/gcs_sm.o -c -std=c99 -fno-strict-aliasing -pipe -g -O3 -DNDEBUG -m64 -Wall -Wextra -Werror -Wno-unused-parameter -pedantic -D_XOPEN_SOURCE=600 -DHAVE_COMMON_H -DGALERA_USE_GU_NETWORK -DHAVE_BYTESWAP_H -DHAVE_ENDIAN_H -DHAVE_BOOST_SHARED_PTR_HPP -DHAVE_TR1_UNORDERED_MAP -DBOOST_DATE_TIME_POSIX_TIME_STD_CONFIG=1 -DGALERA_USE_BOOST_POOL_ALLOC=1 -DHAVE_ASIO_HPP -DHAVE_ASIO_SSL_HPP -DGCS_USE_GCOMM -DGCS_FOR_GARB -Icommon -Iasio -Igalerautils/src -Igcomm/src -Igcomm/src/gcomm -Igcache/src -Igcs/src -Iwsdb/src -Igalera/src gcs/src/gcs_sm.c
In file included from galerautils/src/galerautils.hpp:21:0,
                 from garb/garb_logger.hpp:6,
                 from garb/garb_logger.cpp:3:
galerautils/src/gu_utils.hpp:81:61: error: declaration of 'T gu::from_string(const string&, std::ios_base& (*)(std::ios_base&)) [with T = std::basic_string<char>; std::string = std::basic_string<char>]' has a different exception specifier
                          std::ios_base& (*f)(std::ios_base&))
                                                             ^
galerautils/src/gu_utils.hpp:60:1: error: from previous declaration 'T gu::from_string(const string&, std::ios_base& (*)(std::ios_base&)) throw (gu::NotFound) [with T = std::basic_string<char>; std::string = std::basic_string<char>]'
 from_string(const std::string& s,
 ^
gcc -o gcs/src/.garb/gcs_backend.o -c -std=c99 -fno-strict-aliasing -pipe -g -O3 -DNDEBUG -m64 -Wall -Wextra -Werror -Wno-unused-parameter -pedantic -D_XOPEN_SOURCE=600 -DHAVE_COMMON_H -DGALERA_USE_GU_NETWORK -DHAVE_BYTESWAP_H -DHAVE_ENDIAN_H -DHAVE_BOOST_SHARED_PTR_HPP -DHAVE_TR1_UNORDERED_MAP -DBOOST_DATE_TIME_POSIX_TIME_STD_CONFIG=1 -DGALERA_USE_BOOST_POOL_ALLOC=1 -DHAVE_ASIO_HPP -DHAVE_ASIO_SSL_HPP -DGCS_USE_GCOMM -DGCS_FOR_GARB -Icommon -Iasio -Igalerautils/src -Igcomm/src -Igcomm/src/gcomm -Igcache/src -Igcs/src -Iwsdb/src -Igalera/src gcs/src/gcs_backend.c
In file included from galerautils/src/galerautils.hpp:21:0,
                 from garb/garb_gcs.hpp:7,
                 from garb/garb_gcs.cpp:3:
galerautils/src/gu_utils.hpp:81:61: error: declaration of 'T gu::from_string(const string&, std::ios_base& (*)(std::ios_base&)) [with T = std::basic_string<char>; std::string = std::basic_string<char>]' has a different exception specifier
                          std::ios_base& (*f)(std::ios_base&))
                                                             ^
galerautils/src/gu_utils.hpp:60:1: error: from previous declaration 'T gu::from_string(const string&, std::ios_base& (*)(std::ios_base&)) throw (gu::NotFound) [with T = std::basic_string<char>; std::string = std::basic_string<char>]'
 from_string(const std::string& s,
 ^
In file included from galerautils/src/galerautils.hpp:21:0,
                 from garb/garb_config.hpp:6,
                 from garb/garb_main.cpp:3:
galerautils/src/gu_utils.hpp:81:61: error: declaration of 'T gu::from_string(const string&, std::ios_base& (*)(std::ios_base&)) [with T = std::basic_string<char>; std::string = std::basic_string<char>]' has a different exception specifier
                          std::ios_base& (*f)(std::ios_base&))
                                                             ^
galerautils/src/gu_utils.hpp:60:1: error: from previous declaration 'T gu::from_string(const string&, std::ios_base& (*)(std::ios_base&)) throw (gu::NotFound) [with T = std::basic_string<char>; std::string = std::basic_string<char>]'
 from_string(const std::string& s,
 ^
gcc -o gcs/src/.garb/gcs_dummy.o -c -std=c99 -fno-strict-aliasing -pipe -g -O3 -DNDEBUG -m64 -Wall -Wextra -Werror -Wno-unused-parameter -pedantic -D_XOPEN_SOURCE=600 -DHAVE_COMMON_H -DGALERA_USE_GU_NETWORK -DHAVE_BYTESWAP_H -DHAVE_ENDIAN_H -DHAVE_BOOST_SHARED_PTR_HPP -DHAVE_TR1_UNORDERED_MAP -DBOOST_DATE_TIME_POSIX_TIME_STD_CONFIG=1 -DGALERA_USE_BOOST_POOL_ALLOC=1 -DHAVE_ASIO_HPP -DHAVE_ASIO_SSL_HPP -DGCS_USE_GCOMM -DGCS_FOR_GARB -Icommon -Iasio -Igalerautils/src -Igcomm/src -Igcomm/src/gcomm -Igcache/src -Igcs/src -Iwsdb/src -Igalera/src gcs/src/gcs_dummy.c
In file included from galerautils/src/galerautils.hpp:21:0,
                 from garb/garb_gcs.hpp:7,
                 from garb/garb_recv_loop.hpp:6,
                 from garb/garb_recv_loop.cpp:3:
galerautils/src/gu_utils.hpp:81:61: error: declaration of 'T gu::from_string(const string&, std::ios_base& (*)(std::ios_base&)) [with T = std::basic_string<char>; std::string = std::basic_string<char>]' has a different exception specifier
                          std::ios_base& (*f)(std::ios_base&))
                                                             ^
galerautils/src/gu_utils.hpp:60:1: error: from previous declaration 'T gu::from_string(const string&, std::ios_base& (*)(std::ios_base&)) throw (gu::NotFound) [with T = std::basic_string<char>; std::string = std::basic_string<char>]'
 from_string(const std::string& s,
 ^
gcc -o gcs/src/.garb/gcs_act_proto.o -c -std=c99 -fno-strict-aliasing -pipe -g -O3 -DNDEBUG -m64 -Wall -Wextra -Werror -Wno-unused-parameter -pedantic -D_XOPEN_SOURCE=600 -DHAVE_COMMON_H -DGALERA_USE_GU_NETWORK -DHAVE_BYTESWAP_H -DHAVE_ENDIAN_H -DHAVE_BOOST_SHARED_PTR_HPP -DHAVE_TR1_UNORDERED_MAP -DBOOST_DATE_TIME_POSIX_TIME_STD_CONFIG=1 -DGALERA_USE_BOOST_POOL_ALLOC=1 -DHAVE_ASIO_HPP -DHAVE_ASIO_SSL_HPP -DGCS_USE_GCOMM -DGCS_FOR_GARB -Icommon -Iasio -Igalerautils/src -Igcomm/src -Igcomm/src/gcomm -Igcache/src -Igcs/src -Iwsdb/src -Igalera/src gcs/src/gcs_act_proto.c
scons: *** [garb/garb_logger.o] Error 1
scons: *** [garb/garb_gcs.o] Error 1
scons: *** [garb/garb_recv_loop.o] Error 1
scons: *** [garb/garb_main.o] Error 1
In file included from galerautils/src/galerautils.hpp:21:0,
                 from garb/garb_config.hpp:6,
                 from garb/garb_config.cpp:3:
galerautils/src/gu_utils.hpp:81:61: error: declaration of 'T gu::from_string(const string&, std::ios_base& (*)(std::ios_base&)) [with T = std::basic_string<char>; std::string = std::basic_string<char>]' has a different exception specifier
                          std::ios_base& (*f)(std::ios_base&))
                                                             ^
galerautils/src/gu_utils.hpp:60:1: error: from previous declaration 'T gu::from_string(const string&, std::ios_base& (*)(std::ios_base&)) throw (gu::NotFound) [with T = std::basic_string<char>; std::string = std::basic_string<char>]'
 from_string(const std::string& s,
 ^
scons: *** [garb/garb_config.os] Error 1
scons: building terminated because of errors.
scons -j8 --config=force revno="148" garb/garbd libgalera_smm.so 13.98s user 1.38s system 129% cpu 11.863 total

Related branches

Adding -fno-exceptions to CFLAGS/CXXFLAGS doesn't help in this case.

Alex Yurchenko (ayurchen) wrote :

Guess we need to get rid of all exception specifiers except, maybe, throw() (as in "no throw"). It was a mistake to use them.

Changed in galera:
assignee: nobody → Alex Yurchenko (ayurchen)
importance: Undecided → Medium
milestone: none → 24.2.5
status: New → Confirmed
Alex Yurchenko (ayurchen) wrote :

Committed potential fix in lp:galera/2.x r149

Changed in galera:
status: Confirmed → Fix Committed

It builds fine now, thanks.

Changed in percona-xtradb-cluster:
status: New → Fix Released
milestone: none → 5.5.30-23.7.4
Changed in galera:
status: Fix Committed → Fix Released
To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Other bug subscribers