How do I compile on AIX?

I was able to get libatomic linked correctly, and now it’s throwing an ambiguous overloaded method error (using gcc 4.81). It seems something in this architecture is preventing it from automatically resolving which overload to use:

libtool: compile: g++ -DHAVE_CONFIG_H -I. -I./src -pipe -I./include -I./src -I./include -pipe -O3 -MT src/ep_la-tapconnection.lo -MD -MP -MF src/.deps/ep_la-tapconnection.Tpo -c src/tapconnection.cc -DPIC -o src/.libs/ep_la-tapconnection.o
src/tapconnection.cc: In member function ‘Item* TapProducer::getNextItem(const void*, uint16_t*, tap_event_t&, bool&)’:
src/tapconnection.cc:1875:63: error: call of overloaded ‘Item(const char*, std::basic_string::size_type, int, int, int, int, int, uint16_t)’ is ambiguous
0, 0, 0, -1, qi->getVBucketId());
^
src/tapconnection.cc:1875:63: note: candidates are:
In file included from src/queueditem.hh:6:0,
from src/ep.hh:38,
from src/ep_engine.h:6,
from src/tapconnection.cc:19:
src/item.hh:188:5: note: Item::Item(const void*, uint16_t, uint32_t, time_t, const void*, size_t, uint64_t, int64_t, uint16_t, uint64_t)
Item(const void k, uint16_t nk, const uint32_t fl, const time_t exp,
^
src/item.hh:178:5: note: Item::Item(const string&, uint32_t, time_t, const value_t&, uint64_t, int64_t, uint16_t, uint64_t)
Item(const std::string &k, const uint32_t fl, const time_t exp,
^
src/item.hh:167:5: note: Item::Item(const string&, uint32_t, time_t, const void
, size_t, uint64_t, int64_t, uint16_t)
Item(const std::string &k, const uint32_t fl, const time_t exp,
^
src/item.hh:156:5: note: Item::Item(const void*, size_t, size_t, uint32_t, time_t, uint64_t, int64_t, uint16_t)
Item(const void* k, const size_t nk, const size_t nb,
^
src/tapconnection.cc:1907:59: error: call of overloaded ‘Item(const char*, std::basic_string::size_type, int, int, int, int, int, uint16_t)’ is ambiguous
0, 0, 0, -1, qi->getVBucketId());
^
src/tapconnection.cc:1907:59: note: candidates are:
In file included from src/queueditem.hh:6:0,
from src/ep.hh:38,
from src/ep_engine.h:6,
from src/tapconnection.cc:19:
src/item.hh:188:5: note: Item::Item(const void*, uint16_t, uint32_t, time_t, const void*, size_t, uint64_t, int64_t, uint16_t, uint64_t)
Item(const void k, uint16_t nk, const uint32_t fl, const time_t exp,
^
src/item.hh:178:5: note: Item::Item(const string&, uint32_t, time_t, const value_t&, uint64_t, int64_t, uint16_t, uint64_t)
Item(const std::string &k, const uint32_t fl, const time_t exp,
^
src/item.hh:167:5: note: Item::Item(const string&, uint32_t, time_t, const void
, size_t, uint64_t, int64_t, uint16_t)
Item(const std::string &k, const uint32_t fl, const time_t exp,
^
src/item.hh:156:5: note: Item::Item(const void*, size_t, size_t, uint32_t, time_t, uint64_t, int64_t, uint16_t)
Item(const void* k, const size_t nk, const size_t nb,
^
gmake[1]: *** [src/ep_la-tapconnection.lo] Error 1
gmake[1]: Leaving directory `/couch/couchbase-server_src/ep-engine’
gmake: *** [all] Error 2