BSDPort, Description of jdk7 changes

Skip to end of metadata
Go to start of metadata

In order to understand the BSDPort prior to its inclusion into jdk8, this page analyzes the BSDPort changes. A jdk8 patch of all changes can be found at the link below:
[BSDPort, Proposed jdk8 hotspot patch]

We consider the bsd changes in groups of files:

  1. agent files
  2. make files
  3. cpu dependent files
  4. os dependent files
  5. os_cpu dependent files
  6. shared files

While the first five file groups introduce a significant number of new files to hotspot, and while the contents of these files make up a large percentage of the bsd changes under submission, most of the contents of these files are identical to the linux files from which they were derived. Thus, these changes are best understood by examining a diff between the original linux file and the derivitive bsd file in the jdk7 builds. We present these diffs below. (Note that this is not a simple recursive diff since many of the files have the os-name encoded within the file name. See: Hotspot, script for diff of derivative os implementation

In addition, there are also a few places where the bsd port has made changes to the shared files and a few changes to files of other os ports. We call attention to these changes below.

  1. agent files
    BSDPort hotspot shared changes, agent
    BSDPort jdk7 hotspot changes from linux, agent
  2. make files
    Shared makefile changes are mostly the addition of $LIBRARY_SUFFIX:
    BSDPort hotspot shared changes, make
    BSD specific changes from the linux make implementation:
    [BSDPort jdk7 hotspot changes from linux, make]
  3. cpu dependent files
    Note that there are no os-dependent files here:
    Cpu dependent changes are mostly makefile inclusions and some type casting cleanup:
    BSDPort hotspot shared changes, cpu
  4. os dependent files
    Shared changes include a move of #define __STDC_FORMAT_MACROS from src/os/linux/vm/os_linux.cpp to src/share/vm/utilities/globalDefinitions.hpp. This might need some big-picture adjustment:
    BSDPort hotspot shared changes, os
    BSDPort hotspot jdk7 changes from linux, os
  5. os_cpu dependent files
    Note that there are no shared files here:
    BSDPort jdk7 hotspot changes from linux, os_cpu
  6. shared files
    BSDPort hotspot shared changes, shared
    The shared file changes fall into three categories:
    1. The addition of os and os_cpu includes for bsd.
    2. Modification of print format strings or types. Note that apple's compilers require a long int to be printed with "%ld" regardless of whether this long int is 32 or 64-bits wide. The assumption made by the hotspot code that "%lld" will print all 64-bit integers is not valid.
    3. Miscellaneous changes
      • a mac dynamic linking issue in src/share/vm/prims/forte.cpp
      • open bsd dynamic loading issue in src/share/vm/runtime/os.cpp
      • os naming in src/share/vm/runtime/vm_version.cpp
      • inclusion of src/share/vm/utilities/elf.hpp (with lglp licensing)
      • additions to src/share/vm/utilities/elfFile.hpp
      • dynamic library additions to src/share/vm/utilities/vmError.cpp
Enter labels to add to this page:
Please wait 
Looking for a label? Just start typing.

Sign up or Log in to add a comment or watch this page.

The individuals who post here are part of the extended Oracle community and they might not be employed or in any way formally affiliated with Oracle. The opinions expressed here are their own, are not necessarily reviewed in advance by anyone but the individual authors, and neither Oracle nor any other party necessarily agrees with them.