← Back to team overview

maria-developers team mailing list archive

Build and/or support of MariaDB on AIX

 

Hello all,

i'm currently running MySQL 5.1.62 on IBM Power LPARs with AIX 6.1. I'll
spare you the discussion of why AIX and not Linux and will just say "it
is what it is ATM" ;-) Anyhow, with things proceeding as they are, i guess
chances are that Oracle and IBM are not going to get any more friendly
with each other, so i'm looking for an alternative way to move forward.
That being said, i'd like to get an idea of the general feeling around
the MariaDB development team on the support of non-(Linux|*BSD|Windows)
platforms. Are there currently any plans? Would you be willing to invest
some time in helping to get MariaDB running on AIX?

Right now, i can successfully build stock MySQL 5.1.70 with some minor
patches and stock MySQL 5.5.32 with some minor patches and the option
"DWITHOUT_PERFSCHEMA_STORAGE_ENGINE=ON". With performance schema enabled
the build fails at linking the unittests in "storage/perfschema/unittest/",
see below for a full error output. The MariaDB 5.5.31 build does currently
not even go that far, if fails earlier on the threadpool code, see below.
Unfortunately my C/C++-fu is not strong enough to determine what might
be considered a sound alternative to the epoll/kevent/port_event calls
on AIX to do an alteration like the one in MDEV-4174. Can someone please
help me out here?

My build environment:
Compiler:
  IBM XL C/C++ for AIX, V11.1 (5724-X13)
  Version: 11.01.0000.0009
AIX oslevel: 6100-08-01-1245

Thanks & best regards,

    Frank Fegert


## Begin: MariaDB 5.5.31 ##############################################
...
[ 37%] Building CXX object sql/CMakeFiles/sql.dir/threadpool_unix.cc.o
cd /home/user/rpmbuild/tmp/mariadb-5.5.31/build-mysql/sql && /usr/vacpp/bin/xlC_r  -+ -DHAVE_CONFIG_H -DHAVE_EVENT_SCHEDULER -DHAVE_OPENSSL -DHAVE_POOL_OF_THREADS -DMYSQL_SERVER -ma -O2 -qlanglvl=extc99 -qstrict -qoptimize=2 -qmaxmem=16384 -DSYSV -D_AIX -D_AIX32 -D_AIX41 -D_AIX43 -D_AIX51 -D_AIX52 -D_AIX53 -D_AIX61 -D_ALL_SOURCE -DFUNCPROTO=15 -I/opt/freeware/include -qthreaded -qhalt=e -qstaticinline -g -DDBUG_OFF -I/home/user/rpmbuild/tmp/mariadb-5.5.31/build-mysql/include -I/home/user/rpmbuild/tmp/mariadb-5.5.31/include -I/home/user/rpmbuild/tmp/mariadb-5.5.31/sql -I/home/user/rpmbuild/tmp/mariadb-5.5.31/regex -I/home/user/rpmbuild/tmp/mariadb-5.5.31/build-mysql/sql    -o CMakeFiles/sql.dir/threadpool_unix.cc.o -c /home/user/rpmbuild/tmp/mariadb-5.5.31/sql/threadpool_unix.cc
"/home/user/rpmbuild/tmp/mariadb-5.5.31/sql/threadpool_unix.cc", line 39.2: 1540-0859 (S) #error directive: threadpool is not available on this platform.
gmake[2]: *** [sql/CMakeFiles/sql.dir/threadpool_unix.cc.o] Error 1
gmake[2]: Leaving directory `/home/user/rpmbuild/tmp/mariadb-5.5.31/build-mysql'
gmake[1]: *** [sql/CMakeFiles/sql.dir/all] Error 2
gmake[1]: Leaving directory `/home/user/rpmbuild/tmp/mariadb-5.5.31/build-mysql'
gmake: *** [all] Error 2
## End: MariaDB 5.5.31 ################################################

## Begin: MySQL 5.5.32 ################################################
...
Linking CXX executable pfs-t
cd /home/user/rpmbuild/tmp/mysql-5.5.32/build-mysql/storage/perfschema/unittest && /opt/freeware/bin/cmake -E cmake_link_script CMakeFiles/pfs-t.dir/lin
k.txt --verbose=1
/usr/vacpp/bin/xlC_r   -ma -O2 -qlanglvl=extc99 -qstrict -qoptimize=2 -qmaxmem=16384 -DSYSV -D_AIX -D_AIX32 -D_AIX41 -D_AIX43 -D_AIX51 -D_AIX52 -D_AIX53 -D_A
IX61 -D_ALL_SOURCE -DFUNCPROTO=15 -I/opt/freeware/include -qthreaded -qhalt=e -qstaticinline     -L/opt/freeware/lib/mysql -L/opt/freeware/lib -Wl,-bmaxdata:0x80000000  CMakeFiles/pfs-t.dir/pfs-t.cc.o  -o pfs-t -Wl,-brtl,-bnoipath,-bexpfull ../../../unittest/mytap/libmytap.a ../libperfschema.a ../../../mysys/libmysys.a ../../../dbug/libdbug.a ../../../mysys/libmysys.a ../../../dbug/libdbug.a ../../../strings/libstrings.a -lz -lm -Wl,-blibpath:/opt/freeware/lib:/usr/lib:/lib
ld: 0711-317 ERROR: Undefined symbol: .MDL_request::init(MDL_key::enum_mdl_namespace,const char*,const char*,enum_mdl_type,enum_mdl_duration)
ld: 0711-317 ERROR: Undefined symbol: .LEX::LEX()
ld: 0711-317 ERROR: Undefined symbol: .lex_start(THD*)
ld: 0711-317 ERROR: Undefined symbol: Virtual table for class "DML_prelocking_strategy": Some possible causes are: first non-inline virtual function in "DML_prelocking_strategy" is not defined; or the class is a template instantiation and an explicit instantiation definition of the class is missing.
ld: 0711-317 ERROR: Undefined symbol: .open_and_lock_tables(THD*,TABLE_LIST*,bool,unsigned int,Prelocking_strategy*)
ld: 0711-317 ERROR: Undefined symbol: .Table_check_intact::check(TABLE*,const st_table_field_def*)
ld: 0711-317 ERROR: Undefined symbol: .close_thread_tables(THD*)
ld: 0711-317 ERROR: Undefined symbol: .lex_end(LEX*)
ld: 0711-317 ERROR: Undefined symbol: .Query_tables_list::destroy_query_tables_list()
ld: 0711-317 ERROR: Undefined symbol: .plugin_unlock_list(THD*,st_plugin_int**,unsigned int)
ld: 0711-317 ERROR: Undefined symbol: THR_THD
ld: 0711-317 ERROR: Undefined symbol: .sql_print_error(const char*,...)
ld: 0711-317 ERROR: Undefined symbol: Virtual table for class "st_select_lex_node": Some possible causes are: first non-inline virtual function in "st_select_lex_node" is not defined; or the class is a template instantiation and an explicit instantiation definition of the class is missing.
ld: 0711-317 ERROR: Undefined symbol: lower_case_table_names
ld: 0711-317 ERROR: Undefined symbol: .Field_enum::store_type(unsigned long long)
ld: 0711-317 ERROR: Undefined symbol: .ACL_internal_schema_registry::register_schema(const st_mysql_lex_string*,const ACL_internal_schema_access*)
ld: 0711-317 ERROR: Undefined symbol: handler::clone(const char*,st_mem_root*)
ld: 0711-317 ERROR: Undefined symbol: handler::get_error_message(int,String*)
ld: 0711-317 ERROR: Undefined symbol: handler::column_bitmaps_signal()
ld: 0711-317 ERROR: Undefined symbol: handler::index_read_idx_map(unsigned char*,unsigned int,const unsigned char*,unsigned long,ha_rkey_function)
ld: 0711-317 ERROR: Undefined symbol: handler::index_next_same(unsigned char*,const unsigned char*,unsigned int)
ld: 0711-317 ERROR: Undefined symbol: handler::read_multi_range_first(st_key_multi_range**,st_key_multi_range*,unsigned int,bool,st_handler_buffer*)
ld: 0711-317 ERROR: Undefined symbol: handler::read_multi_range_next(st_key_multi_range**)
ld: 0711-317 ERROR: Undefined symbol: handler::read_range_first(const st_key_range*,const st_key_range*,bool,bool)
ld: 0711-317 ERROR: Undefined symbol: handler::read_range_next()
ld: 0711-317 ERROR: Undefined symbol: handler::read_first_row(unsigned char*,unsigned int)
ld: 0711-317 ERROR: Undefined symbol: handler::get_dynamic_partition_info(PARTITION_STATS*,unsigned int)
ld: 0711-317 ERROR: Undefined symbol: handler::get_auto_increment(unsigned long long,unsigned long long,unsigned long long,unsigned long long*,unsigned long long*)
ld: 0711-317 ERROR: Undefined symbol: handler::drop_table(const char*)
ld: 0711-317 ERROR: Undefined symbol: Virtual table for class "handler": Some possible causes are: first non-inline virtual function in "handler" is not defined; or the class is a template instantiation and an explicit instantiation definition of the class is missing.
ld: 0711-317 ERROR: Undefined symbol: .handler::ha_table_share_psi(const TABLE_SHARE*) const
ld: 0711-317 ERROR: Undefined symbol: .handler::ha_statistic_increment(unsigned long system_status_var::*) const
ld: 0711-317 ERROR: Undefined symbol: .handler::print_error(int,int)
ld: 0711-317 ERROR: Undefined symbol: key_map_empty
ld: 0711-317 ERROR: Undefined symbol: .calculate_key_len(TABLE*,unsigned int,const unsigned char*,unsigned long)
ld: 0711-345 Use the -bloadmap or -bnoquiet option to obtain more information.
gmake[2]: *** [storage/perfschema/unittest/pfs-t] Error 8
gmake[2]: Leaving directory `/home/user/rpmbuild/tmp/mysql-5.5.32/build-mysql'
gmake[1]: *** [storage/perfschema/unittest/CMakeFiles/pfs-t.dir/all] Error 2
gmake[1]: Leaving directory `/home/user/rpmbuild/tmp/mysql-5.5.32/build-mysql'
gmake: *** [all] Error 2
###End: MySQL 5.5.32 ##################################################


Follow ups