Uploaded image for project: 'JDK'
  1. JDK
  2. JDK-8241787

JEP 381: Remove the Solaris and SPARC Ports

    Details

    • Type: JEP
    • Status: Closed
    • Priority: P4
    • Resolution: Delivered
    • Fix Version/s: 15
    • Component/s: None
    • Author:
      Mikael Vidstedt
    • JEP Type:
      Feature
    • Exposure:
      Open
    • Scope:
      Implementation
    • Discussion:
      jdk dash dev at openjdk dot java dot net
    • Effort:
      M
    • Duration:
      M
    • JEP Number:
      381

      Description

      Summary

      Remove the source code and build support for the Solaris/SPARC, Solaris/x64, and Linux/SPARC ports. These ports were deprecated for removal in JDK 14 with the express intent to remove them in a future release.

      Goals

      • Remove all source code specific to the Solaris operating system
      • Remove all source code specific to the SPARC architecture
      • Update documentation and source code comments for future releases

      Non-Goals

      It is not a goal of this JEP to change the status of the affected ports in any prior release. The earliest release to which this JEP could be targeted is JDK 15.

      Motivation

      Many projects and features currently in development such as Valhalla, Loom, and Panama require significant changes to CPU-architecture and operating-system specific code. Dropping support for the Solaris and SPARC ports will enable contributors in the OpenJDK Community to accelerate the development of new features that will move the platform forward.

      Description

      We will remove or adjust all of the Solaris- and SPARC-related code, build-system logic, and documentation.

      • Remove directories:
        • src/hotspot/cpu/sparc
        • src/hotspot/os/solaris
        • src/hotspot/os_cpu/solaris
        • src/hotspot/os_cpu/linux_sparc
        • src/hotspot/os_cpu/solaris_x86
        • src/java.base/solaris
        • src/java.desktop/solaris
        • src/jdk.attach/solaris
        • src/jdk.crypto.cryptoki/solaris
        • src/jdk.crypto.ucrypto/solaris
        • src/jdk.management/solaris
        • src/jdk.net/solaris
      • Remove or adjust C/C++ code guarded by the following preprocessor definitions and macros:
        • SPARC, __sparc__, __sparc, __sparcv9
        • SOLARIS, __solaris__
        • SPARC_ONLY, NOT_SPARC
        • SOLARIS_ONLY, NOT_SOLARIS
        • SOLARIS_MUTATOR_LIBTHREAD
        • SPARC_WORKS
      • Remove or adjust Java code that checks for Solaris or SunOS, for example:
        • System.getProperty(“os.name”).contains(“Solaris”)
        • System.getProperty(“os.name”).startsWith("SunOS")
      • Remove Solaris-specific features:
        • The OracleUcrypto provider in the jdk.crypto.ucrypto module (8234870)
        • The jdk.net.SocketFlow socket option in the jdk.net module (8234871)
      • Remove or adjust build system (automake, etc.) logic related to Solaris, SPARC, or Oracle Studio; specifically, the following variables and values:
        • OPENJDK_{BUILD,TARGET}_OS = Solaris
        • OPENJDK_{BUILD,TARGET}_CPU_ARCH = sparc
        • TOOLCHAIN_TYPE = solstudio
        • is{Build,Target}Os = solaris
        • is{Build,Target}Cpu = sparcv9
      • Remove or adjust tests only relevant to, or only executed on, Solaris or SPARC, for example:
        • jtreg tests using
          • @requires os.family == "solaris"
          • @requires os.arch == "sparc"
          • @requires os.arch == "sparcv9"
          • @requires (vm.simpleArch == "sparcv9")
          • The Platform.isSolaris() or Platform.isSparc() test library methods, and the methods themselves
      • Clean up problem lists to remove any references to solaris or SPARC
      • Adjust comments in the source code referring to Solaris or SPARC, with care
        • In many cases the comments can simply be removed, but some references to Solaris and SPARC may still be relevant even after the ports are removed
      • Remove the Solaris devkit creator scripts (under make/devkit)
      • Remove any Solaris- or SPARC-specific logic in the JIB configuration file

      Testing

      Standard testing on other platforms will ensure the correctness of changes to common and shared files.

      Risks and Assumptions

      Removing support for Solaris or SPARC could affect other in-tree ports in the very unlikely case that they rely on Solaris or SPARC source code.

        Attachments

          Issue Links

            Activity

              People

              • Assignee:
                mikael Mikael Vidstedt
                Reporter:
                mikael Mikael Vidstedt
                Owner:
                Mikael Vidstedt
                Reviewed By:
                Alan Bateman, Bradford Wetmore, Dalibor Topic, Daniel Daugherty, David Holmes, Kim Barrett, Sean Mullan, Stuart Marks
                Endorsed By:
                Mark Reinhold
              • Votes:
                0 Vote for this issue
                Watchers:
                9 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved: