From a14ab5cbd0b7125459cf02cefc4969432bf9f3f5 Mon Sep 17 00:00:00 2001 From: Piotr Kubaj Date: Sun, 12 Jan 2020 19:10:40 +0000 Subject: java/openjdk8: add bootstrap and fix compilation for powerpc64 elfv2 Since the maintainer didn't respond, I'm adding the bootstrap to my own directory on freefall. PR: 242965 Submitted by: Mikael Urankar (original version) Approved by: java (maintainer timeout) --- java/bootstrap-openjdk8/Makefile | 9 ++++-- java/bootstrap-openjdk8/distinfo.ppc64 | 4 ++- java/openjdk8/Makefile | 12 ++++---- java/openjdk8/files/extra-patch-ppc64-elfv2 | 48 +++++++++++++++++++++++++++++ 4 files changed, 64 insertions(+), 9 deletions(-) create mode 100644 java/openjdk8/files/extra-patch-ppc64-elfv2 (limited to 'java') diff --git a/java/bootstrap-openjdk8/Makefile b/java/bootstrap-openjdk8/Makefile index 80895d8c73c7..b47e93a2e819 100644 --- a/java/bootstrap-openjdk8/Makefile +++ b/java/bootstrap-openjdk8/Makefile @@ -3,7 +3,8 @@ PORTNAME= openjdk8 PORTVERSION= ${DISTVERSION_${JDK_ARCH}} CATEGORIES= java devel -MASTER_SITES= LOCAL/jkim +MASTER_SITES= LOCAL/jkim \ + LOCAL/pkubaj PKGNAMEPREFIX= bootstrap- DISTNAME= ${JDK_PORT}-${JDK_ARCH}-${PORTVERSION} @@ -19,7 +20,7 @@ DISTVERSION_aarch64= r453315 DISTVERSION_amd64= r450802 DISTVERSION_arm= r450802 DISTVERSION_i386= r450802 -DISTVERSION_ppc64= r455236 +DISTVERSION_ppc64= r455236 # see below for ELFv2 JDK_ARCH= ${ARCH:C/armv.*/arm/:S/powerpc/ppc/} JDK_PORT= openjdk8 @@ -38,6 +39,10 @@ INSTALLDIR= ${STAGEDIR}${PREFIX}/${JDK_ROOT} RUN_DEPENDS+= ${LOCALBASE}/lib/libffi.so.6:devel/libffi .endif +.if defined(PPC_ABI) && ${PPC_ABI} == ELFv2 +DISTVERSION_ppc64= r522831 +.endif + do-install: @cd ${WRKSRC} && ${COPYTREE_SHARE} . ${INSTALLDIR} @cd ${WRKSRC} && ${COPYTREE_BIN} bin ${INSTALLDIR} diff --git a/java/bootstrap-openjdk8/distinfo.ppc64 b/java/bootstrap-openjdk8/distinfo.ppc64 index 466b88886eeb..6e3442ad4636 100644 --- a/java/bootstrap-openjdk8/distinfo.ppc64 +++ b/java/bootstrap-openjdk8/distinfo.ppc64 @@ -1,3 +1,5 @@ -TIMESTAMP = 1512091763 +TIMESTAMP = 1577641270 SHA256 (openjdk8-ppc64-r455236.tar.xz) = 81ac56dbffd860d41e7d6d2a2dc29e6f65ee155db9c92a1c9ccc688b2d7a1f19 SIZE (openjdk8-ppc64-r455236.tar.xz) = 28179536 +SHA256 (openjdk8-ppc64-r522831.tar.xz) = 2bb8b860e76cf8eb02a0a229d36421046790d7907b2f55a52c95b990072dda00 +SIZE (openjdk8-ppc64-r522831.tar.xz) = 28740136 diff --git a/java/openjdk8/Makefile b/java/openjdk8/Makefile index 45f855da35a0..83effc192d70 100644 --- a/java/openjdk8/Makefile +++ b/java/openjdk8/Makefile @@ -195,14 +195,9 @@ LIB_DEPENDS+= libffi.so:devel/libffi .endif .if ${COMPILER_TYPE} == clang -.if ${COMPILER_VERSION} >= 35 -MAKE_ENV+= COMPILER_WARNINGS_FATAL=false -.endif -MAKE_ENV+= USE_CLANG=true -.if ${COMPILER_FEATURES:Mlibc++} +MAKE_ENV+= COMPILER_WARNINGS_FATAL=false USE_CLANG=true CONFIGURE_ENV+= LIBCXX="-lc++" .endif -.endif # GCC is broken with PCH: https://lists.freebsd.org/pipermail/svn-src-all/2015-March/101722.html .if ${COMPILER_TYPE} == gcc @@ -214,6 +209,11 @@ MAKE_ARGS+= USE_PRECOMPILED_HEADER=0 .endif .endif +.if defined(PPC_ABI) && ${PPC_ABI} == ELFv2 +EXTRA_PATCHES+= ${FILESDIR}/extra-patch-ppc64-elfv2 +MAKE_ARGS+= USE_PRECOMPILED_HEADER=0 +.endif + .if empty(ICONV_LIB) ICONV_CPPFLAGS= -DLIBICONV_PLUG .else diff --git a/java/openjdk8/files/extra-patch-ppc64-elfv2 b/java/openjdk8/files/extra-patch-ppc64-elfv2 new file mode 100644 index 000000000000..41aac933d60d --- /dev/null +++ b/java/openjdk8/files/extra-patch-ppc64-elfv2 @@ -0,0 +1,48 @@ +--- common/autoconf/flags.m4.orig 2019-07-11 17:47:26.232244000 +0200 ++++ common/autoconf/flags.m4 2019-07-11 17:48:11.252733000 +0200 +@@ -563,7 +563,7 @@ AC_DEFUN_ONCE([FLAGS_SETUP_COMPILER_FLAGS_FOR_JDK], + CCXXFLAGS_JDK="$CCXXFLAGS_JDK -DVM_BIG_ENDIAN" + fi + fi +- if test "x$OPENJDK_TARGET_CPU" = xppc64le; then ++ if test "x$OPENJDK_TARGET_CPU" = xppc64; then + CCXXFLAGS_JDK="$CCXXFLAGS_JDK -DABI_ELFv2" + fi + +--- common/autoconf/generated-configure.sh.orig 2019-07-11 17:47:33.640280000 +0200 ++++ common/autoconf/generated-configure.sh 2019-07-11 17:49:51.392598000 +0200 +@@ -41992,7 +41992,7 @@ $as_echo "$supports" >&6; } + CCXXFLAGS_JDK="$CCXXFLAGS_JDK -DVM_BIG_ENDIAN" + fi + fi +- if test "x$OPENJDK_TARGET_CPU" = xppc64le; then ++ if test "x$OPENJDK_TARGET_CPU" = xppc64; then + CCXXFLAGS_JDK="$CCXXFLAGS_JDK -DABI_ELFv2" + fi + +--- hotspot/make/bsd/makefiles/ppc64.make.orig 2019-07-11 22:27:35.314715000 +0200 ++++ hotspot/make/bsd/makefiles/ppc64.make 2019-07-12 11:28:56.070546000 +0200 +@@ -37,11 +37,8 @@ ifeq ($(filter $(OPENJDK_TARGET_CPU_ENDIAN),big little + endif + + ifeq ($(OPENJDK_TARGET_CPU_ENDIAN),big) +- # fixes `relocation truncated to fit' error for gcc 4.1. +- CFLAGS += -mminimal-toc +- + # finds use ppc64 instructions, but schedule for power5 +- CFLAGS += -mcpu=powerpc64 -mtune=power5 -minsert-sched-nops=regroup_exact -mno-multiple -mno-string ++ CFLAGS += -mcpu=powerpc64 -mtune=power5 -DABI_ELFv2 + else + # Little endian machine uses ELFv2 ABI. + CFLAGS += -DVM_LITTLE_ENDIAN -DABI_ELFv2 +--- hotspot/src/cpu/ppc/vm/sharedRuntime_ppc.cpp.orig 2019-07-12 11:49:27.065494000 +0200 ++++ hotspot/src/cpu/ppc/vm/sharedRuntime_ppc.cpp 2019-07-12 11:49:34.924308000 +0200 +@@ -42,8 +42,6 @@ + #include "opto/runtime.hpp" + #endif + +-#include +- + #define __ masm-> + + #ifdef PRODUCT -- cgit v1.2.3