Galera build fails with gcc 4.8

Bug #1164992 reported by Raghavendra D Prabhu
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Galera
Fix Released
Medium
Alex Yurchenko
Percona XtraDB Cluster moved to https://jira.percona.com/projects/PXC
Fix Released
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

Revision history for this message
Raghavendra D Prabhu (raghavendra-prabhu) wrote :

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

Revision history for this message
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
Revision history for this message
Alex Yurchenko (ayurchen) wrote :

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

Changed in galera:
status: Confirmed → Fix Committed
Revision history for this message
Raghavendra D Prabhu (raghavendra-prabhu) wrote :

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
Revision history for this message
Shahriyar Rzayev (rzayev-sehriyar) wrote :

Percona now uses JIRA for bug reports so this bug report is migrated to: https://jira.percona.com/browse/PXC-1325

To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.