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

AIX: Unresolved Symbols during linking

    Details

    • Type: Bug
    • Status: Open
    • Priority: Minor
    • Resolution: Unresolved
    • Affects Version/s: 10.0.21
    • Fix Version/s: 10.0
    • Component/s: Compiling
    • Labels:
      None
    • Environment:
      AIX 6.1
      IBM XLC Compiler 13.1.0 with IBM ld
      cmake version 3.3.1

      Description

      
      root@aixbuildhost61: /usr/local/src/mariadb-10.0.21 # cat build.sh
      #!/usr/bin/ksh
      
      export APPATH="/usr/local/itsvbuild/64"
      
      export PATH="$APPATH/bin:$PATH"
      export LIBPATH="$APPATH/lib:/usr/lib:/lib:/opt/freeware/lib64:/opt/freeware/lib"
      export LD_LIBRARY_PATH="$APPATH/lib:/opt/freeware/lib64:/opt/freeware/lib:/usr/lib:/lib"
      export OBJECT_MODE=64
      export CC="xlc_r"
      export CFLAGS="-q64 -qmaxmem=-1 -DNDEBUG -DSYSV -D_AIX -D_AIX64 -D_AIX41 -D_AIX43 -D_AIX51 -D_AIX52 -D_AIX53 -D_AIX61 -D_AIX71 -D_ALL_SOURCE -DFUNCPROTO=15 -O2 -I$APPATH/include -I/opt/freeware/include"
      export CXX="xlC_r"
      export CXXFLAGS=$CFLAGS
      export LDFLAGS="-L$APPATH/lib -L/opt/freeware/lib64 -L/opt/freeware/lib -Wl,-blibpath:$APPATH/lib:/usr/lib:/lib -Wl,-bmaxdata:0x80000000 -Wl,-b64 -Wl,-bexpall -Wl,-bnoipath"
      
      gmake clean
      cmake . -DCMAKE_INSTALL_PREFIX=$APPATH -DCMAKE_C_FLAGS="$CFLAGS" -DCMAKE_CXX_FLAGS="$CFLAGS" -DCMAKE_EXE_LINKER_FLAGS="$LDFLAGS" -DCMAKE_SHARED_LINKER_FLAGS="$LDFLAGS -DWITH_UNIT_TESTS=OFF"
      gmake
      
      
      [ 60%] Built target sql
      Scanning dependencies of target explain_filename-t
      [ 60%] Building CXX object unittest/sql/CMakeFiles/explain_filename-t.dir/explain_filename-t.cc.o
      "/usr/include/alloca.h", line 34.9: 1540-1401 (I) An unknown "pragma __alloca" is specified.
      [ 60%] Linking CXX executable explain_filename-t
      ld: 0711-317 ERROR: Undefined symbol: .innobase_strnxfrm(const charset_info_st*,const unsigned char*,unsigned long)
      ld: 0711-317 ERROR: Undefined symbol: .trx_sys_file_format_id_to_name(const unsigned long)
      ld: 0711-317 ERROR: Undefined symbol: ib_cursor_insert_row(ib_cursor_t*,ib_tuple_t* const)
      ld: 0711-317 ERROR: Undefined symbol: ib_cursor_update_row(ib_cursor_t*,ib_tuple_t* const,ib_tuple_t* const)
      ld: 0711-317 ERROR: Undefined symbol: ib_tuple_copy(ib_tuple_t*,ib_tuple_t* const)
      ld: 0711-317 ERROR: Undefined symbol: ib_tuple_get_n_cols(ib_tuple_t* const)
      ld: 0711-317 ERROR: Undefined symbol: ib_tuple_get_n_user_cols(ib_tuple_t* const)
      ld: 0711-345 Use the -bloadmap or -bnoquiet option to obtain more information.
      unittest/sql/CMakeFiles/explain_filename-t.dir/build.make:115: recipe for target 'unittest/sql/explain_filename-t' failed
      gmake[2]: *** [unittest/sql/explain_filename-t] Error 8
      CMakeFiles/Makefile2:1290: recipe for target 'unittest/sql/CMakeFiles/explain_filename-t.dir/all' failed
      gmake[1]: *** [unittest/sql/CMakeFiles/explain_filename-t.dir/all] Error 2
      Makefile:160: recipe for target 'all' failed
      gmake: *** [all] Error 2
      

        Gliffy Diagrams

          Attachments

            Activity

            Hide
            johnnyrotten73 Chris added a comment -

            detailed output of linker command

            root@aixbuildhost61: /usr/local/src/mariadb-10.0.21/sql # /opt/IBM/xlC/13.1.0/bin/xlC_r   -q64 -qmaxmem=-1 -qhalt=e -qstaticinline -qcpluscmt -DNDEBUG -DSYSV -D_AIX -D_AIX64 -D_AIX41 -D_AIX43 -D_AIX51 -D_AIX52 -D_AIX53 -D_AIX61 -D_AIX71 -D_ALL_SOURCE -DFUNCPROTO=15 -O2 -I/usr/local/itsvbuild/64/include -I/opt/freeware/include -qthreaded -qhalt=e -qstaticinline -g -DDBUG_OFF   -L/usr/local/itsvbuild/64/lib -L/opt/freeware/lib64 -L/opt/freeware/lib -Wl,-blibpath:/usr/local/itsvbuild/64/lib:/usr/lib:/lib -Wl,-bmaxdata:0x80000000 -Wl,-b64 -Wl,-bexpfull -Wl,-bnoipath -Wl,-bbigtoc CMakeFiles/mysqld.dir/main.cc.o  -o mysqld -Wl,-brtl,-bnoipath,-bexpfull libsql.a ../storage/csv/libcsv.a ../storage/heap/libheap.a ../storage/maria/libaria.a ../storage/myisam/libmyisam.a ../storage/myisammrg/libmyisammrg.a ../storage/perfschema/libperfschema.a ../storage/xtradb/libxtradb.a libpartition.a ../mysys_ssl/libmysys_ssl.a ../mysys/libmysys.a ../dbug/libdbug.a ../mysys/libmysys.a ../dbug/libdbug.a ../zlib/libzlib.a -lm ../strings/libstrings.a ../vio/libvio.a ../pcre/libpcre.a /usr/local/itsvbuild/64/lib/libssl.so /usr/local/itsvbuild/64/lib/libcrypto.so -Wl,-blibpath:/usr/lib:/lib -bnoquiet
            (ld): setopt 64
            (ld): halt 4
            (ld): setopt noipath
            (ld): setopt bigtoc
            (ld): setopt noipath
            (ld): setopt rtl
            (ld): setopt rtllib
            ld: 0711-317 ERROR: Undefined symbol: .innobase_strnxfrm(const charset_info_st*,const unsigned char*,unsigned long)
            (ld): setopt expfull
            ld: 0711-317 ERROR: Undefined symbol: .trx_sys_file_format_id_to_name(const unsigned long)
            (ld): setopt symbolic:1
            ld: 0711-317 ERROR: Undefined symbol: ib_cursor_insert_row(ib_cursor_t*,ib_tuple_t* const)
            (ld): setfflag 4
            ld: 0711-317 ERROR: Undefined symbol: ib_cursor_update_row(ib_cursor_t*,ib_tuple_t* const,ib_tuple_t* const)
            (ld): cdtors 0 all 0 s
            ld: 0711-317 ERROR: Undefined symbol: ib_tuple_copy(ib_tuple_t*,ib_tuple_t* const)
            (ld): savename mysqld
            ld: 0711-317 ERROR: Undefined symbol: ib_tuple_get_n_cols(ib_tuple_t* const)
            (ld): filelist 29 1
            (ld): i /lib/crt0_64.o
            (ld): i /lib/crti_64.o
            (ld): i CMakeFiles/mysqld.dir/main.cc.o
            (ld): i libsql.a
            (ld): i ../storage/csv/libcsv.a
            (ld): i ../storage/heap/libheap.a
            (ld): i ../storage/maria/libaria.a
            (ld): i ../storage/myisam/libmyisam.a
            (ld): i ../storage/myisammrg/libmyisammrg.a
            (ld): i ../storage/perfschema/libperfschema.a
            (ld): i ../storage/xtradb/libxtradb.a
            (ld): i libpartition.a
            (ld): i ../mysys_ssl/libmysys_ssl.a
            (ld): i ../mysys/libmysys.a
            (ld): i ../dbug/libdbug.a
            (ld): i ../zlib/libzlib.a
            (ld): lib /usr/lib/libm.a
            (ld): i ../strings/libstrings.a
            (ld): i ../vio/libvio.a
            (ld): i ../pcre/libpcre.a
            (ld): i /usr/local/itsvbuild/64/lib/libssl.so
            (ld): i /usr/local/itsvbuild/64/lib/libcrypto.so
            (ld): lib /opt/IBM/xlc/13.1.0/lib/libxlopt.a
            (ld): lib /opt/IBM/xlc/13.1.0/lib/libxlipa.a
            (ld): lib /opt/IBM/xlc/13.1.0/lib/libxl.a
            (ld): lib /usr/lib/libC.a
            (ld): lib /usr/lib/libpthreads.a
            (ld): lib /usr/lib/libc.a
            (ld): lib /usr/lib/librtl.a
            LIBRARY: Shared object libssl.so: 622 symbols imported.
            LIBRARY: Shared object libcrypto.so: 4059 symbols imported.
            LIBRARY: Symbols imported from import file /usr/lib/libC.a[shr_32.imp]: 0
            LIBRARY: Symbols imported from import file /usr/lib/libC.a[shr2_32.imp]: 0
            LIBRARY: Symbols imported from import file /usr/lib/libC.a[shr3_32.imp]: 0
            LIBRARY: Symbols imported from import file /usr/lib/libC.a[ansi_32.imp]: 0
            LIBRARY: Symbols imported from import file /usr/lib/libC.a[shr_64.imp]: 393
            LIBRARY: Symbols imported from import file /usr/lib/libC.a[shr2_64.imp]: 24
            LIBRARY: Symbols imported from import file /usr/lib/libC.a[shr3_64.imp]: 28
            LIBRARY: Symbols imported from import file /usr/lib/libC.a[ansi_64.imp]: 3765
            LIBRARY: Shared object libpthreads.a[shr_xpg5_64.o]: 342 symbols imported.
            LIBRARY: Shared object libc.a[shr_64.o]: 2978 symbols imported.
            LIBRARY: Shared object libc.a[posix_aio_64.o]: 20 symbols imported.
            LIBRARY: Shared object libc.a[aio_64.o]: 18 symbols imported.
            LIBRARY: Shared object libc.a[pse_64.o]: 8 symbols imported.
            LIBRARY: Shared object libc.a[dl_64.o]: 4 symbols imported.
            LIBRARY: Shared object libc.a[pty_64.o]: 1 symbols imported.
            LIBRARY: Shared object librtl.a[lazy42_64.o]: 3 symbols imported.
            FILELIST: Number of previously inserted files processed: 29
            (ld): resolve
            RESOLVE: 73483 of 173516 symbols were kept.
            (ld): addgl /usr/lib/glink64.o
            ADDGL: Glink code added for 379 symbols.
            (ld): er full
            ld: 0711-318 ERROR: Undefined symbols were found.
                    The following symbols are in error:
             Symbol                    Inpndx  TY CL Source-File(Object-File) OR Import-File{Shared-object}
                                          RLD: Address  Section  Rld-type Referencing Symbol
             ----------------------------------------------------------------------------------------------
             .innobase_strnxfrm(const charset_info_st*,const unsigned char*,unsigned long) [5235]  ER PR /usr/local/src/mariadb-10.0.21/storage/xtradb/fts/fts0opt.cc(../storage/xtradb/libxtradb.a[fts0opt.cc.o])
                                               00000da0 .text    R_RBR    [2645]  .fts_index_fetch_nodes(trx_t*,que_fork_t**,fts_table_t*,const fts_string_t*,fts_fetch_t*)
                                               00000f70 .text    R_RBR    [2645]  .fts_index_fetch_nodes(trx_t*,que_fork_t**,fts_table_t*,const fts_string_t*,fts_fetch_t*)
                                               00005ff4 .text    R_RBR    [3754]  <.IPRA.$fts_optimize_words(fts_optimize_t*,dict_index_t*,fts_string_t*)>
                                               00006378 .text    R_RBR    [3754]  <.IPRA.$fts_optimize_words(fts_optimize_t*,dict_index_t*,fts_string_t*)>
                                               00006e90 .text    R_RBR    [3911]  <.IPRA.$fts_index_fetch_words(fts_optimize_t*,const fts_string_t*,unsigned long)>
                                               00007424 .text    R_RBR    [3960]  <.fts_optimize_set_next_word(const charset_info_st*,fts_string_t*)>
                                               00008ac8 .text    R_RBR    [4203]  <.IPRA.$fts_optimize_write_word(trx_t*,fts_table_t*,fts_string_t*,ib_vector_t*)>
             .innobase_strnxfrm(const charset_info_st*,const unsigned char*,unsigned long) [12202] ER PR /usr/local/src/mariadb-10.0.21/storage/xtradb/fts/fts0fts.cc(../storage/xtradb/libxtradb.a[fts0fts.cc.o])
                                               00015024 .text    R_RBR    [9736]  <.IPRA.$fts_sync_write_words(trx_t*,fts_index_cache_t*)>
             .innobase_strnxfrm(const charset_info_st*,const unsigned char*,unsigned long) [4465]  ER PR /usr/local/src/mariadb-10.0.21/storage/xtradb/row/row0ftsort.cc(../storage/xtradb/libxtradb.a[row0ftsort.cc.o])
                                               00002aac .text    R_RBR    [2573]  <.IPRA.$row_merge_fts_doc_tokenize(row_merge_buf_t**,unsigned long,fts_doc_t*,dtype_t*,merge_file_t**,unsigned long,fts_tokenize_ctx*)>
                                               00004840 .text    R_RBR    [3363]  <.IPRA.$row_merge_write_fts_word(trx_t*,que_fork_t**,fts_tokenizer_word_t*,fts_table_t*,const charset_info_st*)>
             .trx_sys_file_format_id_to_name(const unsigned long) [10066] ER PR /usr/local/src/mariadb-10.0.21/storage/xtradb/handler/i_s.cc(../storage/xtradb/libxtradb.a[i_s.cc.o])
                                               0000c5a0 .text    R_RBR    [6331]  <.IPRA.$i_s_dict_fill_sys_tables(THD*,dict_table_t*,TABLE*)>
                                               0000d76c .text    R_RBR    [6442]  <.IPRA.$i_s_dict_fill_sys_tablespaces(THD*,unsigned long,const char*,unsigned long,TABLE*)>
             .trx_sys_file_format_id_to_name(const unsigned long) [18983] ER PR /usr/local/src/mariadb-10.0.21/storage/xtradb/handler/ha_innodb.cc(../storage/xtradb/libxtradb.a[ha_innodb.cc.o])
                                               00000364 .text    R_RBR    [5256]  <.innobase_init(void*)>
                                               00000e80 .text    R_RBR    [5256]  <.innobase_init(void*)>
                                               0001c4bc .text    R_RBR    [10591] <.innodb_file_format_name_validate(THD*,st_mysql_sys_var*,void*,st_mysql_value*)>
                                               0001c610 .text    R_RBR    [10612] <.innodb_file_format_name_update(THD*,st_mysql_sys_var*,void*,const void*)>
                                               0001c63c .text    R_RBR    [10612] <.innodb_file_format_name_update(THD*,st_mysql_sys_var*,void*,const void*)>
                                               0001c810 .text    R_RBR    [10631] <.innodb_file_format_max_validate(THD*,st_mysql_sys_var*,void*,st_mysql_value*)>
                                               0001c844 .text    R_RBR    [10631] <.innodb_file_format_max_validate(THD*,st_mysql_sys_var*,void*,st_mysql_value*)>
                                               00022924 .text    R_RBR    [12160] <.IPRA.$innobase_file_format_name_lookup(const char*)>
                                               00022994 .text    R_RBR    [12160] <.IPRA.$innobase_file_format_name_lookup(const char*)>
             ib_cursor_insert_row(ib_cursor_t*,ib_tuple_t* const) [18946] ER DS /usr/local/src/mariadb-10.0.21/storage/xtradb/handler/ha_innodb.cc(../storage/xtradb/libxtradb.a[ha_innodb.cc.o])
                                               0002ed20 .data    R_POS    [18705] innodb_api_cb
                                               0002c248 .data    R_POS    [18948] <ib_cursor_insert_row(ib_cursor_t*,ib_tuple_t* const)>
             ib_cursor_update_row(ib_cursor_t*,ib_tuple_t* const,ib_tuple_t* const) [18938] ER DS /usr/local/src/mariadb-10.0.21/storage/xtradb/handler/ha_innodb.cc(../storage/xtradb/libxtradb.a[ha_innodb.cc.o])
                                               0002ed30 .data    R_POS    [18705] innodb_api_cb
                                               0002c238 .data    R_POS    [18940] <ib_cursor_update_row(ib_cursor_t*,ib_tuple_t* const,ib_tuple_t* const)>
             ib_tuple_copy(ib_tuple_t*,ib_tuple_t* const) [18902] ER DS /usr/local/src/mariadb-10.0.21/storage/xtradb/handler/ha_innodb.cc(../storage/xtradb/libxtradb.a[ha_innodb.cc.o])
                                               0002ed78 .data    R_POS    [18705] innodb_api_cb
                                               0002c1f0 .data    R_POS    [18904] <ib_tuple_copy(ib_tuple_t*,ib_tuple_t* const)>
             ib_tuple_get_n_cols(ib_tuple_t* const) [18834] ER DS /usr/local/src/mariadb-10.0.21/storage/xtradb/handler/ha_innodb.cc(../storage/xtradb/libxtradb.a[ha_innodb.cc.o])
                                               0002ee00 .data    R_POS    [18705] innodb_api_cb
                                               0002c168 .data    R_POS    [18836] <ib_tuple_get_n_cols(ib_tuple_t* const)>
             ib_tuple_get_n_user_cols(ib_tuple_t* const) [18738] ER DS /usr/local/src/mariadb-10.0.21/storage/xtradb/handler/ha_innodb.cc(../storage/xtradb/libxtradb.a[ha_innodb.cc.o])
                                               0002eec0 .data    R_POS    [18705] innodb_api_cb
                                               0002c0a8 .data    R_POS    [18740] <ib_tuple_get_n_user_cols(ib_tuple_t* const)>
            ld: 0711-317 ERROR: Undefined symbol: ib_tuple_get_n_user_cols(ib_tuple_t* const)
            ER: The return code is 8.
            
            
            Show
            johnnyrotten73 Chris added a comment - detailed output of linker command root@aixbuildhost61: /usr/local/src/mariadb-10.0.21/sql # /opt/IBM/xlC/13.1.0/bin/xlC_r -q64 -qmaxmem=-1 -qhalt=e -qstaticinline -qcpluscmt -DNDEBUG -DSYSV -D_AIX -D_AIX64 -D_AIX41 -D_AIX43 -D_AIX51 -D_AIX52 -D_AIX53 -D_AIX61 -D_AIX71 -D_ALL_SOURCE -DFUNCPROTO=15 -O2 -I/usr/local/itsvbuild/64/include -I/opt/freeware/include -qthreaded -qhalt=e -qstaticinline -g -DDBUG_OFF -L/usr/local/itsvbuild/64/lib -L/opt/freeware/lib64 -L/opt/freeware/lib -Wl,-blibpath:/usr/local/itsvbuild/64/lib:/usr/lib:/lib -Wl,-bmaxdata:0x80000000 -Wl,-b64 -Wl,-bexpfull -Wl,-bnoipath -Wl,-bbigtoc CMakeFiles/mysqld.dir/main.cc.o -o mysqld -Wl,-brtl,-bnoipath,-bexpfull libsql.a ../storage/csv/libcsv.a ../storage/heap/libheap.a ../storage/maria/libaria.a ../storage/myisam/libmyisam.a ../storage/myisammrg/libmyisammrg.a ../storage/perfschema/libperfschema.a ../storage/xtradb/libxtradb.a libpartition.a ../mysys_ssl/libmysys_ssl.a ../mysys/libmysys.a ../dbug/libdbug.a ../mysys/libmysys.a ../dbug/libdbug.a ../zlib/libzlib.a -lm ../strings/libstrings.a ../vio/libvio.a ../pcre/libpcre.a /usr/local/itsvbuild/64/lib/libssl.so /usr/local/itsvbuild/64/lib/libcrypto.so -Wl,-blibpath:/usr/lib:/lib -bnoquiet (ld): setopt 64 (ld): halt 4 (ld): setopt noipath (ld): setopt bigtoc (ld): setopt noipath (ld): setopt rtl (ld): setopt rtllib ld: 0711-317 ERROR: Undefined symbol: .innobase_strnxfrm( const charset_info_st*, const unsigned char *,unsigned long ) (ld): setopt expfull ld: 0711-317 ERROR: Undefined symbol: .trx_sys_file_format_id_to_name( const unsigned long ) (ld): setopt symbolic:1 ld: 0711-317 ERROR: Undefined symbol: ib_cursor_insert_row(ib_cursor_t*,ib_tuple_t* const ) (ld): setfflag 4 ld: 0711-317 ERROR: Undefined symbol: ib_cursor_update_row(ib_cursor_t*,ib_tuple_t* const ,ib_tuple_t* const ) (ld): cdtors 0 all 0 s ld: 0711-317 ERROR: Undefined symbol: ib_tuple_copy(ib_tuple_t*,ib_tuple_t* const ) (ld): savename mysqld ld: 0711-317 ERROR: Undefined symbol: ib_tuple_get_n_cols(ib_tuple_t* const ) (ld): filelist 29 1 (ld): i /lib/crt0_64.o (ld): i /lib/crti_64.o (ld): i CMakeFiles/mysqld.dir/main.cc.o (ld): i libsql.a (ld): i ../storage/csv/libcsv.a (ld): i ../storage/heap/libheap.a (ld): i ../storage/maria/libaria.a (ld): i ../storage/myisam/libmyisam.a (ld): i ../storage/myisammrg/libmyisammrg.a (ld): i ../storage/perfschema/libperfschema.a (ld): i ../storage/xtradb/libxtradb.a (ld): i libpartition.a (ld): i ../mysys_ssl/libmysys_ssl.a (ld): i ../mysys/libmysys.a (ld): i ../dbug/libdbug.a (ld): i ../zlib/libzlib.a (ld): lib /usr/lib/libm.a (ld): i ../strings/libstrings.a (ld): i ../vio/libvio.a (ld): i ../pcre/libpcre.a (ld): i /usr/local/itsvbuild/64/lib/libssl.so (ld): i /usr/local/itsvbuild/64/lib/libcrypto.so (ld): lib /opt/IBM/xlc/13.1.0/lib/libxlopt.a (ld): lib /opt/IBM/xlc/13.1.0/lib/libxlipa.a (ld): lib /opt/IBM/xlc/13.1.0/lib/libxl.a (ld): lib /usr/lib/libC.a (ld): lib /usr/lib/libpthreads.a (ld): lib /usr/lib/libc.a (ld): lib /usr/lib/librtl.a LIBRARY: Shared object libssl.so: 622 symbols imported. LIBRARY: Shared object libcrypto.so: 4059 symbols imported. LIBRARY: Symbols imported from import file /usr/lib/libC.a[shr_32.imp]: 0 LIBRARY: Symbols imported from import file /usr/lib/libC.a[shr2_32.imp]: 0 LIBRARY: Symbols imported from import file /usr/lib/libC.a[shr3_32.imp]: 0 LIBRARY: Symbols imported from import file /usr/lib/libC.a[ansi_32.imp]: 0 LIBRARY: Symbols imported from import file /usr/lib/libC.a[shr_64.imp]: 393 LIBRARY: Symbols imported from import file /usr/lib/libC.a[shr2_64.imp]: 24 LIBRARY: Symbols imported from import file /usr/lib/libC.a[shr3_64.imp]: 28 LIBRARY: Symbols imported from import file /usr/lib/libC.a[ansi_64.imp]: 3765 LIBRARY: Shared object libpthreads.a[shr_xpg5_64.o]: 342 symbols imported. LIBRARY: Shared object libc.a[shr_64.o]: 2978 symbols imported. LIBRARY: Shared object libc.a[posix_aio_64.o]: 20 symbols imported. LIBRARY: Shared object libc.a[aio_64.o]: 18 symbols imported. LIBRARY: Shared object libc.a[pse_64.o]: 8 symbols imported. LIBRARY: Shared object libc.a[dl_64.o]: 4 symbols imported. LIBRARY: Shared object libc.a[pty_64.o]: 1 symbols imported. LIBRARY: Shared object librtl.a[lazy42_64.o]: 3 symbols imported. FILELIST: Number of previously inserted files processed: 29 (ld): resolve RESOLVE: 73483 of 173516 symbols were kept. (ld): addgl /usr/lib/glink64.o ADDGL: Glink code added for 379 symbols. (ld): er full ld: 0711-318 ERROR: Undefined symbols were found. The following symbols are in error: Symbol Inpndx TY CL Source-File( Object -File) OR Import-File{Shared-object} RLD: Address Section Rld-type Referencing Symbol ---------------------------------------------------------------------------------------------- .innobase_strnxfrm( const charset_info_st*, const unsigned char *,unsigned long ) [5235] ER PR /usr/local/src/mariadb-10.0.21/storage/xtradb/fts/fts0opt.cc(../storage/xtradb/libxtradb.a[fts0opt.cc.o]) 00000da0 .text R_RBR [2645] .fts_index_fetch_nodes(trx_t*,que_fork_t**,fts_table_t*, const fts_string_t*,fts_fetch_t*) 00000f70 .text R_RBR [2645] .fts_index_fetch_nodes(trx_t*,que_fork_t**,fts_table_t*, const fts_string_t*,fts_fetch_t*) 00005ff4 .text R_RBR [3754] <.IPRA.$fts_optimize_words(fts_optimize_t*,dict_index_t*,fts_string_t*)> 00006378 .text R_RBR [3754] <.IPRA.$fts_optimize_words(fts_optimize_t*,dict_index_t*,fts_string_t*)> 00006e90 .text R_RBR [3911] <.IPRA.$fts_index_fetch_words(fts_optimize_t*, const fts_string_t*,unsigned long )> 00007424 .text R_RBR [3960] <.fts_optimize_set_next_word( const charset_info_st*,fts_string_t*)> 00008ac8 .text R_RBR [4203] <.IPRA.$fts_optimize_write_word(trx_t*,fts_table_t*,fts_string_t*,ib_vector_t*)> .innobase_strnxfrm( const charset_info_st*, const unsigned char *,unsigned long ) [12202] ER PR /usr/local/src/mariadb-10.0.21/storage/xtradb/fts/fts0fts.cc(../storage/xtradb/libxtradb.a[fts0fts.cc.o]) 00015024 .text R_RBR [9736] <.IPRA.$fts_sync_write_words(trx_t*,fts_index_cache_t*)> .innobase_strnxfrm( const charset_info_st*, const unsigned char *,unsigned long ) [4465] ER PR /usr/local/src/mariadb-10.0.21/storage/xtradb/row/row0ftsort.cc(../storage/xtradb/libxtradb.a[row0ftsort.cc.o]) 00002aac .text R_RBR [2573] <.IPRA.$row_merge_fts_doc_tokenize(row_merge_buf_t**,unsigned long ,fts_doc_t*,dtype_t*,merge_file_t**,unsigned long ,fts_tokenize_ctx*)> 00004840 .text R_RBR [3363] <.IPRA.$row_merge_write_fts_word(trx_t*,que_fork_t**,fts_tokenizer_word_t*,fts_table_t*, const charset_info_st*)> .trx_sys_file_format_id_to_name( const unsigned long ) [10066] ER PR /usr/local/src/mariadb-10.0.21/storage/xtradb/handler/i_s.cc(../storage/xtradb/libxtradb.a[i_s.cc.o]) 0000c5a0 .text R_RBR [6331] <.IPRA.$i_s_dict_fill_sys_tables(THD*,dict_table_t*,TABLE*)> 0000d76c .text R_RBR [6442] <.IPRA.$i_s_dict_fill_sys_tablespaces(THD*,unsigned long , const char *,unsigned long ,TABLE*)> .trx_sys_file_format_id_to_name( const unsigned long ) [18983] ER PR /usr/local/src/mariadb-10.0.21/storage/xtradb/handler/ha_innodb.cc(../storage/xtradb/libxtradb.a[ha_innodb.cc.o]) 00000364 .text R_RBR [5256] <.innobase_init(void*)> 00000e80 .text R_RBR [5256] <.innobase_init(void*)> 0001c4bc .text R_RBR [10591] <.innodb_file_format_name_validate(THD*,st_mysql_sys_var*,void*,st_mysql_value*)> 0001c610 .text R_RBR [10612] <.innodb_file_format_name_update(THD*,st_mysql_sys_var*,void*, const void*)> 0001c63c .text R_RBR [10612] <.innodb_file_format_name_update(THD*,st_mysql_sys_var*,void*, const void*)> 0001c810 .text R_RBR [10631] <.innodb_file_format_max_validate(THD*,st_mysql_sys_var*,void*,st_mysql_value*)> 0001c844 .text R_RBR [10631] <.innodb_file_format_max_validate(THD*,st_mysql_sys_var*,void*,st_mysql_value*)> 00022924 .text R_RBR [12160] <.IPRA.$innobase_file_format_name_lookup( const char *)> 00022994 .text R_RBR [12160] <.IPRA.$innobase_file_format_name_lookup( const char *)> ib_cursor_insert_row(ib_cursor_t*,ib_tuple_t* const ) [18946] ER DS /usr/local/src/mariadb-10.0.21/storage/xtradb/handler/ha_innodb.cc(../storage/xtradb/libxtradb.a[ha_innodb.cc.o]) 0002ed20 .data R_POS [18705] innodb_api_cb 0002c248 .data R_POS [18948] <ib_cursor_insert_row(ib_cursor_t*,ib_tuple_t* const )> ib_cursor_update_row(ib_cursor_t*,ib_tuple_t* const ,ib_tuple_t* const ) [18938] ER DS /usr/local/src/mariadb-10.0.21/storage/xtradb/handler/ha_innodb.cc(../storage/xtradb/libxtradb.a[ha_innodb.cc.o]) 0002ed30 .data R_POS [18705] innodb_api_cb 0002c238 .data R_POS [18940] <ib_cursor_update_row(ib_cursor_t*,ib_tuple_t* const ,ib_tuple_t* const )> ib_tuple_copy(ib_tuple_t*,ib_tuple_t* const ) [18902] ER DS /usr/local/src/mariadb-10.0.21/storage/xtradb/handler/ha_innodb.cc(../storage/xtradb/libxtradb.a[ha_innodb.cc.o]) 0002ed78 .data R_POS [18705] innodb_api_cb 0002c1f0 .data R_POS [18904] <ib_tuple_copy(ib_tuple_t*,ib_tuple_t* const )> ib_tuple_get_n_cols(ib_tuple_t* const ) [18834] ER DS /usr/local/src/mariadb-10.0.21/storage/xtradb/handler/ha_innodb.cc(../storage/xtradb/libxtradb.a[ha_innodb.cc.o]) 0002ee00 .data R_POS [18705] innodb_api_cb 0002c168 .data R_POS [18836] <ib_tuple_get_n_cols(ib_tuple_t* const )> ib_tuple_get_n_user_cols(ib_tuple_t* const ) [18738] ER DS /usr/local/src/mariadb-10.0.21/storage/xtradb/handler/ha_innodb.cc(../storage/xtradb/libxtradb.a[ha_innodb.cc.o]) 0002eec0 .data R_POS [18705] innodb_api_cb 0002c0a8 .data R_POS [18740] <ib_tuple_get_n_user_cols(ib_tuple_t* const )> ld: 0711-317 ERROR: Undefined symbol: ib_tuple_get_n_user_cols(ib_tuple_t* const ) ER: The return code is 8.
            Hide
            jplindst Jan Lindström added a comment -

            We do not have currently builder for AIX. You may either wait until we get one or even better contribute a fix to resolve above errors.

            Show
            jplindst Jan Lindström added a comment - We do not have currently builder for AIX. You may either wait until we get one or even better contribute a fix to resolve above errors.
            Hide
            johnnyrotten73 Chris added a comment -

            i added a patch file and a build script which produces a usable mariadb, but innodb throws an assertion error. with disabled innodb everything works.

            innodb assertion error:

            root@aixbuildhost61: /usr/local/mariadb # ../scripts/mysql_install_db
              --basedir=/usr/local/mariadb --datadir=/usr/local/mariadb/data
              --user=mysql
            
              150922 09:53:25 mysqld_safe Starting mysqld daemon with databases from /usr/local/mariadb/data
              150922  9:53:25 [Note] /usr/local/mariadb/bin/mysqld (mysqld 10.0.21-MariaDB) starting as process 7077926 ...
              150922  9:53:25 [Note] InnoDB: Using mutexes to ref count buffer pool pages
              150922  9:53:25 [Note] InnoDB: The InnoDB memory heap is disabled
              150922  9:53:25 [Note] InnoDB: Mutexes and rw_locks use GCC atomic builtins
              150922  9:53:25 [Note] InnoDB: GCC builtin __sync_synchronize() is used for memory barrier
              150922  9:53:25 [Note] InnoDB: Compressed tables use zlib 1.2.3
              2015-09-22 09:53:25 1  InnoDB: Assertion failure in thread 1 in file sync0arr.cc line 1239
              InnoDB: Failing assertion: sync_wait_array == NULL
              InnoDB: We intentionally generate a memory trap.
              InnoDB: Submit a detailed bug report to http://bugs.mysql.com.
              InnoDB: If you get repeated assertion failures or crashes, even
              InnoDB: immediately after the mysqld startup, there may be
              InnoDB: corruption in the InnoDB tablespace. Please refer to
              InnoDB: http://dev.mysql.com/doc/refman/5.6/en/forcing-innodb-recovery.html
              InnoDB: about forcing recovery.
              150922 09:53:25 mysqld_safe mysqld from pid file /usr/local/mariadb/data/aixbuildhost61.pid ended
            

            this was reported to percona, but they said its mariadb's turn to look at this, because mariadb's implementation is "different", whatever that means.

            is this bug Bug #47213 already applied to the mariadb/innodb/xtradb source?

            Show
            johnnyrotten73 Chris added a comment - i added a patch file and a build script which produces a usable mariadb, but innodb throws an assertion error. with disabled innodb everything works. innodb assertion error: root@aixbuildhost61: /usr/local/mariadb # ../scripts/mysql_install_db --basedir=/usr/local/mariadb --datadir=/usr/local/mariadb/data --user=mysql 150922 09:53:25 mysqld_safe Starting mysqld daemon with databases from /usr/local/mariadb/data 150922 9:53:25 [Note] /usr/local/mariadb/bin/mysqld (mysqld 10.0.21-MariaDB) starting as process 7077926 ... 150922 9:53:25 [Note] InnoDB: Using mutexes to ref count buffer pool pages 150922 9:53:25 [Note] InnoDB: The InnoDB memory heap is disabled 150922 9:53:25 [Note] InnoDB: Mutexes and rw_locks use GCC atomic builtins 150922 9:53:25 [Note] InnoDB: GCC builtin __sync_synchronize() is used for memory barrier 150922 9:53:25 [Note] InnoDB: Compressed tables use zlib 1.2.3 2015-09-22 09:53:25 1 InnoDB: Assertion failure in thread 1 in file sync0arr.cc line 1239 InnoDB: Failing assertion: sync_wait_array == NULL InnoDB: We intentionally generate a memory trap. InnoDB: Submit a detailed bug report to http: //bugs.mysql.com. InnoDB: If you get repeated assertion failures or crashes, even InnoDB: immediately after the mysqld startup, there may be InnoDB: corruption in the InnoDB tablespace. Please refer to InnoDB: http: //dev.mysql.com/doc/refman/5.6/en/forcing-innodb-recovery.html InnoDB: about forcing recovery. 150922 09:53:25 mysqld_safe mysqld from pid file /usr/local/mariadb/data/aixbuildhost61.pid ended this was reported to percona, but they said its mariadb's turn to look at this, because mariadb's implementation is "different", whatever that means. is this bug Bug #47213 already applied to the mariadb/innodb/xtradb source?
            Hide
            jplindst Jan Lindström added a comment -

            Hi,

            In file sync0arr.cc line 149 there is something like:

            static	sync_array_t**	sync_wait_array;
            

            replace this with:

            static	sync_array_t**	sync_wait_array=NULL;
            

            Can you create git pull request from your changes, there are some changes that need review also from other than me. I do not fully understand why you changed linkage of some innodb funtions to "C", can this be replaced by using correct types (using cast when necessary) on callers ?

            Show
            jplindst Jan Lindström added a comment - Hi, In file sync0arr.cc line 149 there is something like: static sync_array_t** sync_wait_array; replace this with: static sync_array_t** sync_wait_array=NULL; Can you create git pull request from your changes, there are some changes that need review also from other than me. I do not fully understand why you changed linkage of some innodb funtions to "C", can this be replaced by using correct types (using cast when necessary) on callers ?
            Hide
            johnnyrotten73 Chris added a comment - - edited

            i changed sync0arr.cc and the error changed also.

            150923 12:01:02 mysqld_safe mysqld from pid file /var/run/mysqld/mysqld.pid ended
            150923 12:06:28 mysqld_safe Starting mysqld daemon with databases from /mysql
            150923 12:06:28 [Note] /usr/local/mariadb/bin/mysqld (mysqld 10.0.21-MariaDB) starting as process 8257558 ...
            150923 12:06:28 [Note] InnoDB: Using mutexes to ref count buffer pool pages
            150923 12:06:28 [Note] InnoDB: The InnoDB memory heap is disabled
            150923 12:06:28 [Note] InnoDB: Mutexes and rw_locks use GCC atomic builtins
            150923 12:06:28 [Note] InnoDB: GCC builtin __sync_synchronize() is used for memory barrier
            150923 12:06:28 [Note] InnoDB: Compressed tables use zlib 1.2.3
            150923 12:06:28 mysqld_safe mysqld from pid file /var/run/mysqld/mysqld.pid ended
            /usr/local/mariadb/bin/mysqld_safe[27]: 8257688 Memory fault
            

            the reason i changed some functions to "C" linkage,is because we got mixed up symbol resolutions between C and C++, which resulted in the mentioned "unresolved symbols" error.

            what to you mean with "git pull request from your changes"? i do not use any repository here.

            Show
            johnnyrotten73 Chris added a comment - - edited i changed sync0arr.cc and the error changed also. 150923 12:01:02 mysqld_safe mysqld from pid file / var /run/mysqld/mysqld.pid ended 150923 12:06:28 mysqld_safe Starting mysqld daemon with databases from /mysql 150923 12:06:28 [Note] /usr/local/mariadb/bin/mysqld (mysqld 10.0.21-MariaDB) starting as process 8257558 ... 150923 12:06:28 [Note] InnoDB: Using mutexes to ref count buffer pool pages 150923 12:06:28 [Note] InnoDB: The InnoDB memory heap is disabled 150923 12:06:28 [Note] InnoDB: Mutexes and rw_locks use GCC atomic builtins 150923 12:06:28 [Note] InnoDB: GCC builtin __sync_synchronize() is used for memory barrier 150923 12:06:28 [Note] InnoDB: Compressed tables use zlib 1.2.3 150923 12:06:28 mysqld_safe mysqld from pid file / var /run/mysqld/mysqld.pid ended /usr/local/mariadb/bin/mysqld_safe[27]: 8257688 Memory fault the reason i changed some functions to "C" linkage,is because we got mixed up symbol resolutions between C and C++, which resulted in the mentioned "unresolved symbols" error. what to you mean with "git pull request from your changes"? i do not use any repository here.
            Hide
            jplindst Jan Lindström added a comment -

            Changing the linkage of these InnoDB API callbacks would break existing applications using this API, you would need to add something for AIX in addition what is on api0api.h and in line typedef void (*ib_cb_t)(void); Correct, for git pull request you need to have branch from git.

            Show
            jplindst Jan Lindström added a comment - Changing the linkage of these InnoDB API callbacks would break existing applications using this API, you would need to add something for AIX in addition what is on api0api.h and in line typedef void (*ib_cb_t)(void); Correct, for git pull request you need to have branch from git.
            Hide
            johnnyrotten73 Chris added a comment -

            github repo created, just in case.

            https://github.com/flynn1973/mariadb-aix

            Show
            johnnyrotten73 Chris added a comment - github repo created, just in case. https://github.com/flynn1973/mariadb-aix
            Hide
            johnnyrotten73 Chris added a comment -

            i narrowed down the linking problem, to a c++ name mangling inconsisteny. with a corresponding compiler option (switching to a very old name mangling pattern), the innodb code compiles without modification.

            any hints what could be a possible reason for the "Failing assertion: sync_wait_array == NULL"?

            Show
            johnnyrotten73 Chris added a comment - i narrowed down the linking problem, to a c++ name mangling inconsisteny. with a corresponding compiler option (switching to a very old name mangling pattern), the innodb code compiles without modification. any hints what could be a possible reason for the "Failing assertion: sync_wait_array == NULL"?
            Hide
            jplindst Jan Lindström added a comment -

            Hi, I think that on your case compiler does not initialize global variables as expected.

            Show
            jplindst Jan Lindström added a comment - Hi, I think that on your case compiler does not initialize global variables as expected.

              People

              • Assignee:
                jplindst Jan Lindström
                Reporter:
                johnnyrotten73 Chris
              • Votes:
                0 Vote for this issue
                Watchers:
                3 Start watching this issue

                Dates

                • Created:
                  Updated: