From 85403888e2f91e08fce1862dcef7c9045a329af1 Mon Sep 17 00:00:00 2001 From: Waldemar Brodkorb Date: Thu, 7 Jan 2016 23:49:37 +0100 Subject: add OpenJDK8, mostly copied from Optware-NG --- package/openjdk8/Makefile | 115 +++++++++++++++++++++++ package/openjdk8/files/openadk.patch | 172 +++++++++++++++++++++++++++++++++++ 2 files changed, 287 insertions(+) create mode 100644 package/openjdk8/Makefile create mode 100644 package/openjdk8/files/openadk.patch (limited to 'package/openjdk8') 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 + # include + # include ++# ifndef __UCLIBC__ + # include ++# endif + # include + # include + # include +@@ -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 + #include + #include +-#ifdef __linux__ ++#if defined(__GLIBC__) && !defined(__UCLIBC__) + #include + #endif + +@@ -799,7 +799,7 @@ + return ret; + } + +-#ifdef __linux__ ++#if defined(__GLIBC__) && !defined(__UCLIBC__) + void print_stack(void) + { + void *array[10]; -- cgit v1.2.3