jdk8u from openjdk for solaris 11 support there or not?

871 views Asked by At

Here are my list of questions i want to know the answers:

  1. jdk8u built from openjdk source in Solaris 10 can be used for Solaris 11?
   Solaris 10:
    Oracle Solaris 10 8/11 s10x_u10wos_17b X86
           Assembled 23 August 2011
    Solaris studio: 12.3
    bash-3.2# isainfo -b
    64
 
    Solaris 11:
         Oracle Solaris 11.4 X86
         Assembled 26 March 2020
         # isainfo -b
         64

Some vendors like AdoptOpenJDK are giving the same JDK & JRE binaries for Solaris 10 & 11. Can i also use the same jdk build in Solaris 10 for Solaris 11?

  1. Can we build jdk8u for Solaris 11 x86. Jdk8u source code from openjdk checks the pre-requisites and it the CC and C++ compilers from Solaris studio from 12.1 to 12.4. But Solaris 11 supports Solaris studio above 12.4(developer studio) versions. Anyone have tried building it from http://hg.openjdk.java.net/jdk8u/jdk8u/.

I did give a try, several times. I've tried building in Solaris 10 and i got succeeded. But Solaris 11: 2.a) jdk8u build was not successful. and also jdk8u has a script that checks for c/c++ compiler whether its solaris studio. Its not accepting if we give --with-tools-dir as developer sutio 12.4/12.5 or 12.6 saying its not solaris studio. But i modified the script to accept these versions and able to proceed build but many compilation errors am getting. For that i've posted in different thread but not getting any replies. So i just want to know whether it can be done or not instead of banging my head. If any one tried building jdk8u from openjdk in Solaris 11, Please help me.

1

There are 1 answers

0
Andrew Henle On

Yes, compiling on Solaris 10 and running on Solaris 11 should almost certainly work. Sun and now Oracle have always provided significant compatibility guarantees with Solaris - binaries compiled on an earlier version of Solaris are guaranteed to work on later versions if certain conditions are met.

Per the Oracle Solaris Guarantee Program (bolded text mine):

Oracle Solaris is designed and tested to protect customer investments in software.

While new functionality may be introduced in new releases, Oracle Solaris is designed with continuity of binary interfaces, so applications developed on earlier releases can continue to run. This enables customers to purchase new systems or upgrade the OS on older systems and continue to run their existing applications.

Customers and Partners who have purchased Oracle Premier Support for Operating Systems can receive assistance in resolving compatibility issues identified when moving a binary application from an earlier OS release.

For developers, the OS presents an architecture-neutral API meaning that a program developed on SPARC architecture can be recompiled to run on x86, and vice-versa

See below for more details on the Binary and Source guarantees.

Oracle Solaris Binary Application Guarantee

The Oracle Solaris Binary Application Guarantee reflects Oracle's confidence in the compatibility of applications from one release of Oracle Solaris to the next and is designed to make re-qualification a thing of the past.

Binary compatibility between releases of Oracle Solaris helps protect your long-term investment in the development, training and maintenance of your applications:

A binary application built on Solaris 2.6 or later that makes use of operating system interfaces as defined in stability.5 run on subsequent releases of Oracle Solaris, including their initial releases and all updates, even if the application has not been recompiled for those latest releases.

If an application experiences a compatibility problem when running on your latest supported Oracle Solaris Operating System, support is offered as described below:

For Oracle Solaris 10

Use the integrated "appcert" utility (see the man page for appcert) to check your application. If no errors are reported but problems running the application remain, a Service Request (SR) should be opened to obtain support.

If you're running a supported copy of Solaris, if your application meets the criteria above but fails to run on a later version of Solaris, Oracle will treat that as a bug in Solaris. Note that Solaris 2.6 was released in 1997. If you have a binary built then, Oracle guarantees that it will still run on Solaris 11 today.

I haven't run appcert against the OpenJDK code base, so whether or not OpenJDK would fall under the above guarantees is unknown, but in my experience I have never seen any application compiled on Solaris 10 that failed on Solaris 11.

For the sake of comparision, here's the Red Hat Enterprise Linux 7 compatibility guide: https://access.redhat.com/articles/rhel-abi-compatibility Note that Red Hat doesn't even guarantee that they won't do things like change the LDAP API within a release.