5 Replies Latest reply: Apr 20, 2012 6:47 PM by Steve.Clamage-Oracle RSS

    Compiling C++ application for Solaris 5.8

    931624
      Hi,

      How can we build/compile C++ application to be deployed on Solaris 5.8 OS? Which compiler should be used for the same?
      We are exploring how this can be done. Request your help to identify the mechanism in which we can achieve this.

      We explored following but it didnt worked -

      - Using Studio 12 we build application on Solaris 10 but it is giving error at execution time
      ld.so.1: ./distmgr: fatal: libCrun.so.1: version `SUNW_1.5' not found (required by file ./distmgr)

      Questions -

      - Is Studio 12 supported on Solaris 5.8?
      - If ready made binaries are not available of Studio 12 then can be build this for 5.8? IS the source code of Studio 12 available?
      - Can Studio 12 on Solaris 10 cross complie for OS Solaris 5.8

      Thanks and Regards,
      vinit.
        • 1. Re: Compiling C++ application for Solaris 5.8
          marc1842fr
          928621 wrote:
          How can we build/compile C++ application to be deployed on Solaris 5.8 OS?
          You know that version of the OS is dead, right?
          - Is Studio 12 supported on Solaris 5.8?
          Probably. 12.1 might be as well (have to check). 12.3 certainly isn't.
          IS the source code of Studio 12 available?
          No.
          - Can Studio 12 on Solaris 10 cross complie for OS Solaris 5.8
          No. Well, one can manage it, but only people who know what they are doing.

          If you want solaris 8 binaries, you'll have to compile them on solaris 8 (which you can install in a zone on solaris 10).
          • 2. Re: Compiling C++ application for Solaris 5.8
            Steve.Clamage-Oracle
            Adding to Marc's comments:

            Solaris 8 is long past its End Of Service Life, meaning no support is available for it.

            The most recent version of Studio that can run on or generate code for Solaris 8 is Studio 11, which was released in 2005. It is no longer available, and little support (if any) is available for it, either.

            Generating code to run on Solaris 8 by using a more recent compiler and compiling on a later version of Solaris is not a realistic possibility.

            By far, your best course of action is to upgrade the Solaris 8 system(s) to Solaris 10 or 11. You can then use recent versions of Studio.

            Here is a chart of Studio releases showing when they were released and what Solaris versions they support.
            http://www.oracle.com/technetwork/server-storage/solarisstudio/training/index-jsp-141991.html

            If upgrading the OS is not possible, you could explore with Oracle Service whether you could get the obsolete sofware via a service contract. Try http://myoraclesupport.oracle.com
            • 3. Re: Compiling C++ application for Solaris 5.8
              User12616316-Oracle
              As Steve Clamage noted, the last version of Sun Studio that supported Solaris 8 was Sun Studio 11. I was told by my management that if you have (or purchase) a support contract for Oracle Solaris Studio, you will be able to download a copy of Sun Studio 11 from the Archive link on the Oracle Solaris Studio Support page. I do not have a support contract, so I have not been able to try to download it myself. The latest version of Oracle Solaris Studio available for download at no cost; older versions are available for download for some years after being replaced by newer versions, but require a support contract.

              Robert Corbett
              • 4. Re: Compiling C++ application for Solaris 5.8
                931624
                Thank you all for the information. I have got the Sun Studio 11 through Oracle support contract. We are trying to build with it but facing some compilation issues which we need to resolve. Also oracle has provided a demo license file for Sun Workshop 6 update 2 which might further help us.
                • 5. Re: Compiling C++ application for Solaris 5.8
                  Steve.Clamage-Oracle
                  I strongly advise against using WS62. Studio 11 is superior to WS6u2 by any reasonable measure. Valid source code that compiled with older compilers should continue to work correctly with later compilers. Any problems are usually due to invalid code that was incorrectly accepted by the earlier compiler. In some cases we provide compiler options to reproduce the old compiler behavior, but it is better to fix the code so that it is valid and has well-defined semantics.

                  Consider also whether you would wind up mixing binaries built by WS6u2 with binaries built by a later compiler. If so, you must use the later (or latest) compiler involved to perform any link steps. That is, steps that create shared libraries or executable programs.

                  We strive to maintain forward binary compatibility, meaning old binaries can be linked into new programs, but there are some issues with C++ compilers older than Studio 7 that can cause compatibility problems when the code is mixed with C++ code from newer compilers. In the worst case, a multi-threaded program can compile and link, but fail at run time, depending on compilation options used with WS6u2. It is safer to rebuild such old binaries using the newer compiler. Binaries created by Studio 7 or later compilers should not have that problem.

                  I'm sorry to have to list so many caveats, but continuing to use obsolete software creates its own problems. We bring out new versions and retire old software for good reasons.