[MDEV-14886] Compilation errors in debug build Created: 2018-01-07  Updated: 2018-01-09  Resolved: 2018-01-08

Status: Closed
Project: MariaDB Server
Component/s: Compiling
Affects Version/s: 10.1.30
Fix Version/s: N/A

Type: Bug Priority: Minor
Reporter: Michal Schorm Assignee: Sergei Golubchik
Resolution: Not a Bug Votes: 0
Labels: None
Environment:

Fedora 26



 Description   

Hello,
I was trying to make a debug build of 10.1.30 on Fedora 26, but I was unsuccesfull.

Errors slightly differ by arch:

x86_64

[ 38%] Building CXX object storage/xtradb/CMakeFiles/xtradb.dir/eval/eval0eval.cc.o
cd /builddir/build/BUILD/mariadb-10.1.30/storage/xtradb && /usr/bin/c++  -DHAVE_CONFIG_H -DHAVE_IB_ATOMIC_PTHREAD_T_GCC=1 -DHAVE_IB_GCC_ATOMIC_BUILTINS=1 -DHAVE_IB_GCC_ATOMIC_BUILTINS_64=1 -DHAVE_IB_GCC_ATOMIC_BUILTINS_BYTE=1 -DHAVE_IB_GCC_ATOMIC_TEST_AND_SET=1 -DHAVE_IB_GCC_ATOMIC_THREAD_FENCE=1 -DHAVE_IB_GCC_SYNC_SYNCHRONISE=1 -DHAVE_POSIX_MEMALIGN -DHAVE_SYSTEMD -DLINUX_NATIVE_AIO=1 -DSIZEOF_PTHREAD_T=8 -D_FILE_OFFSET_BITS=64 -I/builddir/build/BUILD/mariadb-10.1.30/include -I/builddir/build/BUILD/mariadb-10.1.30/storage/xtradb/include -I/builddir/build/BUILD/mariadb-10.1.30/storage/xtradb/handler -I/builddir/build/BUILD/mariadb-10.1.30/sql  -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -m64 -mtune=generic -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -fPIC -pie -fPIC -Wl,-z,relro,-z,now -fstack-protector --param=ssp-buffer-size=4 -DWITH_INNODB_DISALLOW_WRITES -fPIC -fno-exceptions -fno-rtti   -DUNIV_LINUX -D_GNU_SOURCE=1  -fvisibility=hidden -o CMakeFiles/xtradb.dir/eval/eval0eval.cc.o -c /builddir/build/BUILD/mariadb-10.1.30/storage/xtradb/eval/eval0eval.cc
In file included from /builddir/build/BUILD/mariadb-10.1.30/include/my_global.h:1051:0,
                 from /builddir/build/BUILD/mariadb-10.1.30/sql/sql_plugin.h:28,
                 from /builddir/build/BUILD/mariadb-10.1.30/sql/item_func.cc:28:
/builddir/build/BUILD/mariadb-10.1.30/sql/item_func.cc: In member function 'virtual longlong Item_func_sleep::val_int()':
/builddir/build/BUILD/mariadb-10.1.30/sql/item_func.cc:4609:7: error: 'debug_sync_set_action' was not declared in this scope
       debug_sync_set_action
       ^
/builddir/build/BUILD/mariadb-10.1.30/include/my_dbug.h:88:50: note: in definition of macro 'DBUG_EXECUTE_IF'
         do {if (_db_keyword_(0, (keyword), 1)) { a1 }} while(0)
                                                  ^~
/builddir/build/BUILD/mariadb-10.1.30/sql/item_func.cc:4609:7: note: suggested alternative: 'debug_sync_service'
       debug_sync_set_action
       ^
/builddir/build/BUILD/mariadb-10.1.30/include/my_dbug.h:88:50: note: in definition of macro 'DBUG_EXECUTE_IF'
         do {if (_db_keyword_(0, (keyword), 1)) { a1 }} while(0)
                                                  ^~

armv7hl

 25%] Building C object storage/myisam/CMakeFiles/myisam.dir/mi_write.c.o
cd /builddir/build/BUILD/mariadb-10.1.30/storage/myisam && /usr/bin/cc -DHAVE_CONFIG_H -DHAVE_SYSTEMD -D_FILE_OFFSET_BITS=64 -I/builddir/build/BUILD/mariadb-10.1.30/include -I/builddir/build/BUILD/mariadb-10.1.30/sql  -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -march=armv7-a -mfpu=vfpv3-d16  -mfloat-abi=hard -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -fPIC -pie -fPIC -Wl,-z,relro,-z,now -fstack-protector --param=ssp-buffer-size=4 -DWITH_INNODB_DISALLOW_WRITES -fPIC    -fvisibility=hidden -o CMakeFiles/myisam.dir/mi_write.c.o   -c /builddir/build/BUILD/mariadb-10.1.30/storage/myisam/mi_write.c
In file included from /builddir/build/BUILD/mariadb-10.1.30/include/my_global.h:1051:0,
                 from /builddir/build/BUILD/mariadb-10.1.30/sql/sql_plugin.h:28,
                 from /builddir/build/BUILD/mariadb-10.1.30/sql/item_func.cc:28:
/builddir/build/BUILD/mariadb-10.1.30/sql/item_func.cc: In member function 'virtual longlong Item_func_sleep::val_int()':
/builddir/build/BUILD/mariadb-10.1.30/sql/item_func.cc:4609:7: error: 'debug_sync_set_action' was not declared in this scope
       debug_sync_set_action
       ^
/builddir/build/BUILD/mariadb-10.1.30/include/my_dbug.h:88:50: note: in definition of macro 'DBUG_EXECUTE_IF'
         do {if (_db_keyword_(0, (keyword), 1)) { a1 }} while(0)
                                                  ^~
/builddir/build/BUILD/mariadb-10.1.30/sql/item_func.cc:4609:7: note: suggested alternative: 'debug_sync_service'
       debug_sync_set_action
       ^
/builddir/build/BUILD/mariadb-10.1.30/include/my_dbug.h:88:50: note: in definition of macro 'DBUG_EXECUTE_IF'
         do {if (_db_keyword_(0, (keyword), 1)) { a1 }} while(0)
                                                  ^~

ppc64le

[ 31%] Building CXX object storage/xtradb/CMakeFiles/xtradb.dir/fts/fts0que.cc.o
cd /builddir/build/BUILD/mariadb-10.1.30/storage/xtradb && /usr/bin/c++  -DHAVE_CONFIG_H -DHAVE_IB_ATOMIC_PTHREAD_T_GCC=1 -DHAVE_IB_GCC_ATOMIC_BUILTINS=1 -DHAVE_IB_GCC_ATOMIC_BUILTINS_64=1 -DHAVE_IB_GCC_ATOMIC_BUILTINS_BYTE=1 -DHAVE_IB_GCC_ATOMIC_TEST_AND_SET=1 -DHAVE_IB_GCC_ATOMIC_THREAD_FENCE=1 -DHAVE_IB_GCC_SYNC_SYNCHRONISE=1 -DHAVE_POSIX_MEMALIGN -DHAVE_SYSTEMD -DLINUX_NATIVE_AIO=1 -DSIZEOF_PTHREAD_T=8 -D_FILE_OFFSET_BITS=64 -I/builddir/build/BUILD/mariadb-10.1.30/include -I/builddir/build/BUILD/mariadb-10.1.30/storage/xtradb/include -I/builddir/build/BUILD/mariadb-10.1.30/storage/xtradb/handler -I/builddir/build/BUILD/mariadb-10.1.30/sql  -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -m64 -mcpu=power8 -mtune=power8 -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -fPIC -pie -fPIC -Wl,-z,relro,-z,now -fstack-protector --param=ssp-buffer-size=4 -DWITH_INNODB_DISALLOW_WRITES -fPIC -fno-exceptions -fno-rtti   -DUNIV_LINUX -D_GNU_SOURCE=1  -fvisibility=hidden -o CMakeFiles/xtradb.dir/fts/fts0que.cc.o -c /builddir/build/BUILD/mariadb-10.1.30/storage/xtradb/fts/fts0que.cc
In file included from /builddir/build/BUILD/mariadb-10.1.30/include/my_global.h:1051:0,
                 from /builddir/build/BUILD/mariadb-10.1.30/storage/xtradb/include/univ.i:104,
                 from /builddir/build/BUILD/mariadb-10.1.30/storage/xtradb/include/dict0dict.h:31,
                 from /builddir/build/BUILD/mariadb-10.1.30/storage/xtradb/fts/fts0que.cc:28:
/builddir/build/BUILD/mariadb-10.1.30/storage/xtradb/fts/fts0que.cc: In function 'dberr_t fts_query_visitor(fts_ast_oper_t, fts_ast_node_t*, void*)':
/builddir/build/BUILD/mariadb-10.1.30/storage/xtradb/fts/fts0que.cc:2862:37: error: 'fts_ast_node_type_get' was not declared in this scope
  DBUG_PRINT("fts", ("nodetype: %s", fts_ast_node_type_get(node->type)));
                                     ^
/builddir/build/BUILD/mariadb-10.1.30/include/my_dbug.h:94:55: note: in definition of macro 'DBUG_PRINT'
         do {_db_pargs_(__LINE__,keyword); _db_doprnt_ arglist;} while(0)
                                                       ^~~~~~~
/builddir/build/BUILD/mariadb-10.1.30/storage/xtradb/fts/fts0que.cc:2862:37: note: suggested alternative: 'fts_ast_node_print'
  DBUG_PRINT("fts", ("nodetype: %s", fts_ast_node_type_get(node->type)));
                                     ^
/builddir/build/BUILD/mariadb-10.1.30/include/my_dbug.h:94:55: note: in definition of macro 'DBUG_PRINT'
         do {_db_pargs_(__LINE__,keyword); _db_doprnt_ arglist;} while(0)
                                                       ^~~~~~~

ppc64

[ 29%] Building CXX object storage/xtradb/CMakeFiles/xtradb.dir/fts/fts0que.cc.o
cd /builddir/build/BUILD/mariadb-10.1.30/storage/xtradb && /usr/bin/c++  -DHAVE_CONFIG_H -DHAVE_IB_ATOMIC_PTHREAD_T_GCC=1 -DHAVE_IB_GCC_ATOMIC_BUILTINS=1 -DHAVE_IB_GCC_ATOMIC_BUILTINS_64=1 -DHAVE_IB_GCC_ATOMIC_BUILTINS_BYTE=1 -DHAVE_IB_GCC_ATOMIC_TEST_AND_SET=1 -DHAVE_IB_GCC_ATOMIC_THREAD_FENCE=1 -DHAVE_IB_GCC_SYNC_SYNCHRONISE=1 -DHAVE_POSIX_MEMALIGN -DHAVE_SYSTEMD -DLINUX_NATIVE_AIO=1 -DSIZEOF_PTHREAD_T=8 -D_FILE_OFFSET_BITS=64 -I/builddir/build/BUILD/mariadb-10.1.30/include -I/builddir/build/BUILD/mariadb-10.1.30/storage/xtradb/include -I/builddir/build/BUILD/mariadb-10.1.30/storage/xtradb/handler -I/builddir/build/BUILD/mariadb-10.1.30/sql  -O3 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -m64 -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -fPIC -pie -fPIC -Wl,-z,relro,-z,now -fstack-protector --param=ssp-buffer-size=4 -DWITH_INNODB_DISALLOW_WRITES -fPIC -fno-exceptions -fno-rtti   -DUNIV_LINUX -D_GNU_SOURCE=1  -fvisibility=hidden -o CMakeFiles/xtradb.dir/fts/fts0que.cc.o -c /builddir/build/BUILD/mariadb-10.1.30/storage/xtradb/fts/fts0que.cc
In file included from /builddir/build/BUILD/mariadb-10.1.30/include/my_global.h:1051:0,
                 from /builddir/build/BUILD/mariadb-10.1.30/storage/xtradb/include/univ.i:104,
                 from /builddir/build/BUILD/mariadb-10.1.30/storage/xtradb/include/dict0dict.h:31,
                 from /builddir/build/BUILD/mariadb-10.1.30/storage/xtradb/fts/fts0que.cc:28:
/builddir/build/BUILD/mariadb-10.1.30/storage/xtradb/fts/fts0que.cc: In function 'dberr_t fts_query_visitor(fts_ast_oper_t, fts_ast_node_t*, void*)':
/builddir/build/BUILD/mariadb-10.1.30/storage/xtradb/fts/fts0que.cc:2862:37: error: 'fts_ast_node_type_get' was not declared in this scope
  DBUG_PRINT("fts", ("nodetype: %s", fts_ast_node_type_get(node->type)));
                                     ^
/builddir/build/BUILD/mariadb-10.1.30/include/my_dbug.h:94:55: note: in definition of macro 'DBUG_PRINT'
         do {_db_pargs_(__LINE__,keyword); _db_doprnt_ arglist;} while(0)
                                                       ^~~~~~~
/builddir/build/BUILD/mariadb-10.1.30/storage/xtradb/fts/fts0que.cc:2862:37: note: suggested alternative: 'fts_ast_node_print'
  DBUG_PRINT("fts", ("nodetype: %s", fts_ast_node_type_get(node->type)));
                                     ^
/builddir/build/BUILD/mariadb-10.1.30/include/my_dbug.h:94:55: note: in definition of macro 'DBUG_PRINT'
         do {_db_pargs_(__LINE__,keyword); _db_doprnt_ arglist;} while(0)
                                                       ^~~~~~~
/builddir/build/BUILD/mariadb-10.1.30/plugin/feedback/url_http.cc: In member function 'virtual int feedback::Url_http::send(const char*, size_t)':
/builddir/build/BUILD/mariadb-10.1.30/plugin/feedback/url_http.cc:333:12: warning: 'ssl_fd' may be used uninitialized in this function [-Wmaybe-uninitialized]
     my_free(ssl_fd);
     ~~~~~~~^~~~~~~~

aarch64

[ 46%] Building C object storage/maria/CMakeFiles/aria_embedded.dir/ma_sp_key.c.o
cd /builddir/build/BUILD/mariadb-10.1.30/storage/maria && /usr/bin/cc -DEMBEDDED_LIBRARY -DHAVE_CONFIG_H -DHAVE_SYSTEMD -D_FILE_OFFSET_BITS=64 -I/builddir/build/BUILD/mariadb-10.1.30/include -I/builddir/build/BUILD/mariadb-10.1.30/sql  -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -fPIC -pie -fPIC -Wl,-z,relro,-z,now -fstack-protector --param=ssp-buffer-size=4 -DWITH_INNODB_DISALLOW_WRITES -fPIC    -fvisibility=hidden -o CMakeFiles/aria_embedded.dir/ma_sp_key.c.o   -c /builddir/build/BUILD/mariadb-10.1.30/storage/maria/ma_sp_key.c
In file included from /builddir/build/BUILD/mariadb-10.1.30/include/my_global.h:1051:0,
                 from /builddir/build/BUILD/mariadb-10.1.30/storage/xtradb/include/univ.i:104,
                 from /builddir/build/BUILD/mariadb-10.1.30/storage/xtradb/include/dict0dict.h:31,
                 from /builddir/build/BUILD/mariadb-10.1.30/storage/xtradb/fts/fts0que.cc:28:
/builddir/build/BUILD/mariadb-10.1.30/storage/xtradb/fts/fts0que.cc: In function 'dberr_t fts_query_visitor(fts_ast_oper_t, fts_ast_node_t*, void*)':
/builddir/build/BUILD/mariadb-10.1.30/storage/xtradb/fts/fts0que.cc:2862:37: error: 'fts_ast_node_type_get' was not declared in this scope
  DBUG_PRINT("fts", ("nodetype: %s", fts_ast_node_type_get(node->type)));
                                     ^
/builddir/build/BUILD/mariadb-10.1.30/include/my_dbug.h:94:55: note: in definition of macro 'DBUG_PRINT'
         do {_db_pargs_(__LINE__,keyword); _db_doprnt_ arglist;} while(0)
                                                       ^~~~~~~
/builddir/build/BUILD/mariadb-10.1.30/storage/xtradb/fts/fts0que.cc:2862:37: note: suggested alternative: 'fts_ast_node_print'
  DBUG_PRINT("fts", ("nodetype: %s", fts_ast_node_type_get(node->type)));
                                     ^
/builddir/build/BUILD/mariadb-10.1.30/include/my_dbug.h:94:55: note: in definition of macro 'DBUG_PRINT'
         do {_db_pargs_(__LINE__,keyword); _db_doprnt_ arglist;} while(0)
                                                       ^~~~~~~

i686

[ 42%] Building CXX object storage/innobase/CMakeFiles/innobase.dir/fts/fts0que.cc.o
cd /builddir/build/BUILD/mariadb-10.1.30/storage/innobase && /usr/bin/c++  -DHAVE_CONFIG_H -DHAVE_IB_ATOMIC_PTHREAD_T_GCC=1 -DHAVE_IB_GCC_ATOMIC_BUILTINS=1 -DHAVE_IB_GCC_ATOMIC_BUILTINS_64=1 -DHAVE_IB_GCC_ATOMIC_BUILTINS_BYTE=1 -DHAVE_IB_GCC_ATOMIC_TEST_AND_SET=1 -DHAVE_IB_GCC_ATOMIC_THREAD_FENCE=1 -DHAVE_IB_GCC_SYNC_SYNCHRONISE=1 -DHAVE_POSIX_MEMALIGN -DHAVE_SYSTEMD -DLINUX_NATIVE_AIO=1 -DMYSQL_DYNAMIC_PLUGIN -DSIZEOF_PTHREAD_T=4 -D_FILE_OFFSET_BITS=64 -Dinnobase_EXPORTS -I/builddir/build/BUILD/mariadb-10.1.30/include -I/builddir/build/BUILD/mariadb-10.1.30/storage/innobase/include -I/builddir/build/BUILD/mariadb-10.1.30/storage/innobase/handler -I/builddir/build/BUILD/mariadb-10.1.30/sql  -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -m32 -march=i686 -fasynchronous-unwind-tables -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -fPIC -pie -fPIC -Wl,-z,relro,-z,now -fstack-protector --param=ssp-buffer-size=4 -DWITH_INNODB_DISALLOW_WRITES -fPIC -fno-exceptions -fno-rtti -fPIC   -DUNIV_LINUX -D_GNU_SOURCE=1 -o CMakeFiles/innobase.dir/fts/fts0que.cc.o -c /builddir/build/BUILD/mariadb-10.1.30/storage/innobase/fts/fts0que.cc
In file included from /builddir/build/BUILD/mariadb-10.1.30/include/my_global.h:1051:0,
                 from /builddir/build/BUILD/mariadb-10.1.30/storage/innobase/include/univ.i:96,
                 from /builddir/build/BUILD/mariadb-10.1.30/storage/innobase/include/dict0dict.h:31,
                 from /builddir/build/BUILD/mariadb-10.1.30/storage/innobase/fts/fts0que.cc:28:
/builddir/build/BUILD/mariadb-10.1.30/storage/innobase/fts/fts0que.cc: In function 'dberr_t fts_query_visitor(fts_ast_oper_t, fts_ast_node_t*, void*)':
/builddir/build/BUILD/mariadb-10.1.30/storage/innobase/fts/fts0que.cc:2842:37: error: 'fts_ast_node_type_get' was not declared in this scope
  DBUG_PRINT("fts", ("nodetype: %s", fts_ast_node_type_get(node->type)));
                                     ^
/builddir/build/BUILD/mariadb-10.1.30/include/my_dbug.h:94:55: note: in definition of macro 'DBUG_PRINT'
         do {_db_pargs_(__LINE__,keyword); _db_doprnt_ arglist;} while(0)
                                                       ^~~~~~~
/builddir/build/BUILD/mariadb-10.1.30/storage/innobase/fts/fts0que.cc:2842:37: note: suggested alternative: 'fts_ast_node_print'
  DBUG_PRINT("fts", ("nodetype: %s", fts_ast_node_type_get(node->type)));
                                     ^
/builddir/build/BUILD/mariadb-10.1.30/include/my_dbug.h:94:55: note: in definition of macro 'DBUG_PRINT'
         do {_db_pargs_(__LINE__,keyword); _db_doprnt_ arglist;} while(0)
                                                       ^~~~~~~



 Comments   
Comment by Sergei Golubchik [ 2018-01-08 ]

How do you do it? What's the cmake command line?

Apparently, you've enabled some debug features, but not all of them, and the build fails in places when debug features use each other.

Comment by Michal Schorm [ 2018-01-08 ]

I'm afraid - since it is an automated process - the cmake command is quite messy.

x86_64:

+ /usr/bin/cmake -DCMAKE_C_FLAGS_RELEASE:STRING=-DNDEBUG -DCMAKE_CXX_FLAGS_RELEASE:STRING=-DNDEBUG -DCMAKE_Fortran_FLAGS_RELEASE:STRING=-DNDEBUG -DCMAKE_VERBOSE_MAKEFILE:BOOL=ON -DCMAKE_INSTALL_PREFIX:PATH=/usr -DINCLUDE_INSTALL_DIR:PATH=/usr/include -DLIB_INSTALL_DIR:PATH=/usr/lib64 -DSYSCONF_INSTALL_DIR:PATH=/etc -DSHARE_INSTALL_PREFIX:PATH=/usr/share -DLIB_SUFFIX=64 -DBUILD_SHARED_LIBS:BOOL=ON . -DBUILD_CONFIG=mysql_release -DFEATURE_SET=community -DINSTALL_LAYOUT=RPM -DDAEMON_NAME=mariadb -DDAEMON_NO_PREFIX=mariadb -DLOG_LOCATION=/var/log/mariadb/mariadb.log -DPID_FILE_DIR=/run/mariadb -DNICE_PROJECT_NAME=MariaDB -DRPM=fedora26 -DCMAKE_INSTALL_PREFIX=/usr -DINSTALL_SYSCONFDIR=/etc -DINSTALL_SYSCONF2DIR=/etc/my.cnf.d -DINSTALL_DOCDIR=share/doc/mariadb -DINSTALL_DOCREADMEDIR=share/doc/mariadb -DINSTALL_INCLUDEDIR=include/mysql -DINSTALL_INFODIR=share/info -DINSTALL_LIBDIR=lib64/mysql -DINSTALL_MANDIR=share/man -DINSTALL_MYSQLSHAREDIR=share/mariadb -DINSTALL_MYSQLTESTDIR=share/mysql-test -DINSTALL_PLUGINDIR=lib64/mysql/plugin -DINSTALL_SBINDIR=libexec -DINSTALL_SCRIPTDIR=bin -DINSTALL_SQLBENCHDIR=share -DINSTALL_SUPPORTFILESDIR=share/mariadb -DMYSQL_DATADIR=/var/lib/mysql -DMYSQL_UNIX_ADDR=/var/lib/mysql/mysql.sock -DENABLED_LOCAL_INFILE=ON -DENABLE_DTRACE=OFF -DWITH_EMBEDDED_SERVER=ON -DWITH_SSL=system -DWITH_ZLIB=system -DWITH_PCRE=system -DWITH_JEMALLOC=system -DTMPDIR=/var/tmp '-DWITH_MYSQLD_LDFLAGS=-pie -Wl,-z,relro,-z,now'

You should see the build logs, available for each arch here:
https://koji.fedoraproject.org/koji/taskinfo?taskID=24066697
(the will be removed after some period of time, however I can save them to some permanent location if you want)

And the best I can do is to direct you to the source - SPECfile used for the build:
https://src.fedoraproject.org/rpms/mariadb/tree/f26
There is not yet the 10.1.30 version pushed, but nothing around the flags changed, so only cosider set macro "%bcond_without debug"
Code around lines 680 - 750 should be what you are looking for, combined with the build logs.

Fell free to ask for any other resources.

Comment by Sergei Golubchik [ 2018-01-08 ]

You have no space between build type and ldflags. See the log (https://kojipkgs.fedoraproject.org//work/tasks/6698/24066698/build.log)

... "-DCMAKE_BUILD_TYPE=Debug-DWITH_MYSQLD_LDFLAGS=-pie -Wl,-z,relro,-z,now" ...

When I fixed that, the build worked.

Some unrelated comments about your conditionals:

737
%{?with_bundled_pcre: -DWITH_PCRE=system}\
738
         -DWITH_JEMALLOC=system \
739
%{!?with_tokudb: -DWITHOUT_TOKUDB=ON}\
740
%{!?with_mroonga: -DWITHOUT_MROONGA=ON}\
741
%{!?with_oqgraph: -DWITHOUT_OQGRAPH=ON}\
742
         -DTMPDIR=/var/tmp \
743
%{?with_debug: -DCMAKE_BUILD_TYPE=Debug}\
744
%{?_hardened_build:-DWITH_MYSQLD_LDFLAGS="-pie -Wl,-z,relro,-z,now"}

  • Line 737 looks like it does the opposite of what it is supposed to.
  • Instead of WITHOUT_xxx (it is pre-10.1 syntax, still supported for compatibility) better use PLUGIN_xxx=NO (10.1 and later syntax).
  • Hardened build is enabled by default, but if you want to force it, you can do -DSECURITY_HARDENED=ON (it'll be -pie and -Wl,-z,relro,-z,now, but also -fstack-protector and -D_FORTIFY_SOURCE=2).
Comment by Michal Schorm [ 2018-01-09 ]

I Confirm.

Thanks for the second eyes.

  • PLUGIN_xxx=NO
    I'm already using it in later fedoras where we have 10.2. The Fedora 26 will most likely get to end of life in 3/4 a year and with it MariaDB 10.1 in Fedora.
  • Hardened build
    I'll probabbly use -DSECURITY_HARDENED=ON in 10.2
Generated at Thu Feb 08 08:17:02 UTC 2024 using Jira 8.20.16#820016-sha1:9d11dbea5f4be3d4cc21f03a88dd11d8c8687422.