Subject: Re: bug#32058: mysql build fails on d88b29d6b78482cdb05ac714984f6a27195e3d37

From: Nils Gillmann <[email-masked]>
Date: Thu, 5 Jul 2018 13:47:00 +0000

Tobias Geerinckx-Rice transcribed 5.0K bytes:
> ng0,
> 
> Thanks!
> 
> Nils Gillmann wrote:
> > Since I do not have the time to work on this, but there seems to be no
> > open bug:
> > 
> > mysql started a couple of commits ago (since last core-updates merge?)
> > to fail
> > its build.
> 
> I noticed this yesterday, too. In the meantime, I've tried updating MySQL to
> 5.7.22 (one never knows) and poking at some random bits but that didn't
> help.
> 
> > [build output snipped]
> 
> There's actually an error message[0]. Did it not show up in your logs? I'd
> consider that a bug too.

Odd. I think this was by accident. Here it is:

[ 72%] Building CXX object rapid/plugin/x/CMakeFiles/mysqlx.dir/src/expr_generator.cc.o                                                                                                                                                        
cd /tmp/guix-build-mysql-5.7.21.drv-0/build/rapid/plugin/x && 
/gnu/store/zrhwhlqqk51qslbddk4cip2z2p3fpvxd-gcc-5.5.0/bin/c++  -DBOOST_ALL_NO_LIB -DBOOST_NO_AUTO_PTR 
-DHAVE_CONFIG_H -DHAVE_LIBEVENT1 -DHAVE_OPENSSL -DMYSQL_DYNAMIC_PLUGIN -DXP
LUGIN_LOG_PROTOBUF -D_FILE_OFFSET_BITS=64 -D_GNU_SOURCE -Dmysqlx_EXPORTS 
-I/tmp/guix-build-mysql-5.7.21.drv-0/build/include 
-I/tmp/guix-build-mysql-5.7.21.drv-0/mysql-5.7.21/extra/rapidjson/include 
-I/tmp/guix-build-mysql-5.7.21.drv-0/buil
d/libbinlogevents/include -I/tmp/guix-build-mysql-5.7.21.drv-0/mysql-5.7.21/libbinlogevents/export -isystem 
/tmp/guix-build-mysql-5.7.21.drv-0/mysql-5.7.21/extra/protobuf/protobuf-2.6.1/src 
-I/tmp/guix-build-mysql-5.7.21.drv-0/build/rapid/
plugin/x -I/tmp/guix-build-mysql-5.7.21.drv-0/mysql-5.7.21/rapid/plugin/x/protocol/errors 
-I/tmp/guix-build-mysql-5.7.21.drv-0/mysql-5.7.21/rapid/plugin/x/src 
-I/tmp/guix-build-mysql-5.7.21.drv-0/mysql-5.7.21/rapid/plugin/x -I/tmp/guix-bui
ld-mysql-5.7.21.drv-0/mysql-5.7.21/rapid/plugin/x/ngs/include 
-I/tmp/guix-build-mysql-5.7.21.drv-0/mysql-5.7.21/include 
-I/tmp/guix-build-mysql-5.7.21.drv-0/mysql-5.7.21/rapid/plugin/x/include/mysql 
-I/tmp/guix-build-mysql-5.7.21.drv-0/bui
ld/rapid/plugin/x/generated -I/gnu/store/4n6v2zp5mslq2784j878dmfzzj4vvmza-openssl-1.0.2o/include 
-I/gnu/store/fxiwj2wpp11sif613axdax7gmwzsg6kp-zlib-1.2.11/include -isystem 
/gnu/store/l6hqfwr1hcbn9rg56bwn2d41g2ai36h2-boost-1.66.0/include -i
system /tmp/guix-build-mysql-5.7.21.drv-0/mysql-5.7.21/libevent 
-I/tmp/guix-build-mysql-5.7.21.drv-0/mysql-5.7.21/sql 
-I/tmp/guix-build-mysql-5.7.21.drv-0/mysql-5.7.21/libbinlogevents/include 
-I/tmp/guix-build-mysql-5.7.21.drv-0/mysql-5.7.
21/sql/auth -I/tmp/guix-build-mysql-5.7.21.drv-0/mysql-5.7.21/regex 
-I/tmp/guix-build-mysql-5.7.21.drv-0/mysql-5.7.21/rapid/plugin/x/mysqlxtest_src/common  -fPIC -Wall -Wextra 
-Wformat-security -Wvla -Woverloaded-virtual -Wno-unused-parame
ter -O3 -g -fabi-version=2 -fno-omit-frame-pointer -fno-strict-aliasing -DDBUG_OFF -fPIC   
-I/tmp/guix-build-mysql-5.7.21.drv-0/build/rapid/plugin/x/generated/protobuf_lite -o 
CMakeFiles/mysqlx.dir/src/expr_generator.cc.o -c /tmp/guix-buil
d-mysql-5.7.21.drv-0/mysql-5.7.21/rapid/plugin/x/src/expr_generator.cc                                                                                                                                                                         
/tmp/guix-build-mysql-5.7.21.drv-0/mysql-5.7.21/sql/item_geofunc_internal.cc: In function ‘void 
handle_gis_exception(const char*)’:                                                                                                            
/tmp/guix-build-mysql-5.7.21.drv-0/mysql-5.7.21/sql/item_geofunc_internal.cc:37:81: error: expected 
unqualified-id before ‘&’ token                                                                                                            
   catch (const boost::geometry::detail::self_get_turn_points::self_ip_exception &)                                                                                                                                                            
                                                                                 ^                                                                                                                                                             
/tmp/guix-build-mysql-5.7.21.drv-0/mysql-5.7.21/sql/item_geofunc_internal.cc:37:81: error: expected ‘)’ before 
‘&’ token                                                                                                                       
/tmp/guix-build-mysql-5.7.21.drv-0/mysql-5.7.21/sql/item_geofunc_internal.cc:37:81: error: expected ‘{’ before 
‘&’ token                                                                                                                       
/tmp/guix-build-mysql-5.7.21.drv-0/mysql-5.7.21/sql/item_geofunc_internal.cc:37:82: error: expected 
primary-expression before ‘)’ token                                                                                                        
   catch (const boost::geometry::detail::self_get_turn_points::self_ip_exception &)                                                                                                                                                            
                                                                                  ^                                                                                                                                                            
/tmp/guix-build-mysql-5.7.21.drv-0/mysql-5.7.21/sql/item_geofunc_internal.cc:42:3: error: expected 
primary-expression before ‘catch’                                                                                                           
   catch (const boost::geometry::empty_input_exception &)                                                                                                                                                                                      
   ^                                                                                                                                                                                                                                           
/tmp/guix-build-mysql-5.7.21.drv-0/mysql-5.7.21/sql/item_geofunc_internal.cc:46:3: error: expected 
primary-expression before ‘catch’                                                                                                           
   ^                                                                                                                                                                                                                                           
/tmp/guix-build-mysql-5.7.21.drv-0/mysql-5.7.21/sql/item_geofunc_internal.cc:50:3: error: expected 
primary-expression before ‘catch’                                                                                                           
   catch (const boost::geometry::exception &)                                                                                                                                                                                                  
   ^                                                                                                                                                                                                                                           
/tmp/guix-build-mysql-5.7.21.drv-0/mysql-5.7.21/sql/item_geofunc_internal.cc:54:3: error: expected 
primary-expression before ‘catch’                                                                                                           
   catch (const std::bad_alloc &e)                                                                                                                                                                                                             
   ^                                                                                                                                                                                                                                           
/tmp/guix-build-mysql-5.7.21.drv-0/mysql-5.7.21/sql/item_geofunc_internal.cc:58:3: error: expected 
primary-expression before ‘catch’                                                                                                           
   catch (const std::domain_error &e)                                                                                                                                                                                                          
   ^                                                                                                                                                                                                                                           
/tmp/guix-build-mysql-5.7.21.drv-0/mysql-5.7.21/sql/item_geofunc_internal.cc:62:3: error: expected 
primary-expression before ‘catch’                                                                                                           
   catch (const std::length_error &e)                                                                                                                                                                                                          
   ^                                                                                                                                                                                                                                           
/tmp/guix-build-mysql-5.7.21.drv-0/mysql-5.7.21/sql/item_geofunc_internal.cc:66:3: error: expected 
primary-expression before ‘catch’                                                                                                           
   catch (const std::invalid_argument &e)                                                                                                                                                                                                      
   ^                                                                                                                                                                                                                                           
/tmp/guix-build-mysql-5.7.21.drv-0/mysql-5.7.21/sql/item_geofunc_internal.cc:70:3: error: expected 
primary-expression before ‘catch’                                                                                                           
   catch (const std::out_of_range &e)                                                                                                                                                                                                          
   ^                                                                                                                                                                                                                                           
/tmp/guix-build-mysql-5.7.21.drv-0/mysql-5.7.21/sql/item_geofunc_internal.cc:74:3: error: expected 
primary-expression before ‘catch’                                                                                                           
   catch (const std::overflow_error &e)                                                                                                                                                                                                        
   ^                                                                                                                                                                                                                                           
/tmp/guix-build-mysql-5.7.21.drv-0/mysql-5.7.21/sql/item_geofunc_internal.cc:78:3: error: expected 
primary-expression before ‘catch’                                                                                                           
   catch (const std::range_error &e)                                                                                                                                                                                                           
   ^                                                                                                                                                                                                                                           
/tmp/guix-build-mysql-5.7.21.drv-0/mysql-5.7.21/sql/item_geofunc_internal.cc:82:3: error: expected 
primary-expression before ‘catch’                                                                                                           
   catch (const std::underflow_error &e)                                                                                                                                                                                                       
   ^                                                                                                                                                                                                                                           
/tmp/guix-build-mysql-5.7.21.drv-0/mysql-5.7.21/sql/item_geofunc_internal.cc:86:3: error: expected 
primary-expression before ‘catch’                                                                                                           
   catch (const std::logic_error &e)                                                                                                                                                                                                           
   ^                                                                                                                                                                                                                                           
/tmp/guix-build-mysql-5.7.21.drv-0/mysql-5.7.21/sql/item_geofunc_internal.cc:90:3: error: expected 
primary-expression before ‘catch’                                                                                                           
   catch (const std::runtime_error &e)                                                                                                                                                                                                         
   ^                                                                                                                                                                                                                                           
/tmp/guix-build-mysql-5.7.21.drv-0/mysql-5.7.21/sql/item_geofunc_internal.cc:94:3: error: expected 
primary-expression before ‘catch’                                                                                                           
   catch (const std::exception &e)                                                                                                                                                                                                             
   ^                                                                                                                                                                                                                                           
/tmp/guix-build-mysql-5.7.21.drv-0/mysql-5.7.21/sql/item_geofunc_internal.cc:98:3: error: expected 
primary-expression before ‘catch’                                                                                                           
   catch (...)                                                                                                                                                                                                                                 
   ^                                                                                                                                                                                                                                           
make[2]: *** [libmysqld/CMakeFiles/sql_embedded.dir/build.make:1116: 
libmysqld/CMakeFiles/sql_embedded.dir/__/sql/item_geofunc_internal.cc.o] Error 1                                                                                          
make[2]: Leaving directory '/tmp/guix-build-mysql-5.7.21.drv-0/build'                                                                                                                                                                          
make[1]: *** [CMakeFiles/Makefile2:8268: libmysqld/CMakeFiles/sql_embedded.dir/all] Error 2                                                                                                                                                    
make[1]: *** Waiting for unfinished jobs....                                                                                                                                                                                                   

> If I had to guess I'd say that a GCC bump's to blame. Or maybe Boost, though
> that seems unlikely.
> 
> Unfortunately, I also don't have the time to debug this now or indeed the
> next month.
> 
> Kind regards,
> 
> T G-R
> 
> [0]:
> /tmp/guix-build-mysql-5.7.21.drv-0/mysql-5.7.21/sql/item_geofunc_internal.cc:
> In function ‘void handle_gis_exception(const char*)’:
> /tmp/guix-build-mysql-5.7.21.drv-0/mysql-5.7.21/sql/item_geofunc_internal.cc:37:81:
> error: expected unqualified-id before ‘&’ token
>   catch (const
> boost::geometry::detail::self_get_turn_points::self_ip_exception   &)
>                                                                                 ^
> /tmp/guix-build-mysql-5.7.21.drv-0/mysql-5.7.21/sql/item_geofunc_internal.cc:37:81:
> error: expected ‘)’ before ‘&’ token
> /tmp/guix-build-mysql-5.7.21.drv-0/mysql-5.7.21/sql/item_geofunc_internal.cc:37:81:
> error: expected ‘{’ before ‘&’ token
> /tmp/guix-build-mysql-5.7.21.drv-0/mysql-5.7.21/sql/item_geofunc_internal.cc:37:82:
> error: expected primary-expression before ‘)’ token
>   catch (const
> boost::geometry::detail::self_get_turn_points::self_ip_exception   &)
>                                                                                  ^
> /tmp/guix-build-mysql-5.7.21.drv-0/mysql-5.7.21/sql/item_geofunc_internal.cc:42:3:
> error: expected primary-expression before ‘catch’
>   catch (const boost::geometry::empty_input_exception &)
>   ^
> /tmp/guix-build-mysql-5.7.21.drv-0/mysql-5.7.21/sql/item_geofunc_internal.cc:46:3:
> error: expected primary-expression before ‘catch’
>   catch (const boost::geometry::inconsistent_turns_exception &)
>   ^
> /tmp/guix-build-mysql-5.7.21.drv-0/mysql-5.7.21/sql/item_geofunc_internal.cc:50:3:
> error: expected primary-expression before ‘catch’
>   catch (const boost::geometry::exception &)
>   ^
> /tmp/guix-build-mysql-5.7.21.drv-0/mysql-5.7.21/sql/item_geofunc_internal.cc:54:3:
> error: expected primary-expression before ‘catch’
>   catch (const std::bad_alloc &e)
>   ^
> /tmp/guix-build-mysql-5.7.21.drv-0/mysql-5.7.21/sql/item_geofunc_internal.cc:58:3:
> error: expected primary-expression before ‘catch’
>   catch (const std::domain_error &e)
>   ^
> /tmp/guix-build-mysql-5.7.21.drv-0/mysql-5.7.21/sql/item_geofunc_internal.cc:62:3:
> error: expected primary-expression before ‘catch’
>   catch (const std::length_error &e)
>   ^
> /tmp/guix-build-mysql-5.7.21.drv-0/mysql-5.7.21/sql/item_geofunc_internal.cc:66:3:
> error: expected primary-expression before ‘catch’
>   catch (const std::invalid_argument &e)
>   ^
> /tmp/guix-build-mysql-5.7.21.drv-0/mysql-5.7.21/sql/item_geofunc_internal.cc:70:3:
> error: expected primary-expression before ‘catch’
>   catch (const std::out_of_range &e)
>   ^
> /tmp/guix-build-mysql-5.7.21.drv-0/mysql-5.7.21/sql/item_geofunc_internal.cc:74:3:
> error: expected primary-expression before ‘catch’
>   catch (const std::overflow_error &e)
>   ^
> /tmp/guix-build-mysql-5.7.21.drv-0/mysql-5.7.21/sql/item_geofunc_internal.cc:78:3:
> error: expected primary-expression before ‘catch’
>   catch (const std::range_error &e)
>   ^
> /tmp/guix-build-mysql-5.7.21.drv-0/mysql-5.7.21/sql/item_geofunc_internal.cc:82:3:
> error: expected primary-expression before ‘catch’
>   catch (const std::underflow_error &e)
>   ^
> /tmp/guix-build-mysql-5.7.21.drv-0/mysql-5.7.21/sql/item_geofunc_internal.cc:86:3:
> error: expected primary-expression before ‘catch’
>   catch (const std::logic_error &e)
>   ^
> /tmp/guix-build-mysql-5.7.21.drv-0/mysql-5.7.21/sql/item_geofunc_internal.cc:90:3:
> error: expected primary-expression before ‘catch’
>   catch (const std::runtime_error &e)
>   ^
> /tmp/guix-build-mysql-5.7.21.drv-0/mysql-5.7.21/sql/item_geofunc_internal.cc:94:3:
> error: expected primary-expression before ‘catch’
>   catch (const std::exception &e)
>   ^
> /tmp/guix-build-mysql-5.7.21.drv-0/mysql-5.7.21/sql/item_geofunc_internal.cc:98:3:
> error: expected primary-expression before ‘catch’
>   catch (...)
>   ^
> make[2]: *** [sql/CMakeFiles/sql.dir/build.make:583:
> sql/CMakeFiles/sql.dir/item_geofunc_internal.cc.o] Error 1
> make[2]: *** Waiting for unfinished jobs....
> make[2]: Leaving directory '/tmp/guix-build-mysql-5.7.21.drv-0/build'