aboutsummaryrefslogtreecommitdiff
path: root/java/openjdk8
diff options
context:
space:
mode:
authorPiotr Kubaj <pkubaj@FreeBSD.org>2020-01-12 19:10:40 +0000
committerPiotr Kubaj <pkubaj@FreeBSD.org>2020-01-12 19:10:40 +0000
commita14ab5cbd0b7125459cf02cefc4969432bf9f3f5 (patch)
tree3c35646a48401abdcf9031e0d53c54b8b29d9274 /java/openjdk8
parent064debc5a1b9f7807b21ecf911b27d48d136daac (diff)
downloadports-a14ab5cbd0b7125459cf02cefc4969432bf9f3f5.tar.gz
ports-a14ab5cbd0b7125459cf02cefc4969432bf9f3f5.zip
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)
Notes
Notes: svn path=/head/; revision=522831
Diffstat (limited to 'java/openjdk8')
-rw-r--r--java/openjdk8/Makefile12
-rw-r--r--java/openjdk8/files/extra-patch-ppc64-elfv248
2 files changed, 54 insertions, 6 deletions
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 <alloca.h>
+-
+ #define __ masm->
+
+ #ifdef PRODUCT