Home Help Center

Solaris 8 (SPARC) or Solaris 10 x86 support?

Ian JamesIan James Member Ian JamesOrganization: Deutsche BankProject: Equities IT
Hi, im evaluating Ice, particuarly the grid. It looks great, however our environments are not on the platform list for C++:
1) Solaris 8, SPARC
CC: Sun WorkShop 6 update 2 C++ 5.3 Patch 111685-20 2004/03/1
2) Solaris 10, x86 64

We started to hit some linking issues compiling our c++ clients on the solaris 8 box (libbz2 for starters); can anyone give me an idea on what effort/steps is required on this platform if they have done this before? Would upgrading to 5.8 solve our issues or is there more work involved if we do that?

Also, are there any issues building/running Solaris 10 x86 as oppose to the sparc version that we should be aware of if we use CC5.8?

Many thanks

Comments

  • bernardbernard Jupiter, FLAdministrators, ZeroC Staff Bernard NormierOrganization: ZeroC, Inc.Project: Ice ZeroC Staff
    Hi Ian,

    We've never tried Ice on Solaris 8; however I think it should be easy to port as long as you:
    - switch to Sun CC 5.8 (Studio 11); we used to support CC 5.3 but dropped it a while ago. I am sure upgrading is much easier than working-around the CC 5.3 bugs.
    - install /dev/random and /dev/urandom on your system (Solaris 8 patch 112438).

    Although Solaris 10/x86_64/CC 5.8 is not currently a supported combination, I believe it will build and work straight out of the source distribution. The necessary fixes were contributed some ago by Markus Bernhardt. And you may want to avoid CC 5.9 for now (see Markus posts).

    Best regards,
    Bernard
  • Ian JamesIan James Member Ian JamesOrganization: Deutsche BankProject: Equities IT
    Thanks Bernard, i have tried to compile up the source for solaris 10, x86. I wanted to use the g++ compiler (by removing the CC setting in INSTALL.SunOS) that was on this box (no CC installed as yet), and it works ok for hte first few files and then seems to revert to cc:

    gmake[1]: Leaving directory `/export/home/sor/Ice-3.2.0/config'
    making all in src
    gmake[1]: Entering directory `/export/home/sor/Ice-3.2.0/src'
    making all in IceUtil
    gmake[2]: Entering directory `/export/home/sor/Ice-3.2.0/src/IceUtil'
    g++ -c -I../../include -DICE_UTIL_API_EXPORTS -I.. -ftemplate-depth-128 -Wall -D_REENTRANT -fPIC -g ArgVector.cpp
    g++ -c -I../../include -DICE_UTIL_API_EXPORTS -I.. -ftemplate-depth-128 -Wall -D_REENTRANT -fPIC -g Base64.cpp
    g++ -c -I../../include -DICE_UTIL_API_EXPORTS -I.. -ftemplate-depth-128 -Wall -D_REENTRANT -fPIC -g Cond.cpp
    g++ -c -I../../include -DICE_UTIL_API_EXPORTS -I.. -ftemplate-depth-128 -Wall -D_REENTRANT -fPIC -g ConvertUTF.cpp
    g++ -c -I../../include -DICE_UTIL_API_EXPORTS -I.. -ftemplate-depth-128 -Wall -D_REENTRANT -fPIC -g CountDownLatch.cpp
    g++ -c -I../../include -DICE_UTIL_API_EXPORTS -I.. -ftemplate-depth-128 -Wall -D_REENTRANT -fPIC -g CtrlCHandler.cpp
    g++ -c -I../../include -DICE_UTIL_API_EXPORTS -I.. -ftemplate-depth-128 -Wall -D_REENTRANT -fPIC -g Exception.cpp
    g++ -c -I../../include -DICE_UTIL_API_EXPORTS -I.. -ftemplate-depth-128 -Wall -D_REENTRANT -fPIC -g Shared.cpp
    g++ -c -I../../include -DICE_UTIL_API_EXPORTS -I.. -ftemplate-depth-128 -Wall -D_REENTRANT -fPIC -g InputUtil.cpp
    g++ -c -I../../include -DICE_UTIL_API_EXPORTS -I.. -ftemplate-depth-128 -Wall -D_REENTRANT -fPIC -g MD5.cpp
    g++ -c -I../../include -DICE_UTIL_API_EXPORTS -I.. -ftemplate-depth-128 -Wall -D_REENTRANT -fPIC -g MD5I.cpp
    g++ -c -I../../include -DICE_UTIL_API_EXPORTS -I.. -ftemplate-depth-128 -Wall -D_REENTRANT -fPIC -g Options.cpp
    g++ -c -I../../include -DICE_UTIL_API_EXPORTS -I.. -ftemplate-depth-128 -Wall -D_REENTRANT -fPIC -g OutputUtil.cpp
    g++ -c -I../../include -DICE_UTIL_API_EXPORTS -I.. -ftemplate-depth-128 -Wall -D_REENTRANT -fPIC -g Random.cpp
    g++ -c -I../../include -DICE_UTIL_API_EXPORTS -I.. -ftemplate-depth-128 -Wall -D_REENTRANT -fPIC -g RWRecMutex.cpp
    g++ -c -I../../include -DICE_UTIL_API_EXPORTS -I.. -ftemplate-depth-128 -Wall -D_REENTRANT -fPIC -g RecMutex.cpp
    g++ -c -I../../include -DICE_UTIL_API_EXPORTS -I.. -ftemplate-depth-128 -Wall -D_REENTRANT -fPIC -g StaticMutex.cpp
    g++ -c -I../../include -DICE_UTIL_API_EXPORTS -I.. -ftemplate-depth-128 -Wall -D_REENTRANT -fPIC -g StringUtil.cpp
    g++ -c -I../../include -DICE_UTIL_API_EXPORTS -I.. -ftemplate-depth-128 -Wall -D_REENTRANT -fPIC -g Thread.cpp
    g++ -c -I../../include -DICE_UTIL_API_EXPORTS -I.. -ftemplate-depth-128 -Wall -D_REENTRANT -fPIC -g ThreadException.cpp
    g++ -c -I../../include -DICE_UTIL_API_EXPORTS -I.. -ftemplate-depth-128 -Wall -D_REENTRANT -fPIC -g Time.cpp
    g++ -c -I../../include -DICE_UTIL_API_EXPORTS -I.. -ftemplate-depth-128 -Wall -D_REENTRANT -fPIC -g UUID.cpp
    g++ -c -I../../include -DICE_UTIL_API_EXPORTS -I.. -ftemplate-depth-128 -Wall -D_REENTRANT -fPIC -g Unicode.cpp
    rm -f ../../lib/libIceUtil.so.3.2.0
    g++ -shared -ftemplate-depth-128 -Wall -D_REENTRANT -fPIC -g -L../../lib -o ../../lib/libIceUtil.so.3.2.0 -h libIceUtil.so.32 ArgVector.o Base64.o Cond.o ConvertUTF.o CountDownLatch.o CtrlCHandler.o Exception.o Shared.o InputUtil.o MD5.o MD5I.o Options.o OutputUtil.o Random.o RWRecMutex.o RecMutex.o StaticMutex.o StringUtil.o Thread.o ThreadException.o Time.o UUID.o Unicode.o -lpthread -lrt
    rm -f ../../lib/libIceUtil.so.32
    ln -s libIceUtil.so.3.2.0 ../../lib/libIceUtil.so.32
    rm -f ../../lib/libIceUtil.so
    ln -s libIceUtil.so.32 ../../lib/libIceUtil.so
    gmake[2]: Leaving directory `/export/home/sor/Ice-3.2.0/src/IceUtil'
    making all in icecpp
    gmake[2]: Entering directory `/export/home/sor/Ice-3.2.0/src/icecpp'
    cc -c -I../../include -I. -DPREFIX=\"\" cccp.c
    gmake[2]: cc: Command not found
    gmake[2]: *** [cccp.o] Error 127
    gmake[2]: Leaving directory `/export/home/sor/Ice-3.2.0/src/icecpp'
    gmake[1]: *** [all] Error 1
    gmake[1]: Leaving directory `/export/home/sor/Ice-3.2.0/src'
    gmake: *** [all] Error 1


    on another box i get a lot further but then hit a different error:

    gmake[2]: Entering directory `/export/home/sor/shunil/Ice-3.2.0/src/Ice'
    rm -f ../../lib/libIce.so.3.2.0
    CC -G -R /usr/sfw/lib -z text -mt +p -features=tmplife -xldscope=hidden +w -erroff=hidef,wvarhidenmem,wvarhidemem -KPIC -g -L../../lib -o ../../lib/libIce.so.3.2.0 -h libIce.so.32 Acceptor.o Application.o Buffer.o BasicStream.o BuiltinSequences.o CommunicatorI.o Communicator.o ConnectionFactory.o ConnectionI.o ConnectionMonitor.o Connection.o Connector.o Current.o DefaultsAndOverrides.o Direct.o DynamicLibrary.o EndpointFactoryManager.o EndpointFactory.o Endpoint.o EndpointI.o EventHandler.o Exception.o FacetMap.o FactoryTableDef.o FactoryTable.o GC.o Identity.o IdentityUtil.o ImplicitContextI.o ImplicitContext.o IncomingAsync.o Incoming.o Initialize.o Instance.o LocalException.o LocalObject.o LocatorInfo.o Locator.o LoggerI.o Logger.o LoggerUtil.o Network.o ObjectAdapterFactory.o ObjectAdapterI.o ObjectAdapter.o ObjectFactoryManager.o ObjectFactory.o Object.o OutgoingAsync.o Outgoing.o PluginManagerI.o Plugin.o Process.o PropertiesI.o Properties.o PropertyNames.o Protocol.o ProtocolPluginFacade.o ProxyFactory.o Proxy.o ReferenceFactory.o Reference.o RouterInfo.o Router.o ServantLocator.o ServantManager.o Service.o SliceChecksumDict.o SliceChecksums.o Stats.o StreamI.o Stream.o StringConverter.o SysLoggerI.o TcpAcceptor.o TcpConnector.o TcpEndpointI.o TcpTransceiver.o ThreadPool.o TraceLevels.o TraceUtil.o Transceiver.o UdpEndpointI.o UdpTransceiver.o UnknownEndpointI.o -lIceUtil -L/export/home/sor/shunil/bzip/lib -lbz2 -ldl -lsocket
    Text relocation remains referenced
    against symbol offset in file
    <unknown> 0x4 /export/home/sor/shunil/bzip/lib/libbz2.a(bzlib.o)
    <unknown> 0x1c /export/home/sor/shunil/bzip/lib/libbz2.a(bzlib.o)
    <unknown> 0x4d /export/home/sor/shunil/bzip/lib/libbz2.a(bzlib.o)
    default_bzalloc 0x175 /export/home/sor/shunil/bzip/lib/libbz2.a(bzlib.o)
    ...
    lots more of these
    ...

    ld: fatal: relocations remain against allocatable but non-writable sections
    gmake[2]: *** [../../lib/libIce.so.3.2.0] Error 1
    gmake[2]: Leaving directory `/export/home/sor/shunil/Ice-3.2.0/src/Ice'
    gmake[1]: *** [all] Error 1
    gmake[1]: Leaving directory `/export/home/sor/shunil/Ice-3.2.0/src'
    gmake: *** [all] Error 1


    any ideas or hints?
  • bernardbernard Jupiter, FLAdministrators, ZeroC Staff Bernard NormierOrganization: ZeroC, Inc.Project: Ice ZeroC Staff
    Hi Ian,

    In general, I would recommend to build with CC 5.8 -- that's what we use on SPARC and that's the compiler used by Markus, so it's likely Ice will build and run well with this compiler on Solaris 10 x86_64.

    You can download CC 5.8 (Sun Studio 11) from Sun Studio Developer Package Updates. (It's not just an eval, it's a free unrestricted license).

    Now for your build failure:
    UnknownEndpointI.o -lIceUtil -L/export/home/sor/shunil/bzip/lib -lbz2 -ldl -lsocket
    Text relocation remains referenced
    against symbol offset in file
    <unknown> 0x4 /export/home/sor/shunil/bzip/lib/libbz2.a(bzlib.o)
    <unknown> 0x1c /export/home/sor/shunil/bzip/lib/libbz2.a(bzlib.o)
    <unknown> 0x4d /export/home/sor/shunil/bzip/lib/libbz2.a(bzlib.o)
    default_bzalloc 0x175 /export/home/sor/shunil/bzip/lib/libbz2.a(bzlib.o)

    It looks like you're trying to link with your own static-only libbz2 library. You should use instead the Solaris libbz2 shared library (comes with Solaris, installed in /usr/lib on SPARC).

    Best regards,
    Bernard
Sign In or Register to comment.