Archived

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

Building ICE 3.0.1 on Solaris 10, Sun CC 5.8, AMD64

Hi,

I try to build ICE on:

- Operating System: Solaris 10
- Compiler: Sun Studio 11, Sun CC 5.8
- Architecture: AMD 64
- Machine: Sun Fire v40z

I know this is not really supported.

I have altered the config/Make.rules.SunOS to
- build for the target amd64
- use some more modern optimizer settings

Everyone interested can find my version under:
http://www.scmb.de/ice/Make.rules.SunOS

When building with 64bit support i got some warnings:

gmake[2]: Entering directory `/home/markus/workspace/Ice-3.0.1/src/Slice'
CC -c -I.. -I../../include -DSLICE_API_EXPORTS -mt +p -features=tmplife -xldscope=hidden +w -erroff=hidef -g -xarch=amd64 -KPIC Scanner.cpp
"lex.yy.c", line 1366: Warning: Conversion of 64 bit type value to "int" causes truncation.
"lex.yy.c", line 1534: Warning: Conversion of 64 bit type value to "int" causes truncation.
"lex.yy.c", line 1654: Warning: Conversion of 64 bit type value to "unsigned" causes truncation.
"lex.yy.c", line 1770: Warning: Conversion of 64 bit type value to "unsigned" causes truncation.
4 Warning(s) detected.

or:

CC -c -I.. -I../../include -DICE_API_EXPORTS -mt +p -features=tmplife -xldscope=hidden +w -erroff=hidef -g -xarch=amd64 -KPIC Network.cpp
"Network.cpp", line 1393: Warning: Conversion of 64 bit type value to "int" causes truncation.
"Network.cpp", line 1422: Warning: Conversion of 64 bit type value to "int" causes truncation.
2 Warning(s) detected.

Has anyone seen such warnings on any other 64bit platform?

Best Regards,
Markus

Comments

  • bernard
    bernard Jupiter, FL
    Hi Markus,

    I looked into the flex warnings some time ago ... nothing to worry about. Unfortunately there is no good fix; maybe the solution is to disable this warning for these generated files.

    For Network.cpp, it's not a problem either. Here is a little patch that gets rid of these two warnings:
    Index: Network.cpp
    ===================================================================
    RCS file: /home/cvsroot/ice/src/Ice/Network.cpp,v
    retrieving revision 1.82
    diff -r1.82 Network.cpp
    1393c1393
    <         int bufsize = numaddrs * sizeof(struct ifreq);
    ---
    >         int bufsize = numaddrs * static_cast<int>(sizeof(struct ifreq));
    1422c1422
    <     numaddrs = ifc.ifc_len / sizeof(struct ifreq);
    ---
    >     numaddrs = ifc.ifc_len / static_cast<int>(sizeof(struct ifreq));
    

    Best regards,
    Bernard
  • Building on my environment brought the following error:

    gmake[3]: Entering directory `/home/markus/workspace/Ice-3.0.1/src/IcePatch2'
    CC -c -I. -I.. -I../../include -DICE_PATCH2_API_EXPORTS -I/usr/kerberos/include -mt +p -features=tmplife -xldscope=hidden +w -erroff=hidef -g -xarch=amd64 -KPIC Util.cpp
    "Util.cpp", line 48: Error: Only one of a set of overloaded functions can be extern "C".
    "Util.cpp", line 101: Error: Only one of a set of overloaded functions can be extern "C".
    "Util.cpp", line 131: Warning: Conversion of 64 bit type value to "int" causes truncation.
    2 Error(s) and 1 Warning(s) detected.

    I looked into Ice-3.0.1/src/IcePatch2/Util.cpp and found:
    //
    // Sun-OS doesn't have scandir() or alphasort().
    //
    #ifdef __sun
    </snip>
    #endif

    It looks like Solaris 10 has this two functions.
    If I comment out the block the errors go away.

    Is there a way to comment this out depending on the Solaris version?
    Is there a chance this could go into the official product?

    Best regards,
    Markus