Uploaded image for project: 'MariaDB Server'
  1. MariaDB Server
  2. MDEV-9527

build FAILs with GCC 5.1 with release supported "-std=c+11"

    Details

      Description

      Per https://gcc.gnu.org/projects/cxx1y.html

      C++14 support (CXXFLAGS ="... -std=c++14") in GCC 5 is still experimental

      Important: Because the final ISO C++14 standard was only recently published, GCC's support is experimental

      OTOH, per https://gcc.gnu.org/projects/cxx0x.html

      Important: Before GCC 5.1 support for C++11 was experimental. Some features were implemented based on early proposals, and no attempt was made to maintain backward compatibility when they were updated to match the final C++11 standard.

      and particularly, https://gcc.gnu.org/gcc-5/changes.html#libstdcxx

      Full support for C++11, including the following new features: ...

      C++11 support (CXXFLAGS ="... -std=c++11") in GCC 5.1 is in RELEASE.

      With MDB 10.1 latest

      git log | head
          commit 07b8aefe90ca830d2de068f2966cd2288b158a88
          Author: Sergei Petrunia <psergey@askmonty.org>
          Date:   Wed Feb 3 00:15:49 2016 +0300
       
              MDEV-9504: ANALYZE TABLE shows wrong 'rows' value for ORDER BY query
              
              Revert the patch for MDEV-9504.
              It causes test failures, attempt to fix these causes more failures. The
              source of all this is that the code in test_if_skip_sort_order() has
              a peculiar way of treating select_limit parameter:

      cmake & build with config

          cmake .. \
          ...
           -DCMAKE_CXX_FLAGS="-fno-delete-null-pointer-checks -D_FORTIFY_SOURCE=2 -fmessage-length=0 -fstack-protector -march=x86-64 -mtune=nocona"

      results in no errors on config or build

      changing

          cmake .. \
          ...
      -    -DCMAKE_CXX_FLAGS="-fno-delete-null-pointer-checks -D_FORTIFY_SOURCE=2 -fmessage-length=0 -fstack-protector -march=x86-64 -mtune=nocona"
      +    -DCMAKE_CXX_FLAGS="-fno-delete-null-pointer-checks -D_FORTIFY_SOURCE=2 -fmessage-length=0 -fstack-protector -march=x86-64 -mtune=nocona -std=c++11"

      results in NO error on config, but FAILs on subsequent build

      make -j4 V=1
          Scanning dependencies of target abi_check
          Scanning dependencies of target INFO_BIN
          Scanning dependencies of target INFO_SRC
          Scanning dependencies of target strings
          Scanning dependencies of target readline
          [  0%] Built target INFO_BIN
          ...
          [  3%] Building C object extra/readline/CMakeFiles/readline.dir/complete.c.o
          [  3%] Building C object strings/CMakeFiles/strings.dir/ctype-eucjpms.c.o
          In file included from /usr/local/src/mariadb/plugin/handler_socket/libhsclient/hstcpcli.cpp:13:0:
          /usr/local/src/mariadb/plugin/handler_socket/libhsclient/hstcpcli.hpp:33:14: warning: ‘template<class> class std::auto_ptr’ is deprecated [-Wdeprecated-declarations]
           typedef std::auto_ptr<hstcpcli_i> hstcpcli_ptr;
                        ^
          In file included from /usr/include/c++/5/memory:81:0,
                           from /usr/local/src/mariadb/plugin/handler_socket/libhsclient/hstcpcli.hpp:15,
                           from /usr/local/src/mariadb/plugin/handler_socket/libhsclient/hstcpcli.cpp:13:
          /usr/include/c++/5/bits/unique_ptr.h:49:28: note: declared here
             template<typename> class auto_ptr;
                                      ^
          [  3%] Building C object strings/CMakeFiles/strings.dir/ctype-extra.c.o
          ...
          [ 28%] Building CXX object extra/CMakeFiles/innochecksum.dir/__/storage/innobase/ut/ut0crc32.cc.o
          In file included from /usr/local/src/mariadb/sql/item.h:4500:0,
                           from /usr/local/src/mariadb/sql/sql_lex.h:26,
                           from /usr/local/src/mariadb/sql/sql_class.h:495,
                           from /usr/local/src/mariadb/sql/sql_acl.h:21,
                           from /usr/local/src/mariadb/sql/sql_parse.h:20,
                           from /usr/local/src/mariadb/sql/ha_partition.cc:51:
          /usr/local/src/mariadb/sql/item_func.h: In member function ‘double Item_func::check_float_overflow(double)’:
          /usr/local/src/mariadb/sql/item_func.h:235:26: error: ‘isfinite’ was not declared in this scope
               return isfinite(value) ? value : raise_float_overflow();
                                    ^
          /usr/local/src/mariadb/sql/item_func.h:235:26: note: suggested alternative:
          In file included from /usr/include/c++/5/random:38:0,
                           from /usr/include/c++/5/bits/stl_algo.h:66,
                           from /usr/include/c++/5/algorithm:62,
                           from /usr/local/src/mariadb/sql/mdl.h:33,
                           from /usr/local/src/mariadb/sql/handler.h:35,
                           from /usr/local/src/mariadb/sql/log.h:20,
                           from /usr/local/src/mariadb/sql/sql_class.h:27,
                           from /usr/local/src/mariadb/sql/sql_acl.h:21,
                           from /usr/local/src/mariadb/sql/sql_parse.h:20,
                           from /usr/local/src/mariadb/sql/ha_partition.cc:51:
          /usr/include/c++/5/cmath:601:5: note:   ‘std::isfinite’
               isfinite(_Tp __x)
               ^
          [ 28%] Building CXX object extra/CMakeFiles/innochecksum.dir/__/storage/innobase/ut/ut0ut.cc.o
          [ 28%] Building CXX object extra/CMakeFiles/innochecksum.dir/__/storage/innobase/page/page0zip.cc.o
          Scanning dependencies of target xtradb
          [ 28%] Building C object libmysql/CMakeFiles/clientlib.dir/__/sql-common/my_time.c.o
          sql/CMakeFiles/partition.dir/build.make:62: recipe for target 'sql/CMakeFiles/partition.dir/ha_partition.cc.o' failed
          make[2]: *** [sql/CMakeFiles/partition.dir/ha_partition.cc.o] Error 1
          CMakeFiles/Makefile2:5345: recipe for target 'sql/CMakeFiles/partition.dir/all' failed
          make[1]: *** [sql/CMakeFiles/partition.dir/all] Error 2
          make[1]: *** Waiting for unfinished jobs....
          [ 28%] Building C object libmysql/CMakeFiles/clientlib.dir/__/sql-common/client_plugin.c.o
          ...
          [ 31%] Building CXX object storage/xtradb/CMakeFiles/xtradb.dir/dict/dict0load.cc.o
          In file included from /usr/local/src/mariadb/storage/xtradb/include/fts0priv.h:650:0,
                           from /usr/local/src/mariadb/storage/xtradb/dict/dict0crea.cc:46:
          /usr/local/src/mariadb/storage/xtradb/include/fts0priv.ic:56:24: warning: invalid suffix on literal; C++11 requires a space between literal and string macro [-Wliteral-suffix]
              return(sprintf(str, "%016"PRIu64, id)););
                                  ^
          /usr/local/src/mariadb/storage/xtradb/include/fts0priv.ic:69:23: warning: invalid suffix on literal; C++11 requires a space between literal and string macro [-Wliteral-suffix]
             return(sprintf(str, "%016"PRIu64, id));
                                 ^
          In file included from /usr/local/src/mariadb/storage/xtradb/include/fts0priv.h:650:0,
                           from /usr/local/src/mariadb/storage/xtradb/dict/dict0load.cc:47:
          /usr/local/src/mariadb/storage/xtradb/include/fts0priv.ic:56:24: warning: invalid suffix on literal; C++11 requires a space between literal and string macro [-Wliteral-suffix]
              return(sprintf(str, "%016"PRIu64, id)););
                                  ^
          /usr/local/src/mariadb/storage/xtradb/include/fts0priv.ic:69:23: warning: invalid suffix on literal; C++11 requires a space between literal and string macro [-Wliteral-suffix]
             return(sprintf(str, "%016"PRIu64, id));
                                 ^
          [ 31%] Building CXX object storage/xtradb/CMakeFiles/xtradb.dir/dict/dict0mem.cc.o
          In file included from /usr/local/src/mariadb/storage/xtradb/include/fts0priv.h:650:0,
                           from /usr/local/src/mariadb/storage/xtradb/dict/dict0mem.cc:37:
          /usr/local/src/mariadb/storage/xtradb/include/fts0priv.ic:56:24: warning: invalid suffix on literal; C++11 requires a space between literal and string macro [-Wliteral-suffix]
              return(sprintf(str, "%016"PRIu64, id)););
                                  ^
          /usr/local/src/mariadb/storage/xtradb/include/fts0priv.ic:69:23: warning: invalid suffix on literal; C++11 requires a space between literal and string macro [-Wliteral-suffix]
             return(sprintf(str, "%016"PRIu64, id));
                                 ^
          [ 32%] Building CXX object storage/xtradb/CMakeFiles/xtradb.dir/dict/dict0stats.cc.o
          ...
          [ 33%] Building CXX object storage/xtradb/CMakeFiles/xtradb.dir/fts/fts0blex.cc.o
          In file included from /usr/local/src/mariadb/storage/xtradb/include/fts0priv.h:650:0,
                           from /usr/local/src/mariadb/storage/xtradb/fts/fts0fts.cc:31:
          /usr/local/src/mariadb/storage/xtradb/include/fts0priv.ic:56:24: warning: invalid suffix on literal; C++11 requires a space between literal and string macro [-Wliteral-suffix]
              return(sprintf(str, "%016"PRIu64, id)););
                                  ^
          /usr/local/src/mariadb/storage/xtradb/include/fts0priv.ic:69:23: warning: invalid suffix on literal; C++11 requires a space between literal and string macro [-Wliteral-suffix]
             return(sprintf(str, "%016"PRIu64, id));
                                 ^
          /usr/local/src/mariadb/storage/xtradb/fts/fts0fts.cc:6277:23: warning: invalid suffix on literal; C++11 requires a space between literal and string macro [-Wliteral-suffix]
            ret = sscanf(tmp_id, "%016"PRIu64, &dec_id);
                                 ^
          [ 33%] Building CXX object storage/xtradb/CMakeFiles/xtradb.dir/fts/fts0config.cc.o
          [ 33%] Building CXX object storage/xtradb/CMakeFiles/xtradb.dir/fts/fts0opt.cc.o
          In file included from /usr/local/src/mariadb/storage/xtradb/include/fts0priv.h:650:0,
                           from /usr/local/src/mariadb/storage/xtradb/fts/fts0config.cc:29:
          /usr/local/src/mariadb/storage/xtradb/include/fts0priv.ic:56:24: warning: invalid suffix on literal; C++11 requires a space between literal and string macro [-Wliteral-suffix]
              return(sprintf(str, "%016"PRIu64, id)););
                                  ^
          /usr/local/src/mariadb/storage/xtradb/include/fts0priv.ic:69:23: warning: invalid suffix on literal; C++11 requires a space between literal and string macro [-Wliteral-suffix]
             return(sprintf(str, "%016"PRIu64, id));
                                 ^
          [ 33%] Building CXX object storage/xtradb/CMakeFiles/xtradb.dir/fts/fts0pars.cc.o
          In file included from /usr/local/src/mariadb/storage/xtradb/include/fts0priv.h:650:0,
                           from /usr/local/src/mariadb/storage/xtradb/fts/fts0opt.cc:31:
          /usr/local/src/mariadb/storage/xtradb/include/fts0priv.ic:56:24: warning: invalid suffix on literal; C++11 requires a space between literal and string macro [-Wliteral-suffix]
              return(sprintf(str, "%016"PRIu64, id)););
                                  ^
          /usr/local/src/mariadb/storage/xtradb/include/fts0priv.ic:69:23: warning: invalid suffix on literal; C++11 requires a space between literal and string macro [-Wliteral-suffix]
             return(sprintf(str, "%016"PRIu64, id));
                                 ^
          [ 33%] Building CXX object storage/xtradb/CMakeFiles/xtradb.dir/fts/fts0que.cc.o
          In file included from /usr/local/src/mariadb/storage/xtradb/include/fts0priv.h:650:0,
                           from /usr/local/src/mariadb/storage/xtradb/fts/fts0que.cc:31:
          /usr/local/src/mariadb/storage/xtradb/include/fts0priv.ic:56:24: warning: invalid suffix on literal; C++11 requires a space between literal and string macro [-Wliteral-suffix]
              return(sprintf(str, "%016"PRIu64, id)););
                                  ^
          /usr/local/src/mariadb/storage/xtradb/include/fts0priv.ic:69:23: warning: invalid suffix on literal; C++11 requires a space between literal and string macro [-Wliteral-suffix]
             return(sprintf(str, "%016"PRIu64, id));
                                 ^
          [ 34%] Building CXX object storage/xtradb/CMakeFiles/xtradb.dir/fts/fts0sql.cc.o
          In file included from /usr/local/src/mariadb/storage/xtradb/include/fts0priv.h:650:0,
                           from /usr/local/src/mariadb/storage/xtradb/fts/fts0sql.cc:31:
          /usr/local/src/mariadb/storage/xtradb/include/fts0priv.ic:56:24: warning: invalid suffix on literal; C++11 requires a space between literal and string macro [-Wliteral-suffix]
              return(sprintf(str, "%016"PRIu64, id)););
                                  ^
          /usr/local/src/mariadb/storage/xtradb/include/fts0priv.ic:69:23: warning: invalid suffix on literal; C++11 requires a space between literal and string macro [-Wliteral-suffix]
             return(sprintf(str, "%016"PRIu64, id));
                                 ^
          [ 34%] Building CXX object storage/xtradb/CMakeFiles/xtradb.dir/fts/fts0tlex.cc.o
          [ 34%] Building CXX object storage/xtradb/CMakeFiles/xtradb.dir/handler/ha_innodb.cc.o
          [ 34%] Building CXX object storage/xtradb/CMakeFiles/xtradb.dir/handler/handler0alter.cc.o
          [ 34%] Building CXX object storage/xtradb/CMakeFiles/xtradb.dir/handler/i_s.cc.o
          In file included from /usr/local/src/mariadb/storage/xtradb/include/fts0priv.h:650:0,
                           from /usr/local/src/mariadb/storage/xtradb/handler/ha_innodb.cc:111:
          /usr/local/src/mariadb/storage/xtradb/include/fts0priv.ic:56:24: warning: invalid suffix on literal; C++11 requires a space between literal and string macro [-Wliteral-suffix]
              return(sprintf(str, "%016"PRIu64, id)););
                                  ^
          /usr/local/src/mariadb/storage/xtradb/include/fts0priv.ic:69:23: warning: invalid suffix on literal; C++11 requires a space between literal and string macro [-Wliteral-suffix]
             return(sprintf(str, "%016"PRIu64, id));
                                 ^
          In file included from /usr/local/src/mariadb/storage/xtradb/include/fts0priv.h:650:0,
                           from /usr/local/src/mariadb/storage/xtradb/handler/handler0alter.cc:50:
          /usr/local/src/mariadb/storage/xtradb/include/fts0priv.ic:56:24: warning: invalid suffix on literal; C++11 requires a space between literal and string macro [-Wliteral-suffix]
              return(sprintf(str, "%016"PRIu64, id)););
                                  ^
          /usr/local/src/mariadb/storage/xtradb/include/fts0priv.ic:69:23: warning: invalid suffix on literal; C++11 requires a space between literal and string macro [-Wliteral-suffix]
             return(sprintf(str, "%016"PRIu64, id));
                                 ^
          [ 34%] Building CXX object storage/xtradb/CMakeFiles/xtradb.dir/handler/xtradb_i_s.cc.o
          In file included from /usr/local/src/mariadb/storage/xtradb/include/fts0priv.h:650:0,
                           from /usr/local/src/mariadb/storage/xtradb/handler/i_s.cc:70:
          /usr/local/src/mariadb/storage/xtradb/include/fts0priv.ic:56:24: warning: invalid suffix on literal; C++11 requires a space between literal and string macro [-Wliteral-suffix]
              return(sprintf(str, "%016"PRIu64, id)););
                                  ^
          /usr/local/src/mariadb/storage/xtradb/include/fts0priv.ic:69:23: warning: invalid suffix on literal; C++11 requires a space between literal and string macro [-Wliteral-suffix]
             return(sprintf(str, "%016"PRIu64, id));
                                 ^
          [ 34%] Building CXX object storage/xtradb/CMakeFiles/xtradb.dir/ibuf/ibuf0ibuf.cc.o
          In file included from /usr/local/src/mariadb/sql/item.h:4500:0,
                           from /usr/local/src/mariadb/sql/sql_lex.h:26,
                           from /usr/local/src/mariadb/sql/sql_class.h:495,
                           from /usr/local/src/mariadb/sql/sql_acl.h:21,
                           from /usr/local/src/mariadb/storage/xtradb/handler/ha_innodb.cc:42:
          /usr/local/src/mariadb/sql/item_func.h: In member function ‘double Item_func::check_float_overflow(double)’:
          /usr/local/src/mariadb/sql/item_func.h:235:26: error: ‘isfinite’ was not declared in this scope
               return isfinite(value) ? value : raise_float_overflow();
                                    ^
          /usr/local/src/mariadb/sql/item_func.h:235:26: note: suggested alternative:
          In file included from /usr/include/c++/5/random:38:0,
                           from /usr/include/c++/5/bits/stl_algo.h:66,
                           from /usr/include/c++/5/algorithm:62,
                           from /usr/local/src/mariadb/sql/mdl.h:33,
                           from /usr/local/src/mariadb/sql/handler.h:35,
                           from /usr/local/src/mariadb/sql/log.h:20,
                           from /usr/local/src/mariadb/sql/sql_class.h:27,
                           from /usr/local/src/mariadb/sql/sql_acl.h:21,
                           from /usr/local/src/mariadb/storage/xtradb/handler/ha_innodb.cc:42:
          /usr/include/c++/5/cmath:601:5: note:   ‘std::isfinite’
               isfinite(_Tp __x)
               ^
          In file included from /usr/local/src/mariadb/sql/item.h:4500:0,
                           from /usr/local/src/mariadb/storage/xtradb/handler/i_s.cc:31:
          /usr/local/src/mariadb/sql/item_func.h: In member function ‘double Item_func::check_float_overflow(double)’:
          /usr/local/src/mariadb/sql/item_func.h:235:26: error: ‘isfinite’ was not declared in this scope
               return isfinite(value) ? value : raise_float_overflow();
                                    ^
          /usr/local/src/mariadb/sql/item_func.h:235:26: note: suggested alternative:
          In file included from /usr/include/c++/5/random:38:0,
                           from /usr/include/c++/5/bits/stl_algo.h:66,
                           from /usr/include/c++/5/algorithm:62,
                           from /usr/local/src/mariadb/sql/mdl.h:33,
                           from /usr/local/src/mariadb/sql/table.h:22,
                           from /usr/local/src/mariadb/sql/field.h:29,
                           from /usr/local/src/mariadb/sql/unireg.h:171,
                           from /usr/local/src/mariadb/sql/item.h:26,
                           from /usr/local/src/mariadb/storage/xtradb/handler/i_s.cc:31:
          /usr/include/c++/5/cmath:601:5: note:   ‘std::isfinite’
               isfinite(_Tp __x)
               ^
          [ 34%] Building CXX object storage/xtradb/CMakeFiles/xtradb.dir/lock/lock0iter.cc.o
          storage/xtradb/CMakeFiles/xtradb.dir/build.make:1190: recipe for target 'storage/xtradb/CMakeFiles/xtradb.dir/handler/ha_innodb.cc.o' failed
          make[2]: *** [storage/xtradb/CMakeFiles/xtradb.dir/handler/ha_innodb.cc.o] Error 1
          make[2]: *** Waiting for unfinished jobs....
          storage/xtradb/CMakeFiles/xtradb.dir/build.make:1238: recipe for target 'storage/xtradb/CMakeFiles/xtradb.dir/handler/i_s.cc.o' failed
          make[2]: *** [storage/xtradb/CMakeFiles/xtradb.dir/handler/i_s.cc.o] Error 1
          CMakeFiles/Makefile2:542: recipe for target 'storage/xtradb/CMakeFiles/xtradb.dir/all' failed
          make[1]: *** [storage/xtradb/CMakeFiles/xtradb.dir/all] Error 2
          Makefile:149: recipe for target 'all' failed
          make: *** [all] Error 2

        Attachments

          Issue Links

            Activity

              People

              • Assignee:
                serg Sergei Golubchik
                Reporter:
                pgnd pgnd
              • Votes:
                0 Vote for this issue
                Watchers:
                3 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved: