java - openjdk for Solaris 11 的 jdk8u 支持与否?

标签 java solaris solaris-10 solaris-studio

以下是我想知道答案的问题列表:

  1. 在 Solaris 10 中从 openjdk 源构建的 jdk8u 可以用于 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

一些供应商(例如 AdoptOpenJDK)为 Solaris 10 和 11 提供相同的 JDK 和 JRE 二进制文件。我是否也可以在 Solaris 10 中为 Solaris 11 使用相同的 jdk 版本?

  • 我们可以为 Solaris 11 x86 构建 jdk8u。 openjdk 中的 Jdk8u 源代码检查先决条件,并且 Solaris studio 中的 CC 和 C++ 编译器从 12.1 到 12.4。但Solaris 11支持Solaris studio 12.4以上版本(开发者工作室)。任何人都尝试过从 http://hg.openjdk.java.net/jdk8u/jdk8u/ 构建它.
  • 我确实尝试过几次。我尝试在 Solaris 10 中进行构建并且成功了。但 Solaris 11: 2.a) jdk8u 构建不成功。 jdk8u还有一个脚本可以检查c/c++编译器是否是solaris studio。如果我们将 --with-tools-dir 作为开发人员 sutio 12.4/12.5 或 12.6 提供 --with-tools-dir 并表示它不是Solaris Studio,则它不接受。但我修改了脚本以接受这些版本并能够继续构建,但出现了许多编译错误。为此,我已在不同的线程中发布,但没有得到任何回复。所以我只想知道它是否可以完成而不是敲我的头。 如果有人尝试在 Solaris 11 中从 openjdk 构建 jdk8u,请帮助我。

    最佳答案

    是的,在 Solaris 10 上编译并在 Solaris 11 上运行几乎肯定可以工作。 Sun 和现在的 Oracle 始终提供与 Solaris 的重要兼容性保证 - 如果满足某些条件,则在早期版本的 Solaris 上编译的二进制文件保证可以在更高版本上运行。

    根据 Oracle Solaris Guarantee Program (粗体文字是我的):

    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.

    如果您运行的是受支持的 Solaris 副本,并且您的应用程序满足上述条件但无法在更高版本的 Solaris 上运行,Oracle 会将其视为 Solaris 中的错误。 Solaris 2.6 于 1997 年发布。如果您当时构建了二进制文件,Oracle 保证它今天仍然可以在 Solaris 11 上运行。

    我还没有针对 OpenJDK 代码库运行 appcert,因此 OpenJDK 是否属于上述保证尚不清楚,但根据我的经验,我从未见过在 Solaris 10 上编译的任何应用程序在 Solaris 11 上失败。

    为了进行比较,这里是 Red Hat Enterprise Linux 7 兼容性指南:https://access.redhat.com/articles/rhel-abi-compatibility请注意,红帽甚至不保证他们不会在某个版本内更改 LDAP API 之类的事情。

    关于java - openjdk for Solaris 11 的 jdk8u 支持与否?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62949051/

    相关文章:

    java - 约束巧克力

    java - 在 Java 中使用 String 创建我自己的 BigInteger

    apache - 在 Solaris 11.3 中编译 httpd-2.4.20 make 失败

    c - 关于 "gcc: unrecognized option ` -rdynamic'”的问题

    database - Solaris 10 上的 Oracle11g 安装

    java - JVM 字符串存储在内存中

    linux - 适用于 Solaris、Linux 和 HPUX 的 sed 命令

    c - 如果有人正在等待共享信号量,如何检查 C Posix 线程?

    c - 同时从多个线程调用 write() 是否安全?

    java - 如何更新 Recyclerview 中的数据?