summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorWaldemar Brodkorb <wbx@openadk.org>2016-01-07 23:49:37 +0100
committerWaldemar Brodkorb <wbx@openadk.org>2016-01-07 23:49:43 +0100
commit85403888e2f91e08fce1862dcef7c9045a329af1 (patch)
tree9a7349e4c576c4fdb3be7e53efe982620957da7b
parent9ea8eabc6fda41adefa8c4aafdf8708b143005e7 (diff)
add OpenJDK8, mostly copied from Optware-NG
-rw-r--r--package/openjdk8/Makefile115
-rw-r--r--package/openjdk8/files/openadk.patch172
2 files changed, 287 insertions, 0 deletions
diff --git a/package/openjdk8/Makefile b/package/openjdk8/Makefile
new file mode 100644
index 000000000..aa3f2984a
--- /dev/null
+++ b/package/openjdk8/Makefile
@@ -0,0 +1,115 @@
+# This file is part of the OpenADK project. OpenADK is copyrighted
+# material, please see the LICENCE file in the top-level directory.
+
+include $(ADK_TOPDIR)/rules.mk
+
+PKG_NAME:= openjdk8
+PKG_VERSION:= 8u76-b02
+PKG_RELEASE:= 1
+PKG_HASH:= 4447890e92da9f6855edb1475930e456fe8d396abe35f83a2259fd8c1e9537f2
+PKG_DESCR:= java virtual machine
+PKG_SECTION:= dev/lang
+PKG_DEPENDS:= alsa-lib freetype libx11 libxext libxrender libxtst
+PKG_DEPENDS+= libxt libffi zlib
+PKG_BUILDDEP:= openjdk7-host libX11 libXext libXrender libXtst libXt
+PKG_BUILDDEP+= freetype alsa-lib cups libffi zlib
+PKG_NEEDS:= threads c++ rt
+PKG_URL:= http://openjdk.org/
+PKG_HG:= http://hg.openjdk.java.net/jdk8u/jdk8u
+PKG_SITES:= ${PKG_HG}/archive/
+PKG_NOPARALLEL:= 1
+ICEDTEA_VERSION:= 3.0.0pre07
+
+DISTFILES:= jdk$(PKG_VERSION).tar.bz2
+WRKSRC= ${WRKDIST}/openjdk
+
+include $(ADK_TOPDIR)/mk/package.mk
+
+$(eval $(call PKG_template,OPENJDK8,openjdk8,$(PKG_VERSION)-$(PKG_RELEASE),$(PKG_DEPENDS),$(PKG_DESCR),$(PKG_SECTION)))
+
+JDKARCH:= $(ADK_TARGET_CPU_ARCH)
+ifeq ($(ADK_TARGET_ARCH),x86)
+JDKARCH:= i386
+endif
+ifeq ($(ADK_TARGET_CPU_ARCH),x86_64)
+JDKARCH:= amd64
+endif
+
+# uclibc-ng with iconv-tiny/libiconv needs -liconv
+ifeq ($(ADK_TARGET_LIBC_ICONV),)
+ifeq ($(ADK_TARGET_LIB_UCLIBC_NG),y)
+TARGET_LDFLAGS:= -liconv -lm
+endif
+endif
+
+CONFIG_STYLE:= basic
+CONFIGURE_ARGS+= --prefix=$(WRKINST)/usr \
+ --with-jvm-variants=zero \
+ --with-stdc++lib=dynamic \
+ --enable-unlimited-crypto \
+ --disable-debug-symbols \
+ --with-debug-level=release \
+ --with-zlib=system \
+ --enable-freetype-bundling \
+ --with-freetype=$(STAGING_TARGET_DIR)/usr \
+ --with-freetype-include=$(STAGING_TARGET_DIR)/usr/include/freetype2 \
+ --with-boot-jdk=$(STAGING_HOST_DIR)/bootstrap-jdk \
+ --with-extra-cflags="$(TARGET_CFLAGS)" \
+ --with-extra-cxxflags="$(TARGET_CXXFLAGS)" \
+ --with-extra-ldflags="$(TARGET_LDFLAGS)" \
+ --with-cups=$(STAGING_TARGET_DIR)/usr \
+ --with-alsa=$(STAGING_TARGET_DIR) \
+ --with-x=$(STAGING_TARGET_DIR)/usr \
+ --x-includes=$(STAGING_TARGET_DIR)/usr/include \
+ --x-libraries=$(STAGING_TARGET_DIR)/usr/lib
+CONFIGURE_ENV:= BUILD_CC=/usr/bin/gcc \
+ BUILD_CXX=/usr/bin/g++ \
+ BUILD_LD=/usr/bin/ld \
+ ac_cv_path_POTENTIAL_CC=$(TARGET_CC) \
+ ac_cv_path_POTENTIAL_CXX=$(TARGET_CXX) \
+ LD=$(TARGET_CC) \
+ OBJCOPY='$(TARGET_CROSS)objcopy' \
+ LIBFFI_CFLAGS="$(TARGET_CPPFLAGS)" \
+ LIBFFI_LIBS="$(TARGET_LDFLAGS) -lffi"
+
+XAKE_FLAGS+= LD=$(TARGET_CC) \
+ BUILD_CC=$(HOST_CC) \
+ BUILD_LD=$(HOST_CC) \
+ WARNINGS_ARE_ERRORS='' \
+ LOG=debug
+
+post-extract:
+ (cd $(DL_DIR); \
+ for file in jdk corba hotspot jaxp jaxws langtools nashorn; do \
+ if [ ! -f openjdk8-$${file}$(PKG_VERSION).tar.bz2 ]; then \
+ wget -c -O openjdk8-$${file}$(PKG_VERSION).tar.bz2 $(PKG_HG)/$${file}/archive/jdk$(PKG_VERSION).tar.bz2 ; \
+ fi; \
+ done; \
+ if [ ! -f icedtea-$(ICEDTEA_VERSION).tar.bz2 ]; then \
+ wget -O icedtea-$(ICEDTEA_VERSION).tar.bz2 http://icedtea.classpath.org/hg/icedtea/archive/icedtea-$(ICEDTEA_VERSION).tar.bz2; \
+ fi; \
+ )
+ mkdir -p $(WRKDIST)/openjdk
+ (cd $(WRKDIST); \
+ tar --strip-components=1 -xvf $(DL_DIR)/icedtea-$(ICEDTEA_VERSION).tar.bz2; \
+ tar --strip-components=1 -C $(WRKDIST)/openjdk -xvf $(DL_DIR)/jdk$(PKG_VERSION).tar.bz2; \
+ for file in jdk corba hotspot jaxp jaxws langtools nashorn; do \
+ mkdir -p $(WRKDIST)/openjdk/$${file}; \
+ tar --strip-components=1 -C $(WRKDIST)/openjdk/$${file} -xvf $(DL_DIR)/openjdk8-$${file}$(PKG_VERSION).tar.bz2 ; \
+ done; \
+ )
+ (cd $(WRKDIST)/openjdk; patch -p1 < $(ADK_TOPDIR)/package/openjdk8/files/openadk.patch)
+ (cd $(WRKDIST); \
+ PATH=$(HOST_PATH) sed -e 's|@abs_top_srcdir@|$(WRKDIST)|g' -e '/^patch.*/d' fsg.sh.in > fsg.sh; \
+ ${BASH} fsg.sh; \
+ )
+
+openjdk8-install:
+ $(INSTALL_DIR) $(IDIR_OPENJDK8)/usr/bin
+ $(INSTALL_DIR) $(IDIR_OPENJDK8)/usr/lib/jvm
+ $(CP) $(WRKINST)//usr/jvm/openjdk-1.8.0-internal/* \
+ $(IDIR_OPENJDK8)/usr/lib/jvm
+ (cd $(IDIR_OPENJDK8)/usr/bin && ln -sf ../lib/jvm/jre/bin/java .)
+ (cd $(IDIR_OPENJDK8)/usr/lib/jvm/jre/lib/$(JDKARCH) && ln -sf server/libjvm.so .)
+
+include $(ADK_TOPDIR)/mk/pkg-bottom.mk
diff --git a/package/openjdk8/files/openadk.patch b/package/openjdk8/files/openadk.patch
new file mode 100644
index 000000000..2f8787890
--- /dev/null
+++ b/package/openjdk8/files/openadk.patch
@@ -0,0 +1,172 @@
+diff -Nur openjdk.orig/hotspot/src/cpu/zero/vm/entry_zero.hpp openjdk/hotspot/src/cpu/zero/vm/entry_zero.hpp
+--- openjdk.orig/hotspot/src/cpu/zero/vm/entry_zero.hpp 2015-12-23 01:50:46.000000000 +0100
++++ openjdk/hotspot/src/cpu/zero/vm/entry_zero.hpp 2016-01-06 11:43:50.108091228 +0100
+@@ -26,6 +26,8 @@
+ #ifndef CPU_ZERO_VM_ENTRY_ZERO_HPP
+ #define CPU_ZERO_VM_ENTRY_ZERO_HPP
+
++#include "interpreter/cppInterpreter.hpp"
++
+ class ZeroEntry {
+ public:
+ ZeroEntry() {
+diff -Nur openjdk.orig/hotspot/src/cpu/zero/vm/nativeInst_zero.cpp openjdk/hotspot/src/cpu/zero/vm/nativeInst_zero.cpp
+--- openjdk.orig/hotspot/src/cpu/zero/vm/nativeInst_zero.cpp 2015-12-23 01:50:46.000000000 +0100
++++ openjdk/hotspot/src/cpu/zero/vm/nativeInst_zero.cpp 2016-01-06 11:43:50.108091228 +0100
+@@ -25,6 +25,7 @@
+
+ #include "precompiled.hpp"
+ #include "assembler_zero.inline.hpp"
++#include "entry_zero.hpp"
+ #include "memory/resourceArea.hpp"
+ #include "nativeInst_zero.hpp"
+ #include "oops/oop.inline.hpp"
+diff -Nur openjdk.orig/hotspot/src/os/linux/vm/os_linux.cpp openjdk/hotspot/src/os/linux/vm/os_linux.cpp
+--- openjdk.orig/hotspot/src/os/linux/vm/os_linux.cpp 2015-12-23 01:50:46.000000000 +0100
++++ openjdk/hotspot/src/os/linux/vm/os_linux.cpp 2016-01-06 11:43:50.112090962 +0100
+@@ -94,7 +94,9 @@
+ # include <string.h>
+ # include <syscall.h>
+ # include <sys/sysinfo.h>
++# ifndef __UCLIBC__
+ # include <gnu/libc-version.h>
++# endif
+ # include <sys/ipc.h>
+ # include <sys/shm.h>
+ # include <link.h>
+@@ -533,6 +535,7 @@
+ # define _CS_GNU_LIBPTHREAD_VERSION 3
+ # endif
+
++# ifndef __UCLIBC__
+ size_t n = confstr(_CS_GNU_LIBC_VERSION, NULL, 0);
+ if (n > 0) {
+ char *str = (char *)malloc(n, mtInternal);
+@@ -545,6 +548,10 @@
+ "glibc %s %s", gnu_get_libc_version(), gnu_get_libc_release());
+ os::Linux::set_glibc_version(_gnu_libc_version);
+ }
++# else
++ size_t n = 1;
++ os::Linux::set_glibc_version("2");
++# endif
+
+ n = confstr(_CS_GNU_LIBPTHREAD_VERSION, NULL, 0);
+ if (n > 0) {
+@@ -2789,10 +2796,14 @@
+ // If we are running with earlier version, which did not have symbol versions,
+ // we should use the base version.
+ void* os::Linux::libnuma_dlsym(void* handle, const char *name) {
++#ifndef __UCLIBC__
+ void *f = dlvsym(handle, name, "libnuma_1.1");
+ if (f == NULL) {
+ f = dlsym(handle, name);
+ }
++#else
++ void *f = dlsym(handle, name);
++#endif
+ return f;
+ }
+
+@@ -4805,7 +4816,7 @@
+
+ Linux::capture_initial_stack(JavaThread::stack_size_at_create());
+
+-#if defined(IA32)
++#if defined(IA32) && !defined(ZERO)
+ workaround_expand_exec_shield_cs_limit();
+ #endif
+
+@@ -5437,6 +5448,43 @@
+ // System loadavg support. Returns -1 if load average cannot be obtained.
+ // Linux doesn't yet have a (official) notion of processor sets,
+ // so just return the system wide load average.
++#ifdef __UCLIBC__
++static int getloadavg (double loadavg[], int nelem)
++{
++ int fd;
++
++ fd = open ("/proc/loadavg", O_RDONLY);
++ if (fd < 0)
++ return -1;
++ else
++ {
++ char buf[65], *p;
++ ssize_t nread;
++ int i;
++
++ nread = read (fd, buf, sizeof buf - 1);
++ close (fd);
++ if (nread <= 0)
++ return -1;
++ buf[nread - 1] = '\0';
++
++ if (nelem > 3)
++ nelem = 3;
++ p = buf;
++ for (i = 0; i < nelem; ++i)
++ {
++ char *endp;
++ loadavg[i] = strtod (p, &endp);
++ if (endp == p)
++ return -1;
++ p = endp;
++ }
++
++ return i;
++ }
++}
++#endif
++
+ int os::loadavg(double loadavg[], int nelem) {
+ return ::getloadavg(loadavg, nelem);
+ }
+diff -Nur openjdk.orig/hotspot/src/share/vm/utilities/globalDefinitions_gcc.hpp openjdk/hotspot/src/share/vm/utilities/globalDefinitions_gcc.hpp
+--- openjdk.orig/hotspot/src/share/vm/utilities/globalDefinitions_gcc.hpp 2015-12-23 01:50:46.000000000 +0100
++++ openjdk/hotspot/src/share/vm/utilities/globalDefinitions_gcc.hpp 2016-01-06 11:43:50.220083765 +0100
+@@ -223,6 +223,10 @@
+ #define BREAKPOINT ::breakpoint()
+ #endif
+
++#ifdef __UCLIBC__
++#define isnanf __isnanf
++#endif
++
+ // checking for nanness
+ #ifdef SOLARIS
+ #ifdef SPARC
+@@ -249,8 +253,13 @@
+
+ // Checking for finiteness
+
++#ifdef __UCLIBC__
++inline int g_isfinite(jfloat f) { return isfinite(f); }
++inline int g_isfinite(jdouble f) { return isfinite(f); }
++#else
+ inline int g_isfinite(jfloat f) { return finite(f); }
+ inline int g_isfinite(jdouble f) { return finite(f); }
++#endif
+
+
+ // Wide characters
+diff -Nur openjdk.orig/jdk/src/solaris/native/sun/xawt/XToolkit.c openjdk/jdk/src/solaris/native/sun/xawt/XToolkit.c
+--- openjdk.orig/jdk/src/solaris/native/sun/xawt/XToolkit.c 2015-12-23 01:50:56.000000000 +0100
++++ openjdk/jdk/src/solaris/native/sun/xawt/XToolkit.c 2016-01-06 12:56:51.970983142 +0100
+@@ -27,7 +27,7 @@
+ #include <X11/Xutil.h>
+ #include <X11/Xos.h>
+ #include <X11/Xatom.h>
+-#ifdef __linux__
++#if defined(__GLIBC__) && !defined(__UCLIBC__)
+ #include <execinfo.h>
+ #endif
+
+@@ -799,7 +799,7 @@
+ return ret;
+ }
+
+-#ifdef __linux__
++#if defined(__GLIBC__) && !defined(__UCLIBC__)
+ void print_stack(void)
+ {
+ void *array[10];