[Arm-dev] MySQL(5.7.21) and Percona(5.7.20-19) compile fails in CentOS7(1708) aarch64

Sat Feb 24 02:55:08 UTC 2018
Zhou Wang <wangzhou1 at hisilicon.com>

Hi,

We use CentOS7(1708) aarch64 to compile MySQL(5.7.21) and Percona(5.7.20-19).

Compiling will fail with below error log:

Built target myisamchk
Building CXX object libmysqld/CMakeFiles/sql_embedded.dir/__/sql/net_serv.cc.o
Building CXX object libmysqld/CMakeFiles/sql_embedded.dir/__/sql/opt_costmodel.cc.o
Building CXX object libmysqld/CMakeFiles/sql_embedded.dir/__/sql/opt_costconstants.cc.o
/home/mysql-5.7.21/storage/innobase/fts/fts0fts.cc: In function ‘dberr_t fts_sync_index(fts_sync_t*, fts_index_cache_t*)’:
/home/mysql-5.7.21/storage/innobase/fts/fts0fts.cc:4495:1: error: could not split insn
 }
 ^
(insn 739 2247 2253 (parallel [
            (set (reg:DI 0 x0 [orig:150 D.108431 ] [150])
                (plus:DI (mem/v:DI (reg/f:DI 19 x19 [orig:98 D.108442 ] [98]) [-1  S8 A64])
                    (const_int 536870912 [0x20000000])))
            (set (mem/v:DI (reg/f:DI 19 x19 [orig:98 D.108442 ] [98]) [-1  S8 A64])
                (unspec_volatile:DI [
                        (mem/v:DI (reg/f:DI 19 x19 [orig:98 D.108442 ] [98]) [-1  S8 A64])
                        (const_int 536870912 [0x20000000])
                        (const_int 5 [0x5])
                    ] UNSPECV_ATOMIC_OP))
            (clobber (reg:CC 66 cc))
            (clobber (reg:SI 1 x1))
        ]) /home/mysql-5.7.21/storage/innobase/include/sync0rw.ic:309 1855 {atomic_add_fetchdi}
     (expr_list:REG_UNUSED (reg:CC 66 cc)
        (expr_list:REG_UNUSED (reg:SI 1 x1)
            (nil))))
/home/mysql-5.7.21/storage/innobase/fts/fts0fts.cc:4495:1: internal compiler error: in final_scan_insn, at final.c:2897
Please submit a full bug report,
with preprocessed source if appropriate.
See <http://bugzilla.redhat.com/bugzilla> for instructions.
[ 70%] [ 70%] [ 70%] [ 70%] Building CXX object libmysqld/CMakeFiles/sql_embedded.dir/__/sql/opt_explain.cc.o
Building CXX object libmysqld/CMakeFiles/sql_embedded.dir/__/sql/opt_explain_traditional.cc.o
Building CXX object libmysqld/CMakeFiles/sql_embedded.dir/__/sql/opt_explain_json.cc.o
Building CXX object libmysqld/CMakeFiles/sql_embedded.dir/__/sql/opt_hints.cc.o
[ 70%] [ 70%] [ 70%] [ 70%] Building CXX object libmysqld/CMakeFiles/sql_embedded.dir/__/sql/opt_range.cc.o
Building CXX object libmysqld/CMakeFiles/sql_embedded.dir/__/sql/opt_statistics.cc.o
Building CXX object libmysqld/CMakeFiles/sql_embedded.dir/__/sql/opt_sum.cc.o
[ 71%] Linking CXX static library ../archive_output_directory/libmysqlcheck_core.a
Building CXX object libmysqld/CMakeFiles/sql_embedded.dir/__/sql/opt_trace.cc.o
/home/mysql-5.7.21/storage/innobase/fts/fts0fts.cc: In function ‘dberr_t fts_sync_index(fts_sync_t*, fts_index_cache_t*)’:
/home/mysql-5.7.21/storage/innobase/fts/fts0fts.cc:4495:1: error: could not split insn
 }
 ^
(insn 737 2253 2259Building CXX object libmysqld/CMakeFiles/sql_embedded.dir/__/sql/opt_trace2server.cc.o
[ 71%]  (parallel [
            (set (reg:DI 0 x0 [orig:150 D.108021 ] [150])
                (plus:DI (mem/v:DI (reg/f:DI 19 x19 [orig:98 D.108032 ] [98]) [-1  S8 A64])
                    (const_int 536870912 [0x20000000])))
            (set (mem/v:DI (reg/f:DI 19 x19 [orig:98 D.108032 ] [98]) [-1  S8 A64])
                (unspec_volatile:DI [
                        (mem/v:DI (reg/f:DI 19 x19 [orig:98 D.108032 ] [98]) [-1  S8 A64])
                        (const_int[ 71%]  536870912 [0x20000000])
                        (const_int 5 [0x5])
                    ] UNSPECV_ATOMIC_OP))
            (clobber (reg:CC 66 cc))
            (clobber (reg:SI 1 x1))
        ]) /home/mysql-5.7.21/storage/innobase/include/sync0rw.ic:309 1855 {atomic_add_fetchdi}
     (expr_list:REG_UNUSED (reg:CC 66 cc)
        (expr_list:REG_UNUSED (reg:SI 1 x1)
            (nil))))
/home/mysql-5.7.21/storage/innobase/fts/fts0fts.cc:4495:1: internal compiler error: in final_scan_insn, at final.c:2897
[ 71%] Please submit a full bug report,
with preprocessed source if appropriate.
[ 71%] See <http://bugzilla.redhat.com/bugzilla> for instructions.
[ 71%] Building CXX object libmysqld/CMakeFiles/sql_embedded.dir/__/sql/parse_file.cc.o
Building CXX object libmysqld/CMakeFiles/sql_embedded.dir/__/sql/parse_tree_helpers.cc.o
Building CXX object libmysqld/CMakeFiles/sql_embedded.dir/__/sql/parse_tree_hints.cc.o
Building CXX object libmysqld/CMakeFiles/sql_embedded.dir/__/sql/parse_tree_items.cc.o
Building CXX object libmysqld/CMakeFiles/sql_embedded.dir/__/sql/parse_tree_node_base.cc.o
[ 71%] Built target mysqlcheck_core
[ 71%] [ 71%] [ 71%] [ 71%] Linking CXX executable protoc

It seems we need update gcc to solve this problem.

It will be great if any suggestion can be got about this problem.

Best and thanks,
Zhou