changeset 7257:57d6eb834154

Initial PPC-Port checkin With this change the JDK repository should build on Linux/PPC with a IBM JDK7 boot JDK. - change some mapfiles to use use the anonymous name space to avoid problems with old SuSE linkers - intruduce special environment variable "FT_CFLAGS" for the freetype sanity check. - introduced new ppc64 configuration in make/common/Defs-linux.gmk - define ppc64 for the sound build Compiled with the following command lines: debug build: ------------ make FT_CFLAGS=-m64 LANG=C ALT_BOOTDIR=/sapmnt/depot/tools/gen/linuxppc64/licenseware/jse/1.7.0 ALT_OUTPUTDIR=/priv/d046063/OpenJDK/output_ppc-aix_jdk_dbg ARCH_DATA_MODEL=64 HOTSPOT_BUILD_JOBS=8 PARALLEL_COMPILE_JOBS=8 ALT_FREETYPE_LIB_PATH=/usr/local/lib ALT_FREETYPE_HEADERS_PATH=/usr/local/include ANT_HOME=/usr/local/apache-ant-1.8.4 ANT_ARGS=-autoproxy IDLJ=$(ALT_BOOTDIR)/bin/java -cp $(ALT_BOOTDIR)/lib/tools.jar com.sun.tools.corba.se.idl.toJavaPortable.Compile RMIC=$(ALT_BOOTDIR)/bin/java -cp $(ALT_BOOTDIR)/lib/tools.jar sun.rmi.rmic.Main VERBOSE=true HOTSPOT_TARGET=all_debugcore CC_INTERP=true OPENJDK=true CORE_BUILD=true debug_build 2>&1 | tee /priv/d046063/OpenJDK/output_ppc-aix_jdk_dbg.log product build: -------------- make FT_CFLAGS=-m64 LANG=C ALT_BOOTDIR=/sapmnt/depot/tools/gen/linuxppc64/licenseware/jse/1.7.0 ALT_OUTPUTDIR=/priv/d046063/OpenJDK/output_ppc-aix_jdk_opt ARCH_DATA_MODEL=64 HOTSPOT_BUILD_JOBS=8 PARALLEL_COMPILE_JOBS=8 ALT_FREETYPE_LIB_PATH=/usr/local/lib ALT_FREETYPE_HEADERS_PATH=/usr/local/include ANT_HOME=/usr/local/apache-ant-1.8.4 ANT_ARGS=-autoproxy IDLJ=$(ALT_BOOTDIR)/bin/java -cp $(ALT_BOOTDIR)/lib/tools.jar com.sun.tools.corba.se.idl.toJavaPortable.Compile RMIC=$(ALT_BOOTDIR)/bin/java -cp $(ALT_BOOTDIR)/lib/tools.jar sun.rmi.rmic.Main VERBOSE=true HOTSPOT_TARGET=all_productcore CC_INTERP=true OPENJDK=true CORE_BUILD=true product_build 2>&1 | tee /priv/d046063/OpenJDK/output_ppc-aix_jdk_opt.log
author simonis
date Fri, 22 Jun 2012 15:53:27 +0200
parents aa49fe749096
children ef2483557937
files make/com/sun/java/pack/mapfile-vers make/com/sun/java/pack/mapfile-vers-unpack200 make/common/Defs-linux.gmk make/java/main/java/mapfile-ppc64 make/javax/sound/SoundDefs.gmk make/tools/freetypecheck/Makefile src/solaris/bin/ppc64/jvm.cfg
diffstat 7 files changed, 103 insertions(+), 8 deletions(-) [+]
line wrap: on
line diff
--- a/make/com/sun/java/pack/mapfile-vers	Fri Jun 01 11:46:14 2012 -0700
+++ b/make/com/sun/java/pack/mapfile-vers	Fri Jun 22 15:53:27 2012 +0200
@@ -26,7 +26,12 @@
 
 # Define library interface.
 
-SUNWprivate_1.1 {
+# On older SuSE releases the linker will complain about:
+# Invalid version tag `SUNWprivate_1.1'. Only anonymous version tag is allowed in executable
+# So we better completely omit the version for now.
+#
+
+{
 	global:
 	    Java_com_sun_java_util_jar_pack_NativeUnpack_finish;
 	    Java_com_sun_java_util_jar_pack_NativeUnpack_getNextFile;
--- a/make/com/sun/java/pack/mapfile-vers-unpack200	Fri Jun 01 11:46:14 2012 -0700
+++ b/make/com/sun/java/pack/mapfile-vers-unpack200	Fri Jun 22 15:53:27 2012 +0200
@@ -25,7 +25,12 @@
 
 # Define library interface.
 
-SUNWprivate_1.1 {
+# On older SuSE releases the linker will complain about:
+# Invalid version tag `SUNWprivate_1.1'. Only anonymous version tag is allowed in executable
+# So we better completely omit the version for now.
+#
+
+{
 	local:
 	    *;
 };
--- a/make/common/Defs-linux.gmk	Fri Jun 01 11:46:14 2012 -0700
+++ b/make/common/Defs-linux.gmk	Fri Jun 22 15:53:27 2012 +0200
@@ -200,6 +200,8 @@
 LDFLAGS_COMMON_sparc    += -m32 -mcpu=v9
 CFLAGS_REQUIRED_arm     += -fsigned-char -D_LITTLE_ENDIAN
 CFLAGS_REQUIRED_ppc     += -fsigned-char -D_BIG_ENDIAN
+CFLAGS_REQUIRED_ppc64   += -m64
+LDFLAGS_COMMON_ppc64    += -m64 -L/lib64 -Wl,-melf64ppc
 ifeq ($(ZERO_BUILD), true)
   CFLAGS_REQUIRED       =  $(ZERO_ARCHFLAG)
   ifeq ($(ZERO_ENDIANNESS), little)
@@ -429,7 +431,7 @@
 override LIBDL                   = -ldl
 override MOOT_PRIORITIES         = true
 override NO_INTERRUPTIBLE_IO     = true
-ifeq ($(ARCH), amd64)
+ifeq ($(ARCH), $(findstring $(ARCH), amd64 ppc64))
 override OPENWIN_LIB             = $(OPENWIN_HOME)/lib64
 else
 override OPENWIN_LIB             = $(OPENWIN_HOME)/lib
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/make/java/main/java/mapfile-ppc64	Fri Jun 22 15:53:27 2012 +0200
@@ -0,0 +1,43 @@
+#
+# Copyright (c) 2004, 2011, Oracle and/or its affiliates. All rights reserved.
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#
+# This code is free software; you can redistribute it and/or modify it
+# under the terms of the GNU General Public License version 2 only, as
+# published by the Free Software Foundation.  Oracle designates this
+# particular file as subject to the "Classpath" exception as provided
+# by Oracle in the LICENSE file that accompanied this code.
+#
+# This code is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+# version 2 for more details (a copy is included in the LICENSE file that
+# accompanied this code).
+#
+# You should have received a copy of the GNU General Public License version
+# 2 along with this work; if not, write to the Free Software Foundation,
+# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+#
+# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+# or visit www.oracle.com if you need additional information or have any
+# questions.
+#
+#
+# Specify what global symbols we export.  Note that we're not really
+# interested in declaring a version, simply scoping the file is sufficient.
+#
+# On older SuSE releases the linker will complain about:
+# Invalid version tag `SUNWprivate_1.1'. Only anonymous version tag is allowed in executable
+# So we better completely omit the version for now.
+#
+
+{
+	global:
+		main;		# Provides basic adb symbol offsets
+		environ;	# Public symbols and required by Java run time
+		_environ;
+		__environ_lock;
+
+	local:
+		*;
+};
--- a/make/javax/sound/SoundDefs.gmk	Fri Jun 01 11:46:14 2012 -0700
+++ b/make/javax/sound/SoundDefs.gmk	Fri Jun 22 15:53:27 2012 +0200
@@ -86,6 +86,10 @@
     CPPFLAGS += -DX_ARCH=X_PPC
   endif # ARCH ppc
 
+  ifeq ($(ARCH), ppc64)
+    CPPFLAGS += -DX_ARCH=X_PPC
+  endif # ARCH ppc64
+
 endif
 
 
--- a/make/tools/freetypecheck/Makefile	Fri Jun 01 11:46:14 2012 -0700
+++ b/make/tools/freetypecheck/Makefile	Fri Jun 22 15:53:27 2012 +0200
@@ -35,7 +35,7 @@
 # Used on openjdk only
 ifeq ($(OPENJDK),true)
 
-# Start with CFLAGS (which gets us the required -xarch setting on solaris)
+# Start with FT_CFLAGS (which gets us the required -xarch setting on solaris)
 ifeq ($(PLATFORM), windows)
   FT_OPTIONS  = /nologo /c
   FREETYPE_DLL = $(FREETYPE_LIB_PATH)/freetype.dll
@@ -44,7 +44,7 @@
   FT_LD_OPTIONS += /manifest
 endif
 else
-  FT_OPTIONS  = $(CFLAGS)
+  FT_OPTIONS  = $(FT_CFLAGS)
   FT_LD_OPTIONS = -L$(FREETYPE_LIB_PATH)
   # Add runtime lib search path to ensure test will be runnable
   ifeq ($(PLATFORM), solaris)
@@ -68,10 +68,10 @@
 
 # On windows we need to copy dll to test dir to ensure it will be found
 #   at runtime
-$(FT_TEST): freetypecheck.c
+$(FT_TEST): FRC
 	$(prep-target)
 ifeq ($(PLATFORM), windows)
-	$(CC) $(FT_OPTIONS) $(CC_OBJECT_OUTPUT_FLAG)$(FT_OBJ) $<
+	$(CC) $(FT_OPTIONS) $(CC_OBJECT_OUTPUT_FLAG)$(FT_OBJ) freetypecheck.c
 	$(LINK) $(FT_LD_OPTIONS) /OUT:$(FT_TEST) $(FT_OBJ)
 	$(CP) $(FREETYPE_DLL) $(@D)/
 ifdef MT
@@ -79,7 +79,7 @@
 	$(MT) /manifest $(FT_TEST).manifest /outputresource:$(FT_TEST);#1
 endif
 else
-	@$(CC) $(FT_OPTIONS) $(CC_PROGRAM_OUTPUT_FLAG)$@ $< $(FT_LD_OPTIONS)
+	$(CC) $(FT_OPTIONS) $(CC_PROGRAM_OUTPUT_FLAG)$@ freetypecheck.c $(FT_LD_OPTIONS)
 endif
 
 else
@@ -93,3 +93,6 @@
 clean::
 	$(RM) $(FT_TEST)
 
+# Force rule
+FRC:
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/solaris/bin/ppc64/jvm.cfg	Fri Jun 22 15:53:27 2012 +0200
@@ -0,0 +1,33 @@
+# Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved.
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#
+# This code is free software; you can redistribute it and/or modify it
+# under the terms of the GNU General Public License version 2 only, as
+# published by the Free Software Foundation.  Oracle designates this
+# particular file as subject to the "Classpath" exception as provided
+# by Oracle in the LICENSE file that accompanied this code.
+#
+# This code is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+# version 2 for more details (a copy is included in the LICENSE file that
+# accompanied this code).
+#
+# You should have received a copy of the GNU General Public License version
+# 2 along with this work; if not, write to the Free Software Foundation,
+# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+#
+# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+# or visit www.oracle.com if you need additional information or have any
+# questions.
+#
+# List of JVMs that can be used as an option to java, javac, etc.
+# Order is important -- first in this list is the default JVM.
+# NOTE that this both this file and its format are UNSUPPORTED and
+# WILL GO AWAY in a future release.
+#
+# You may also select a JVM in an arbitrary location with the
+# "-XXaltjvm=<jvm_dir>" option, but that too is unsupported
+# and may not be available in a future release.
+#
+-server KNOWN