Bug #95076 MySQL build fails with latest icu
Submitted: 22 Apr 2019 17:42 Modified: 23 May 2019 8:32
Reporter: Tomasz Kłoczko Email Updates:
Status: No Feedback Impact on me:
None 
Category:MySQL Server: Compiling Severity:S2 (Serious)
Version:8.0.15 OS:Fedora
Assigned to: CPU Architecture:Any

[22 Apr 2019 17:42] Tomasz Kłoczko
Description:
$ rpm -q libicu-devel
libicu-devel-63.1-2.fc30.x86_64

[  0%] Building CXX object extra/icu/source/common/CMakeFiles/icuuc.dir/appendable.cpp.o
cd /home/tkloczko/rpmbuild/BUILD/mysql-8.0.15/x86_64-redhat-linux-gnu/extra/icu/source/common && /home/tkloczko/rpmbuild/BUILD/mysql-8.0.15/scripts/invoke-with-relative-paths.pl /usr/bin/g++  -DHAVE_CONFIG_H -DHAVE_LIBEVENT2 -DHAVE_OPENSSL -DRAPIDJSON_NO_SIZETYPEDEFINE -DUNISTR_FROM_CHAR_EXPLICIT=explicit -DUNISTR_FROM_STRING_EXPLICIT=explicit -DU_COMMON_IMPLEMENTATION -D_FILE_OFFSET_BITS=64 -D_GNU_SOURCE -D_USE_MATH_DEFINES -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -I/home/tkloczko/rpmbuild/BUILD/mysql-8.0.15/extra/icu/source/common  -fPIC -std=c++11 -fno-omit-frame-pointer -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection   -fdebug-prefix-map=/home/tkloczko/rpmbuild/BUILD/mysql-8.0.15/=./ -fdebug-prefix-map=/home/tkloczko/rpmbuild/BUILD/mysql-8.0.15/x86_64-redhat-linux-gnu=./obj -DDBUG_OFF -ffunction-sections -fdata-sections -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -flto -fabi-version=2 -fno-omit-frame-pointer -fno-strict-aliasing -std=gnu++03 -DDBUG_OFF   -Wno-undef -Wno-deprecated-declarations -Wno-error -Wno-unused-parameter -Wno-missing-field-initializers -Wno-sign-compare -Wno-type-limits -Wno-stringop-overflow -Wno-unused-but-set-variable -Wno-misleading-indentation -Wno-maybe-uninitialized -o CMakeFiles/icuuc.dir/appendable.cpp.o -c /home/tkloczko/rpmbuild/BUILD/mysql-8.0.15/extra/icu/source/common/appendable.cpp
In file included from ../../../../../extra/icu/source/common/unicode/utypes.h:38,
                 from ../../../../../extra/icu/source/common/appendable.cpp:17:
../../../../../extra/icu/source/common/unicode/umachine.h:343:13: error: 'char16_t' does not name a type
  343 |     typedef char16_t UChar;
      |             ^~~~~~~~
In file included from ../../../../../extra/icu/source/common/unicode/utypes.h:39,
                 from ../../../../../extra/icu/source/common/appendable.cpp:17:
../../../../../extra/icu/source/common/unicode/uversion.h:167:55: error: 'UChar' does not name a type; did you mean 'UChar32'?
  167 | u_versionFromUString(UVersionInfo versionArray, const UChar *versionString);
      |                                                       ^~~~~
      |                                                       UChar32
In file included from ../../../../../extra/icu/source/common/appendable.cpp:18:
../../../../../extra/icu/source/common/unicode/appendable.h:65:34: error: 'char16_t' has not been declared
   65 |     virtual UBool appendCodeUnit(char16_t c) = 0;
      |                                  ^~~~~~~~
../../../../../extra/icu/source/common/unicode/appendable.h:84:38: error: 'char16_t' does not name a type
   84 |     virtual UBool appendString(const char16_t *s, int32_t length);
      |                                      ^~~~~~~~
../../../../../extra/icu/source/common/unicode/appendable.h:141:13: error: 'char16_t' does not name a type
  141 |     virtual char16_t *getAppendBuffer(int32_t minCapacity,
      |             ^~~~~~~~
../../../../../extra/icu/source/common/unicode/appendable.h:174:34: error: 'char16_t' has not been declared
  174 |     virtual UBool appendCodeUnit(char16_t c);
      |                                  ^~~~~~~~
../../../../../extra/icu/source/common/unicode/appendable.h:191:38: error: 'char16_t' does not name a type
  191 |     virtual UBool appendString(const char16_t *s, int32_t length);
      |                                      ^~~~~~~~
../../../../../extra/icu/source/common/unicode/appendable.h:223:13: error: 'char16_t' does not name a type
  223 |     virtual char16_t *getAppendBuffer(int32_t minCapacity,
      |             ^~~~~~~~
../../../../../extra/icu/source/common/appendable.cpp: In member function 'virtual UBool icu_59::Appendable::appendCodePoint(UChar32)':
../../../../../extra/icu/source/common/appendable.cpp:28:32: error: 'UChar' was not declared in this scope; did you mean 'UChar32'?
   28 |         return appendCodeUnit((UChar)c);
      |                                ^~~~~
      |                                UChar32
In file included from ../../../../../extra/icu/source/common/appendable.cpp:19:
../../../../../extra/icu/source/common/unicode/utf16.h:122:34: error: 'UChar' was not declared in this scope; did you mean 'UChar32'?
  122 | #define U16_LEAD(supplementary) (UChar)(((supplementary)>>10)+0xd7c0)
      |                                  ^~~~~
../../../../../extra/icu/source/common/appendable.cpp:30:31: note: in expansion of macro 'U16_LEAD'
   30 |         return appendCodeUnit(U16_LEAD(c)) && appendCodeUnit(U16_TRAIL(c));
      |                               ^~~~~~~~
../../../../../extra/icu/source/common/appendable.cpp: At global scope:
../../../../../extra/icu/source/common/appendable.cpp:35:32: error: 'UChar' does not name a type; did you mean 'UChar32'?
   35 | Appendable::appendString(const UChar *s, int32_t length) {
      |                                ^~~~~
      |                                UChar32
../../../../../extra/icu/source/common/appendable.cpp: In member function 'virtual UBool icu_59::Appendable::appendString(const int*, int32_t)':
../../../../../extra/icu/source/common/appendable.cpp:37:9: error: 'UChar' was not declared in this scope; did you mean 'UChar32'?
   37 |         UChar c;
      |         ^~~~~
      |         UChar32
../../../../../extra/icu/source/common/appendable.cpp:38:16: error: 'c' was not declared in this scope
   38 |         while((c=*s++)!=0) {
      |                ^
../../../../../extra/icu/source/common/appendable.cpp:44:15: error: 'UChar' does not name a type; did you mean 'UChar32'?
   44 |         const UChar *limit=s+length;
      |               ^~~~~
      |               UChar32
../../../../../extra/icu/source/common/appendable.cpp:49:19: error: 'limit' was not declared in this scope
   49 |         } while(s<limit);
      |                   ^~~~~
../../../../../extra/icu/source/common/appendable.cpp: At global scope:
../../../../../extra/icu/source/common/appendable.cpp:59:1: error: 'UChar' does not name a type; did you mean 'UChar32'?
   59 | UChar *
      | ^~~~~
      | UChar32
make[2]: *** [extra/icu/source/common/CMakeFiles/icuuc.dir/build.make:66: extra/icu/source/common/CMakeFiles/icuuc.dir/appendable.cpp.o] Error 1
make[2]: Leaving directory '/home/tkloczko/rpmbuild/BUILD/mysql-8.0.15/x86_64-redhat-linux-gnu'
make[1]: *** [CMakeFiles/Makefile2:357: extra/icu/source/common/CMakeFiles/icuuc.dir/all] Error 2
make[1]: Leaving directory '/home/tkloczko/rpmbuild/BUILD/mysql-8.0.15/x86_64-redhat-linux-gnu'
make: *** [Makefile:166: all] Error 2
make: Leaving directory '/home/tkloczko/rpmbuild/BUILD/mysql-8.0.15/x86_64-redhat-linux-gnu'
error: Bad exit status from /var/tmp/rpm-tmp.eZB5Sy (%build)

How to repeat:
Build with isnatlled latest libicu $ rpm -q libicu-devel
libicu-devel-63.1-2.fc30.x86_64

I've not been testing it yet with latest 64.2.
https://github.com/unicode-org/icu/releases
[22 Apr 2019 20:53] MySQL Verification Team
Please provide the complete cmake options you applied. Thanks.
[22 Apr 2019 21:51] Tomasz Kłoczko
+ /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 '-DCMAKE_C_FLAGS=-O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -flto ' '-DCMAKE_CXX_FLAGS=-O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -flto ' -DCMAKE_INSTALL_PREFIX=/usr '-DCMAKE_C_LINK_FLAGS=-O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -flto ' '-DCMAKE_CXX_LINK_FLAGS=-O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -flto ' '-DCMAKE_C_FLAGS_RELWITHDEBINFO=-O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -flto -fabi-version=2 -fno-omit-frame-pointer -fno-strict-aliasing ' '-DCMAKE_CXX_FLAGS_RELWITHDEBINFO=-O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -flto -fabi-version=2 -fno-omit-frame-pointer -fno-strict-aliasing -std=gnu++03 -DDBUG_OFF' -DDAEMON_NAME=mysqld -DDAEMON_NO_PREFIX=mysqld -DENABLED_LOCAL_INFILE=ON -DENABLE_DTRACE=OFF -DFEATURE_SET=community -DINSTALL_DOCDIR=share/doc/community-mysql -DINSTALL_DOCREADMEDIR=share/doc/community-mysql -DINSTALL_INCLUDEDIR=include/mysql -DINSTALL_INFODIR=share/info -DINSTALL_LAYOUT=RPM -DINSTALL_LIBDIR=lib64/mysql -DINSTALL_MANDIR=share/man -DINSTALL_MYSQLSHAREDIR=share/community-mysql -DINSTALL_MYSQLTESTDIR=share/mysql-test -DINSTALL_PLUGINDIR=lib64/mysql/plugin -DINSTALL_SBINDIR=libexec -DINSTALL_SCRIPTDIR=bin -DINSTALL_SUPPORTFILESDIR=share/community-mysql -DLOG_LOCATION=/var/log/mysqld.log -DMYSQL_DATADIR=/var/lib/mysql -DMYSQL_UNIX_ADDR=/var/lib/mysql/mysql.sock -DNICE_PROJECT_NAME=MySQL -DPID_FILE_DIR=/run/mysqld -DSYSCONF2DIR=/etc/my.cnf.d -DSYSCONFDIR=/etc -DSYSTEMD_PID_DIR=/run/mysqld -DSYSTEMD_SERVICE_NAME=mysqld -DTMPDIR=/var/tmp -DWITH_BOOST=../boost/boost_1_68_0 -DWITH_DEBUG=0 -DWITH_EDITLINE=system -DWITH_EMBEDDED_SERVER=ON -DWITH_EMBEDDED_SHARED_LIBRARY=ON -DWITH_INNODB_MEMCACHED=ON -DWITH_LIBEVENT=system -DWITH_LZ4=system -DWITH_MECAB=system '-DWITH_MYSQLD_LDFLAGS=-Wl,-z,relro -Wl,--as-needed  -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -flto -fuse-linker-plugin' -DWITH_SSL=system -DWITH_SYSTEMD=1 -DWITH_ZLIB=system -DWITH_NUMA=ON
[23 Apr 2019 8:32] Terje Røsten
Hi!

Please remove:

-std=gnu++03

MySQL 8 requires C++11 (and future release might go to C++14),
better to let MySQL 8 decide these options.
[24 May 2019 1:00] Bugs System
No feedback was provided for this bug for over a month, so it is
being suspended automatically. If you are able to provide the
information that was originally requested, please do so and change
the status of the bug back to "Open".