Archived
Anyone can compile ICE3.6 on AIX 7.1 with XLC 12 ?
Hi;
I try to compile ICE 3.6 on AIX 7.1 with XLC 12 , and can not compile it successfuly, and I found two problems
(1) In the IceGrid/Activator.cpp, getgrouplist function is not defined anywhere of AIX 7.1 or XLC 12
(2) In the IceGrid/ServerI.cpp,
if(getPropertyAsInt(_properties.at("config"), "IceBox.UseSharedCommunicator." + service) > 0)
the _properties variable is type of PropertyDescriptorSeq, and PropertyDescriptorSeq is defined as ::std::vector< ::IceGrid::PropertyDescriptor> in include/IceGrid/Descriptor.h, so _properties is std::vector, thus _properties has no function "at" with string/char parameter, it only has function "at" with integer parameter.
So this is BUG ??
Comments
-
ICE version is 3.6.4
0 -
Hi,
Keep in mind that we don't support AIX 7.1 with XLC 12 for Ice 3.6 or Ice 3.7
(1) In the
IceGrid/Activator.cpp
getgrouplist
is not available on AIX you might want to try usinggetgrset
instead(2) In the
IceGrid/ServerI.cpp
if(getPropertyAsInt(_properties.at("config"), "IceBox.UseSharedCommunicator." + service) > 0)
This should be
if(getPropertyAsInt(_properties["config"], "IceBox.UseSharedCommunicator." + service) > 0)
_properties
is anstd::map
instance andat
member function is new in C++11 standard0 -
Note you must also remove the
const
qualifiers in_properties
declaration to be able to use operator[]
in https://github.com/zeroc-ice/ice/blob/3.7/cpp/src/IceGrid/ServerI.cpp#L369
0 -
I push a fix for
_properties
issue to our github 3.6 branchRegarding
getgrouplist
you can also try to undef this functionally for AIX, this is used only when running as root to set supplementary groups0 -
it is so regretful that ICE 3.6 or 3.7 does not support AIX .
Why not support it ?0 -
Regarding getgrouplist, I undef it, then compiled successfully on AIX 7.1 with XLC 12;
So, really don't support AIX 7.1 with XLC 12 for Ice 3.6 or Ice 3.7 ?
But I think it is not the best way that undef getgrouplist, so Can you patch it for getgrouplist on AIX ? Because I may misunderstand it, so it is better you patch it.
0