-----Original Message----- From: Maria-developers [mailto:maria-developers- bounces+wlad=montyprogram.com@lists.launchpad.net] On Behalf Of Frank Fegert Sent: Sonntag, 23. Juni 2013 12:13 To: maria-developers@lists.launchpad.net Subject: [Maria-developers] 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?
I think that the realistic options you have are : 1. Either you have an AIX enthusiast, a knowledgeable guy who regularly supplies team with AIX related patches (that do not break any other platforms;)). Or 2. You provide a machine for the Buildbot, and sponsor the project (the popularity of AIX is IMO too low, to support it for free). It is my personal opinion, not an official position.
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?
To me , it looks like a sound alternative for AIX environment would be using IO completion ports, the AIX port of Windows API's. Native_event would be OVERLAPPED * Io_port_create, io_port_associate_fd map to CreateIoCompletionPort () io_poll_start_read is ReadFile(), with OVERLAPPED*, 0 bytes length read io_poll_wait is GetQueuedCompletionStatus() io_port_disassociate() cannot be implemented, but it is only used in rare case where thread_pool_size is being changed at runtime. If you do not want to mess with it (you said your C-fu is weak), I attached a patch with dummy implementation of threadpool required methods, it should just make this thing compile, threadpool won't be usable. I did not test it. Wlad PS. Performance schema unit tests should either be disabled or link with sql library (TARGET_LINK_LIBRARIES sql), I gather this from the error output you sent.