Add build fix for zero

This commit is contained in:
Omair Majid 2013-03-28 19:12:15 -04:00
parent 26175389ae
commit b9ff0a8843
3 changed files with 169 additions and 33 deletions

View File

@ -1,27 +0,0 @@
diff --git jdk8/hotspot/make/linux/makefiles/gcc.make jdk8/hotspot/make/linux/makefiles/gcc.make
--- jdk8/hotspot/make/linux/makefiles/gcc.make
+++ jdk8/hotspot/make/linux/makefiles/gcc.make
@@ -234,6 +234,7 @@
# (warning: that could easily inflate libjvm.so to 150M!)
# Note: The Itanium gcc compiler crashes when using -gstabs.
DEBUG_CFLAGS/ia64 = -g
+ DEBUG_CFLAGS/i486 = -g
DEBUG_CFLAGS/amd64 = -g
DEBUG_CFLAGS/arm = -g
DEBUG_CFLAGS/ppc = -g
@@ -244,6 +245,7 @@
ifeq ($(ENABLE_FULL_DEBUG_SYMBOLS),1)
FASTDEBUG_CFLAGS/ia64 = -g
+ FASTDEBUG_CFLAGS/i486 = -g
FASTDEBUG_CFLAGS/amd64 = -g
FASTDEBUG_CFLAGS/arm = -g
FASTDEBUG_CFLAGS/ppc = -g
@@ -253,6 +255,7 @@
endif
OPT_CFLAGS/ia64 = -g
+ OPT_CFLAGS/i486 = -g
OPT_CFLAGS/amd64 = -g
OPT_CFLAGS/arm = -g
OPT_CFLAGS/ppc = -g

158
fix-zero-build.patch Normal file
View File

@ -0,0 +1,158 @@
--- jdk8/jdk/makefiles/Profiles.gmk 2013-03-28 16:57:56.137703554 -0400
+++ jdk8/jdk/makefiles/Profiles.gmk 2013-03-28 16:57:55.674699054 -0400
@@ -94,8 +94,11 @@
$(IMAGES_OUTPUTDIR)/lib/tools.jar \
$(IMAGES_OUTPUTDIR)/lib/ct.sym \
$(IMAGES_OUTPUTDIR)/src.zip \
- $(IMAGES_OUTPUTDIR)/lib/ext/cldrdata.jar \
- $(IMAGES_OUTPUTDIR)/lib/sa-jdi.jar
+ $(IMAGES_OUTPUTDIR)/lib/ext/cldrdata.jar
+
+ifeq ($(INCLUDE_SA),true)
+ ALL_JARS += $(IMAGES_OUTPUTDIR)/lib/sa-jdi.jar
+endif
ifeq ($(OPENJDK_TARGET_OS),solaris)
ifndef OPENJDK
--- jdk8/common/autoconf/hotspot-spec.gmk.in 2013-03-28 17:00:44.110332528 -0400
+++ jdk8/common/autoconf/hotspot-spec.gmk.in 2013-03-28 17:00:43.915330640 -0400
@@ -75,6 +75,19 @@
# If yes then this expands to _LP64:=1
@LP64@
+# Legacy settings for zero
+ZERO_ENDIANNESS=$(OPENJDK_TARGET_CPU_ENDIAN)
+ZERO_LIBARCH=$(OPENJDK_TARGET_CPU_LEGACY_LIB)
+ZERO_ARCHDEF=@ZERO_ARCHDEF@
+ZERO_ARCHFLAG=@ZERO_ARCHFLAG@
+LIBFFI_CFLAGS=@LIBFFI_CFLAGS@
+LIBFFI_LIBS=@LIBFFI_LIBS@
+
+# Legacy settings for zeroshark
+LLVM_CFLAGS=@LLVM_CFLAGS@
+LLVM_LIBS=@LLVM_LIBS@
+LLVM_LDFLAGS=@LLVM_LDFLAGS@
+
ALT_OUTPUTDIR=$(HOTSPOT_OUTPUTDIR)
ALT_EXPORT_PATH=$(HOTSPOT_DIST)
--- jdk8/common/autoconf/libraries.m4 2013-03-28 17:00:45.905349901 -0400
+++ jdk8/common/autoconf/libraries.m4 2013-03-28 17:00:45.632347258 -0400
@@ -662,7 +662,7 @@
AC_MSG_CHECKING([how to link with libstdc++])
# If dynamic was requested, it's available since it would fail above otherwise.
# If dynamic wasn't requested, go with static unless it isn't available.
- if test "x$with_stdc__lib" = xdynamic || test "x$has_static_libstdcxx" = xno; then
+ if test "x$with_stdc__lib" = xdynamic || test "x$has_static_libstdcxx" = xno || test "x$JVM_VARIANT_ZEROSHARK" = xtrue; then
LIBCXX="$LIBCXX -lstdc++"
LDCXX="$CXX"
STATIC_CXX_SETTING="STATIC_CXX=false"
@@ -676,6 +676,59 @@
fi
AC_SUBST(STATIC_CXX_SETTING)
+if test "x$JVM_VARIANT_ZERO" = xtrue || test "x$JVM_VARIANT_ZEROSHARK" = xtrue; then
+ # Figure out LIBFFI_CFLAGS and LIBFFI_LIBS
+ PKG_CHECK_MODULES([LIBFFI], [libffi])
+
+fi
+
+if test "x$JVM_VARIANT_ZEROSHARK" = xtrue; then
+ AC_CHECK_PROG([LLVM_CONFIG], [llvm-config], [llvm-config])
+
+ if test "x$LLVM_CONFIG" != xllvm-config; then
+ AC_MSG_ERROR([llvm-config not found in $PATH.])
+ fi
+
+ llvm_components="jit mcjit engine nativecodegen native"
+ unset LLVM_CFLAGS
+ for flag in $("$LLVM_CONFIG" --cxxflags); do
+ if echo "${flag}" | grep -q '^-@<:@ID@:>@'; then
+ if test "${flag}" != "-D_DEBUG" ; then
+ if test "${LLVM_CFLAGS}" != "" ; then
+ LLVM_CFLAGS="${LLVM_CFLAGS} "
+ fi
+ LLVM_CFLAGS="${LLVM_CFLAGS}${flag}"
+ fi
+ fi
+ done
+ llvm_version=$("${LLVM_CONFIG}" --version | sed 's/\.//; s/svn.*//')
+ LLVM_CFLAGS="${LLVM_CFLAGS} -DSHARK_LLVM_VERSION=${llvm_version}"
+
+ unset LLVM_LDFLAGS
+ for flag in $("${LLVM_CONFIG}" --ldflags); do
+ if echo "${flag}" | grep -q '^-L'; then
+ if test "${LLVM_LDFLAGS}" != ""; then
+ LLVM_LDFLAGS="${LLVM_LDFLAGS} "
+ fi
+ LLVM_LDFLAGS="${LLVM_LDFLAGS}${flag}"
+ fi
+ done
+
+ unset LLVM_LIBS
+ for flag in $("${LLVM_CONFIG}" --libs ${llvm_components}); do
+ if echo "${flag}" | grep -q '^-l'; then
+ if test "${LLVM_LIBS}" != ""; then
+ LLVM_LIBS="${LLVM_LIBS} "
+ fi
+ LLVM_LIBS="${LLVM_LIBS}${flag}"
+ fi
+ done
+
+ AC_SUBST(LLVM_CFLAGS)
+ AC_SUBST(LLVM_LDFLAGS)
+ AC_SUBST(LLVM_LIBS)
+fi
+
# libCrun is the c++ runtime-library with SunStudio (roughly the equivalent of gcc's libstdc++.so)
if test "x$OPENJDK_TARGET_OS" = xsolaris && test "x$LIBCXX" = x; then
LIBCXX="/usr/lib${OPENJDK_TARGET_CPU_ISADIR}/libCrun.so.1"
--- jdk8/common/autoconf/platform.m4 2013-03-28 17:00:47.585366160 -0400
+++ jdk8/common/autoconf/platform.m4 2013-03-28 17:00:47.389364263 -0400
@@ -332,6 +332,29 @@
DEFINE_CROSS_COMPILE_ARCH=""
fi
AC_SUBST(DEFINE_CROSS_COMPILE_ARCH)
+
+ # Some Zero and Shark settings.
+ # ZERO_ARCHFLAG tells the compiler which mode to build for
+ case "${OPENJDK_TARGET_CPU}" in
+ s390)
+ ZERO_ARCHFLAG="-m31"
+ ;;
+ *)
+ ZERO_ARCHFLAG="-m${OPENJDK_TARGET_CPU_BITS}"
+ esac
+ AC_SUBST(ZERO_ARCHFLAG)
+
+ # ZERO_ARCHDEF is used to enable architecture-specific code
+ case "${OPENJDK_TARGET_CPU}" in
+ ppc*) ZERO_ARCHDEF=PPC ;;
+ s390*) ZERO_ARCHDEF=S390 ;;
+ sparc*) ZERO_ARCHDEF=SPARC ;;
+ x86_64*) ZERO_ARCHDEF=AMD64 ;;
+ x86) ZERO_ARCHDEF=IA32 ;;
+ *) ZERO_ARCHDEF=$(echo "${OPENJDK_TARGET_CPU_LEGACY_LIB}" | tr a-z A-Z)
+ esac
+ AC_SUBST(ZERO_ARCHDEF)
+
])
AC_DEFUN([PLATFORM_SET_RELEASE_FILE_OS_VALUES],
--- jdk8/common/autoconf/spec.gmk.in 2013-03-28 17:00:49.065380483 -0400
+++ jdk8/common/autoconf/spec.gmk.in 2013-03-28 17:00:48.870378596 -0400
@@ -634,6 +634,14 @@
# Name of Service Agent library
SALIB_NAME=@SALIB_NAME@
+INCLUDE_SA:=true
+ifeq ($(JVM_VARIANT_ZERO),true)
+ INCLUDE_SA:=false
+endif
+ifeq ($(JVM_VARIANT_ZEROSHARK),true)
+ INCLUDE_SA:=false
+endif
+
OS_VERSION_MAJOR:=@OS_VERSION_MAJOR@
OS_VERSION_MINOR:=@OS_VERSION_MINOR@
OS_VERSION_MICRO:=@OS_VERSION_MICRO@

View File

@ -136,7 +136,7 @@
Name: java-%{javaver}-%{origin}
Version: %{javaver}.%{buildver}
Release: 0.1.%{jdk8_version}%{?dist}
Release: 0.3.%{jdk8_version}%{?dist}
# java-1.5.0-ibm from jpackage.org set Epoch to 1 for unknown reasons,
# and this change was brought into RHEL-4. java-1.5.0-ibm packages
# also included the epoch in their virtual provides. This created a
@ -205,13 +205,13 @@ Patch105: %{name}-ppc-zero-hotspot.patch
Patch106: %{name}-ppc-zero-corba.patch
Patch107: %{name}-freetype-check-fix.patch
Patch108: dont-use-gstabs.patch
Patch109: disable-werror.patch
Patch200: system-giflib.patch
Patch201: system-libjpeg.patch
Patch202: system-libpng.patch
Patch203: system-lcms.patch
Patch204: fix-zero-build.patch
BuildRequires: autoconf
BuildRequires: automake
@ -358,7 +358,6 @@ The OpenJDK API documentation.
cp %{SOURCE2} .
# OpenJDK patches
%patch108
%patch109
# Rhino patch
@ -372,6 +371,7 @@ sh %{SOURCE12}
%patch201
%patch202
%patch203
%patch204
%patch4
@ -475,6 +475,9 @@ mkdir -p %{buildoutputdir}
pushd %{buildoutputdir}
bash ../../configure \
%ifnarch %{jit_arches}
--with-jvm-variants=zero \
%endif
--with-build-number=%{buildver} \
--with-boot-jdk=/usr/lib/jvm/java-openjdk \
--with-debug-level=%{debugbuild} \
@ -486,7 +489,7 @@ bash ../../configure \
--with-stdc++lib=dynamic \
--with-num-cores="$NUM_PROC"
make DISABLE_INTREE_EC=true LOG=trace all
make DEBUG_BINARIES=true DISABLE_INTREE_EC=true LOG=trace all
popd >& /dev/null
@ -921,9 +924,7 @@ exit 0
%{_mandir}/man1/javah-%{name}.1*
%{_mandir}/man1/javap-%{name}.1*
%{_mandir}/man1/jconsole-%{name}.1*
%ifarch %{jit_arches} # Only in u4+
%{_mandir}/man1/jcmd-%{name}.1*
%endif
%{_mandir}/man1/jdb-%{name}.1*
%{_mandir}/man1/jhat-%{name}.1*
%{_mandir}/man1/jinfo-%{name}.1*
@ -961,6 +962,10 @@ exit 0
%doc %{buildoutputdir}/images/j2sdk-image/jre/LICENSE
%changelog
* Thu Mar 28 2013 Omair Majid <omajid@redhat.com> 1:1.8.0.0-0.3.b79
- Add build fix for zero
- Drop gstabs fixes; enable full debug info instead
* Wed Mar 13 2013 Omair Majid <omajid@redhat.com> 1:1.8.0.0-0.2.b79
- Fix alternatives priority