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:
- agent files
- make files
- cpu dependent files
- os dependent files
- os_cpu dependent files
- 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.
- agent files
BSDPort hotspot shared changes, agent
BSDPort jdk7 hotspot changes from linux, agent - 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 - 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 - 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 - os_cpu dependent files
Note that there are no shared files here:
BSDPort jdk7 hotspot changes from linux, os_cpu - shared files
BSDPort hotspot shared changes, shared
The shared file changes fall into three categories:- The addition of os and os_cpu includes for bsd.
- 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.
- 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