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

JEP 381: Remove the Solaris and SPARC Ports

    XMLWordPrintable

Details

    • Mikael Vidstedt
    • Feature
    • Open
    • Implementation
    • jdk dash dev at openjdk dot java dot net
    • M
    • M
    • 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

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

              Dates

                Created:
                Updated:
                Resolved: