Archived

This forum has been archived. Please start a new discussion on GitHub.

Anyone can compile ICE3.6 on AIX 7.1 with XLC 12 ?

mill888
edited September 2018 in Help Center

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

  • xdm
    xdm La Coruña, Spain

    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 using getgrset 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 an std::map instance and at member function is new in C++11 standard

  • xdm
    xdm La Coruña, Spain

    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

  • xdm
    xdm La Coruña, Spain

    I push a fix for _properties issue to our github 3.6 branch

    Regarding getgrouplist you can also try to undef this functionally for AIX, this is used only when running as root to set supplementary groups

  • it is so regretful that ICE 3.6 or 3.7 does not support AIX .
    Why not support it ?

  • 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.