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
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
0
Comments
-
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,
Bernard0 -
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,
Markus0