package/openjdk: new package
authorAdam Duskett <Aduskett@gmail.com>
Fri, 15 Mar 2019 20:52:31 +0000 (16:52 -0400)
committerThomas Petazzoni <thomas.petazzoni@bootlin.com>
Sun, 17 Mar 2019 12:49:35 +0000 (13:49 +0100)
commit5366b8f734fe7aff7e95c1f92627265c5a75becc
tree0567987e1411fd9d2ffabf984809fc40b02a01cd
parent6f28ce5322259b563c8a0f1056c38aab2d9ad8a2
package/openjdk: new package

OpenJDK is a free and open-source implementation of the Java Platform.
This package provides the option to build a client or a server JVM
interpreter.

The default option is the server option, as that is what the majority
of users use. This JVM interpreter loads more slowly, putting more
effort into JIT compilations to yield higher performance.

Unlike most autotools packages, OpenJDK is exceptionally different and
has many quirks, some of which are below:

- X11, alsa, and cups are required to build Java, even if it's a headless build.
  See
  http://hg.openjdk.java.net/jdk10/jdk10/raw-file/tip/common/doc/building.html#external-library-requirements
  for more information.

- host-zip is needed for the zip executable.

- There is no autogen.sh file, instead, a user must call "./configure
  autogen."

- OpenJDK ignores some variables unless passed via the environment.
  These variables are: PATH, LD, CC, CXX, and CPP.

- OpenJDK defaults ld to the ld binary but passes -Xlinker and -z as
  arguments during the linking process, which causes linking failures.
  To fix this issue, ld is set to gcc.

- Make -jn is unsupported. Instead, one must use the "--with-jobs="
  configure option, and use $(MAKE1).

Signed-off-by: Adam Duskett <Aduskett@gmail.com>
[Thomas:
 - drop explanations about CC, LD, CXX, etc. be set to their "actual
   binaries" instead of ccache: TARGET_CC/TARGET_LD/TARGET_CXX point
   to the compiler wrapper, so the usage of ccache is hidden
 - make sure at least one of the variants is enabled in Config.in
 - drop the submenu for variant selection
 - use system zlib instead of the bundled one. This works fine when
   BUILD_SYSROOT_CFLAGS and BUILD_SYSROOT_LDFLAGS are passed
 - fix minor nits in the Config.in comments]
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
DEVELOPERS
package/Config.in
package/openjdk/Config.in [new file with mode: 0644]
package/openjdk/openjdk.hash [new file with mode: 0644]
package/openjdk/openjdk.mk [new file with mode: 0644]