diff -ru openjdk.orig/hotspot/build/linux/makefiles/buildtree.make openjdk/hotspot/build/linux/makefiles/buildtree.make --- openjdk.orig/hotspot/build/linux/makefiles/buildtree.make 2007-11-08 11:34:54.000000000 +0000 +++ openjdk/hotspot/build/linux/makefiles/buildtree.make 2007-11-08 11:36:15.000000000 +0000 @@ -317,6 +317,8 @@ DATA_MODE/sparcv9 = 64 DATA_MODE/amd64 = 64 DATA_MODE/ia64 = 64 +DATA_MODE/ppc = 32 +DATA_MODE/ppc64 = 64 JAVA_FLAG/32 = -d32 JAVA_FLAG/64 = -d64 diff -ru openjdk.orig/hotspot/build/linux/makefiles/defs.make openjdk/hotspot/build/linux/makefiles/defs.make --- openjdk.orig/hotspot/build/linux/makefiles/defs.make 2007-11-08 11:34:54.000000000 +0000 +++ openjdk/hotspot/build/linux/makefiles/defs.make 2007-11-08 11:36:15.000000000 +0000 @@ -87,6 +87,23 @@ HS_ARCH = x86 endif +# ppc +ifeq ($(ARCH), ppc) + ARCH_DATA_MODEL = 32 + PLATFORM = linux-ppc + VM_PLATFORM = linux_ppc + HS_ARCH = zero +endif + +# ppc64 +ifeq ($(ARCH), ppc64) + ARCH_DATA_MODEL = 64 + MAKE_ARGS += LP64=1 + PLATFORM = linux-ppc64 + VM_PLATFORM = linux_ppc64 + HS_ARCH = zero +endif + JDK_INCLUDE_SUBDIR=linux # FIXUP: The subdirectory for a debug build is NOT the same on all platforms diff -ru openjdk.orig/hotspot/build/linux/makefiles/gcc.make openjdk/hotspot/build/linux/makefiles/gcc.make --- openjdk.orig/hotspot/build/linux/makefiles/gcc.make 2007-11-08 11:34:54.000000000 +0000 +++ openjdk/hotspot/build/linux/makefiles/gcc.make 2007-11-08 11:36:15.000000000 +0000 @@ -73,6 +73,8 @@ ARCHFLAG/ia64 = ARCHFLAG/sparc = -m32 -mcpu=v9 ARCHFLAG/sparcv9 = -m64 -mcpu=v9 +ARCHFLAG/ppc = -m32 +ARCHFLAG/ppc64 = -m64 CFLAGS += $(ARCHFLAG) AOUT_FLAGS += $(ARCHFLAG) diff -ru openjdk.orig/hotspot/build/linux/makefiles/sa.make openjdk/hotspot/build/linux/makefiles/sa.make --- openjdk.orig/hotspot/build/linux/makefiles/sa.make 2007-11-08 11:34:54.000000000 +0000 +++ openjdk/hotspot/build/linux/makefiles/sa.make 2007-11-08 11:36:15.000000000 +0000 @@ -51,10 +51,10 @@ SA_PROPERTIES = $(SA_CLASSDIR)/sa.properties # if $(AGENT_DIR) does not exist, we don't build SA -# also, we don't build SA on Itanium. +# also, we don't build SA on zero. all: - if [ -d $(AGENT_DIR) -a "$(SRCARCH)" != "ia64" ] ; then \ + if [ -d $(AGENT_DIR) -a "$(SRCARCH)" != "zero" ] ; then \ $(MAKE) -f sa.make $(GENERATED)/sa-jdi.jar; \ fi diff -ru openjdk.orig/hotspot/build/linux/makefiles/saproc.make openjdk/hotspot/build/linux/makefiles/saproc.make --- openjdk.orig/hotspot/build/linux/makefiles/saproc.make 2007-11-08 11:34:54.000000000 +0000 +++ openjdk/hotspot/build/linux/makefiles/saproc.make 2007-11-08 11:36:15.000000000 +0000 @@ -44,10 +44,10 @@ DEST_SAPROC = $(JDK_LIBDIR)/$(LIBSAPROC) # if $(AGENT_DIR) does not exist, we don't build SA -# also, we don't build SA on Itanium. +# also, we don't build SA on zero. checkAndBuildSA: - $(QUIETLY) if [ -d $(AGENT_DIR) -a "$(SRCARCH)" != "ia64" ] ; then \ + $(QUIETLY) if [ -d $(AGENT_DIR) -a "$(SRCARCH)" != "zero" ] ; then \ $(MAKE) -f vm.make $(LIBSAPROC); \ fi diff -ru openjdk.orig/hotspot/make/defs.make openjdk/hotspot/make/defs.make --- openjdk.orig/hotspot/make/defs.make 2007-11-08 11:34:54.000000000 +0000 +++ openjdk/hotspot/make/defs.make 2007-11-08 11:36:15.000000000 +0000 @@ -191,15 +191,17 @@ # Use uname output for SRCARCH, but deal with platform differences. If ARCH # is not explicitly listed below, it is treated as x86. - SRCARCH = $(ARCH/$(filter sparc sparc64 ia64 amd64 x86_64,$(ARCH))) + SRCARCH = $(ARCH/$(filter sparc sparc64 ia64 amd64 x86_64 ppc ppc64,$(ARCH))) ARCH/ = x86 ARCH/sparc = sparc ARCH/sparc64= sparc ARCH/ia64 = ia64 ARCH/amd64 = x86 ARCH/x86_64 = x86 + ARCH/ppc = zero + ARCH/ppc64 = zero - # BUILDARCH is usually the same as SRCARCH, except for sparcv9 + # BUILDARCH is usually the same as SRCARCH, except for sparcv9 and zero BUILDARCH = $(SRCARCH) ifeq ($(BUILDARCH), x86) ifdef LP64 @@ -213,6 +215,9 @@ BUILDARCH = sparcv9 endif endif + ifeq ($(BUILDARCH), zero) + BUILDARCH = $(ARCH) + endif # LIBARCH is 1:1 mapping from BUILDARCH LIBARCH = $(LIBARCH/$(BUILDARCH)) @@ -221,8 +226,10 @@ LIBARCH/sparc = sparc LIBARCH/sparcv9 = sparcv9 LIBARCH/ia64 = ia64 + LIBARCH/ppc = ppc + LIBARCH/ppc64 = ppc64 - LP64_ARCH = sparcv9 amd64 ia64 + LP64_ARCH = sparcv9 amd64 ia64 ppc64 endif # Required make macro settings for all platforms diff -r e95eb2395f60 openjdk-ecj/hotspot/build/linux/makefiles/vm.make --- openjdk/hotspot/build/linux/makefiles/vm.make Fri Nov 09 16:35:08 2007 +0000 +++ openjdk/hotspot/build/linux/makefiles/vm.make Mon Nov 12 09:09:28 2007 +0000 @@ -122,7 +122,11 @@ mapfile_reorder : mapfile $(REORDERFILE) rm -f $@ cat $^ > $@ -STATIC_CXX = true +ifeq ($(BUILDARCH), ppc64) + STATIC_CXX = false +else + STATIC_CXX = true +endif ifeq ($(LINK_INTO),AOUT) LIBJVM.o = diff -ru 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 2007-11-08 11:34:54.000000000 +0000 +++ openjdk/hotspot/src/os/linux/vm/os_linux.cpp 2007-11-08 11:36:15.000000000 +0000 @@ -171,6 +171,12 @@ # else static char cpu_arch[] = "sparc"; # endif +#elif defined(PPC) +# ifdef _LP64 +static char cpu_arch[] = "ppc64"; +# else +static char cpu_arch[] = "ppc"; +# endif #else #error Add appropriate cpu_arch setting #endif @@ -2372,7 +2378,8 @@ // format has been changed), we'll use the largest page size supported by // the processor. - _large_page_size = IA32_ONLY(4 * M) AMD64_ONLY(2 * M) IA64_ONLY(256 * M) SPARC_ONLY(4 * M); + _large_page_size = IA32_ONLY(4 * M) AMD64_ONLY(2 * M) IA64_ONLY(256 * M) + SPARC_ONLY(4 * M) PPC_ONLY(16 * M); FILE *fp = fopen("/proc/meminfo", "r"); if (fp) { diff -ru openjdk.orig/hotspot/src/share/vm/runtime/mutex.hpp openjdk/hotspot/src/share/vm/runtime/mutex.hpp --- openjdk.orig/hotspot/src/share/vm/runtime/mutex.hpp 2007-11-08 11:34:54.000000000 +0000 +++ openjdk/hotspot/src/share/vm/runtime/mutex.hpp 2007-11-08 11:36:15.000000000 +0000 @@ -61,19 +61,15 @@ } ; // Endian-ness ... index of least-significant byte in SplitWord.Bytes[] -#ifdef AMD64 // little +#if defined(IA32) || defined(AMD64) || defined(IA64) // little #define _LSBINDEX 0 #else -#if IA32 // little - #define _LSBINDEX 0 -#else -#ifdef SPARC // big +#if defined(SPARC) || defined(PPC) // big #define _LSBINDEX (sizeof(intptr_t)-1) #else #error "unknown architecture" #endif #endif -#endif class ParkEvent ; diff -ru openjdk.orig/hotspot/src/share/vm/runtime/vm_version.cpp openjdk/hotspot/src/share/vm/runtime/vm_version.cpp --- openjdk.orig/hotspot/src/share/vm/runtime/vm_version.cpp 2007-11-08 11:34:54.000000000 +0000 +++ openjdk/hotspot/src/share/vm/runtime/vm_version.cpp 2007-11-08 11:36:15.000000000 +0000 @@ -147,7 +147,8 @@ #define CPU IA32_ONLY("x86") \ IA64_ONLY("ia64") \ AMD64_ONLY("amd64") \ - SPARC_ONLY("sparc") + SPARC_ONLY("sparc") \ + PPC_ONLY("ppc") const char *Abstract_VM_Version::vm_platform_string() { return OS "-" CPU; diff -ru openjdk.orig/hotspot/src/share/vm/utilities/macros.hpp openjdk/hotspot/src/share/vm/utilities/macros.hpp --- openjdk.orig/hotspot/src/share/vm/utilities/macros.hpp 2007-11-08 11:34:54.000000000 +0000 +++ openjdk/hotspot/src/share/vm/utilities/macros.hpp 2007-11-08 11:36:15.000000000 +0000 @@ -176,6 +176,14 @@ #define NOT_SPARC(code) code #endif +#ifdef PPC +#define PPC_ONLY(code) code +#define NOT_PPC(code) +#else +#define PPC_ONLY(code) +#define NOT_PPC(code) code +#endif + #define FIX_THIS(code) report_assertion_failure("FIX_THIS",__FILE__, __LINE__, "") #define define_pd_global(type, name, value) const type pd_##name = value; diff -ru openjdk.orig/jdk/make/common/Defs-linux.gmk openjdk/jdk/make/common/Defs-linux.gmk --- openjdk.orig/jdk/make/common/Defs-linux.gmk 2007-11-08 11:35:35.000000000 +0000 +++ openjdk/jdk/make/common/Defs-linux.gmk 2007-11-08 11:36:15.000000000 +0000 @@ -109,6 +109,10 @@ LDFLAGS_COMMON_sparcv9 += -m64 -mcpu=v9 CFLAGS_REQUIRED_sparc += -m32 -mcpu=v9 LDFLAGS_COMMON_sparc += -m32 -mcpu=v9 +CFLAGS_REQUIRED_ppc += -m32 +LDFLAGS_COMMON_ppc += -m32 +CFLAGS_REQUIRED_ppc64 += -m64 +LDFLAGS_COMMON_ppc64 += -m64 CFLAGS_REQUIRED = $(CFLAGS_REQUIRED_$(ARCH)) LDFLAGS_COMMON += $(LDFLAGS_COMMON_$(ARCH)) diff -r 37a05a11f281 make/common/shared/Compiler-gcc.gmk --- a/jdk/make/common/shared/Compiler-gcc.gmk Sat Dec 01 00:00:00 2007 +0000 +++ openjdk/jdk/make/common/shared/Compiler-gcc.gmk Wed Jan 23 14:02:23 2008 +0100 @@ -70,28 +70,51 @@ ifeq ($(PLATFORM), linux) else CXX = $(COMPILER_PATH)g++$(GCC_SUFFIX) endif - ifneq ("$(findstring sparc,$(ARCH))", "") - # sparc or sparcv9 - REQUIRED_CC_VER = 4.0 - REQUIRED_GCC_VER = 4.0.* - else - ifeq ($(ARCH_DATA_MODEL), 32) + ifeq ($(ARCH), alpha) + # alpha + REQUIRED_CC_VER = 3.2 + REQUIRED_GCC_VER = 3.2.* + endif + ifeq ($(ARCH), amd64) + # amd64 + REQUIRED_CC_VER = 3.2 + REQUIRED_GCC_VER = 3.2.* + endif + ifeq ($(ARCH), arm) + # arm + REQUIRED_CC_VER = 3.2 + REQUIRED_GCC_VER = 3.2.* + endif + ifeq ($(ARCH), i586) # i586 REQUIRED_CC_VER = 3.2 REQUIRED_GCC_VER = 3.2.1* REQUIRED_GCC_VER_INT = 3.2.1-7a - else - ifeq ($(ARCH), amd64) - # amd64 - REQUIRED_CC_VER = 3.2 - REQUIRED_GCC_VER = 3.2.* endif ifeq ($(ARCH), ia64) # ia64 REQUIRED_CC_VER = 3.2 REQUIRED_GCC_VER = 2.9[56789].* endif + ifeq ($(ARCH), mips) + # mips + REQUIRED_CC_VER = 3.2 + REQUIRED_GCC_VER = 3.2.* endif + ifneq ("$(findstring ppc,$(ARCH))", "") + # ppc or ppc64 + REQUIRED_CC_VER = 3.2 + REQUIRED_GCC_VER = 3.2.* + endif + ifneq ("$(findstring s390,$(ARCH))", "") + # s390 or s390x + REQUIRED_CC_VER = 3.2 + REQUIRED_GCC_VER = 3.2.* + endif + ifneq ("$(findstring sparc,$(ARCH))", "") + # sparc or sparcv9 + REQUIRED_CC_VER = 4.0 + REQUIRED_GCC_VER = 4.0.* endif # Option used to create a shared library SHARED_LIBRARY_FLAG = -shared -mimpure-text diff -ru openjdk.orig/jdk/make/common/shared/Platform.gmk openjdk/jdk/make/common/shared/Platform.gmk --- openjdk.orig/jdk/make/common/shared/Platform.gmk 2007-11-08 11:34:54.000000000 +0000 +++ openjdk/jdk/make/common/shared/Platform.gmk 2007-11-08 11:36:15.000000000 +0000 @@ -223,9 +223,9 @@ ARCH=sparcv9 endif else - # i586 is 32-bit, amd64 is 64-bit + # i586 and ppc are 32-bit, amd64 and ppc64 are 64-bit ifndef ARCH_DATA_MODEL - ifeq ($(ARCH), i586) + ifneq ($(filter i586 ppc,$(ARCH)),) ARCH_DATA_MODEL=32 else ARCH_DATA_MODEL=64 diff -r 29c822b7c8b2 openjdk-ecj/jdk/make/java/jli/Makefile --- openjdk/jdk/make/java/jli/Makefile Mon Nov 12 09:19:31 2007 +0000 +++ openjdk/jdk/make/java/jli/Makefile Mon Nov 12 09:24:13 2007 +0000 @@ -50,7 +50,11 @@ ifeq ($(ARCH_FAMILY), amd64) ifeq ($(ARCH_FAMILY), amd64) ERGO_FAMILY=i586 else +ifeq ($(ARCH_FAMILY), ppc64) +ERGO_FAMILY=ppc +else ERGO_FAMILY=$(ARCH_FAMILY) +endif endif diff -r 37a05a11f281 make/javax/sound/SoundDefs.gmk --- a/jdk/make/javax/sound/SoundDefs.gmk Sat Dec 01 00:00:00 2007 +0000 +++ openjdk/jdk/make/javax/sound/SoundDefs.gmk Wed Jan 23 14:39:17 2008 +0100 @@ -55,9 +55,45 @@ ifeq ($(PLATFORM), solaris) endif # PLATFORM solaris +ifeq ($(ARCH), alpha) + CPPFLAGS += -DX_ARCH=X_ALPHA +endif # ARCH alpha + +ifeq ($(ARCH), amd64) + CPPFLAGS += -DX_ARCH=X_AMD64 +endif # ARCH amd64 + +ifeq ($(ARCH), arm) + CPPFLAGS += -DX_ARCH=X_ARM +endif # ARCH arm + ifeq ($(ARCH), i586) CPPFLAGS += -DX_ARCH=X_I586 endif # ARCH i586 + +ifeq ($(ARCH), ia64) + CPPFLAGS += -DX_ARCH=X_IA64 +endif # ARCH ia64 + +ifeq ($(ARCH), mips) + CPPFLAGS += -DX_ARCH=X_MIPS +endif # ARCH mips + +ifeq ($(ARCH), ppc) + CPPFLAGS += -DX_ARCH=X_PPC +endif # ARCH ppc + +ifeq ($(ARCH), ppc64) + CPPFLAGS += -DX_ARCH=X_PPC64 +endif # ARCH ppc64 + +ifeq ($(ARCH), s390) + CPPFLAGS += -DX_ARCH=X_S390 +endif # ARCH s390 + +ifeq ($(ARCH), s390x) + CPPFLAGS += -DX_ARCH=X_S390X +endif # ARCH s390x ifeq ($(ARCH), sparc) CPPFLAGS += -DX_ARCH=X_SPARC @@ -66,10 +102,6 @@ ifeq ($(ARCH), sparcv9) ifeq ($(ARCH), sparcv9) CPPFLAGS += -DX_ARCH=X_SPARCV9 endif # ARCH sparcv9 - -ifeq ($(ARCH), amd64) - CPPFLAGS += -DX_ARCH=X_AMD64 -endif # ARCH amd64 # files needed for MIDI i/o diff -r 37a05a11f281 src/share/native/com/sun/media/sound/SoundDefs.h --- a/jdk/src/share/native/com/sun/media/sound/SoundDefs.h Sat Dec 01 00:00:00 2007 +0000 +++ openjdk/jdk/src/share/native/com/sun/media/sound/SoundDefs.h Wed Jan 23 14:39:17 2008 +0100 @@ -33,11 +33,18 @@ #define X_LINUX 3 // types for X_ARCH -#define X_I586 1 -#define X_SPARC 2 -#define X_SPARCV9 3 -#define X_IA64 4 -#define X_AMD64 5 +#define X_ALPHA 1 +#define X_AMD64 2 +#define X_ARM 3 +#define X_I586 4 +#define X_IA64 5 +#define X_MIPS 6 +#define X_PPC 7 +#define X_PPC64 8 +#define X_S390 9 +#define X_S390X 10 +#define X_SPARC 11 +#define X_SPARCV9 12 // ********************************** // Make sure you set X_PLATFORM and X_ARCH defines correctly. diff -ru openjdk.orig/corba/make/common/Defs-linux.gmk openjdk-ecj/corba/make/common/Defs-linux.gmk --- openjdk.orig/corba/make/common/Defs-linux.gmk 2007-11-09 14:12:27.000000000 +0000 +++ openjdk/corba/make/common/Defs-linux.gmk 2007-11-09 14:13:45.000000000 +0000 @@ -99,6 +99,10 @@ LDFLAGS_COMMON_sparcv9 += -m64 -mcpu=v9 CFLAGS_REQUIRED_sparc += -m32 -mcpu=v9 LDFLAGS_COMMON_sparc += -m32 -mcpu=v9 +CFLAGS_REQUIRED_ppc += -m32 +LDFLAGS_COMMON_ppc += -m32 +CFLAGS_REQUIRED_ppc64 += -m64 +LDFLAGS_COMMON_ppc64 += -m64 CFLAGS_REQUIRED = $(CFLAGS_REQUIRED_$(ARCH)) LDFLAGS_COMMON += $(LDFLAGS_COMMON_$(ARCH)) diff -ru openjdk.orig/corba/make/common/shared/Compiler-gcc.gmk openjdk-ecj/corba/make/common/shared/Compiler-gcc.gmk --- openjdk.orig/corba/make/common/shared/Compiler-gcc.gmk 2007-11-09 14:12:27.000000000 +0000 +++ openjdk/corba/make/common/shared/Compiler-gcc.gmk 2007-11-09 14:13:45.000000000 +0000 @@ -74,13 +74,13 @@ # sparc or sparcv9 REQUIRED_CC_VER = 4.0 REQUIRED_GCC_VER = 4.0.* - else - ifeq ($(ARCH_DATA_MODEL), 32) + endif + ifeq ($(ARCH), i586) # i586 REQUIRED_CC_VER = 3.2 REQUIRED_GCC_VER = 3.2.1* REQUIRED_GCC_VER_INT = 3.2.1-7a - else + endif ifeq ($(ARCH), amd64) # amd64 REQUIRED_CC_VER = 3.2 @@ -91,7 +91,10 @@ REQUIRED_CC_VER = 3.2 REQUIRED_GCC_VER = 2.9[56789].* endif - endif + ifneq ("$(findstring ppc,$(ARCH))", "") + # ppc or ppc64 + REQUIRED_CC_VER = 3.2 + REQUIRED_GCC_VER = 3.2.* endif # Option used to create a shared library SHARED_LIBRARY_FLAG = -shared -mimpure-text diff -ru openjdk.orig/corba/make/common/shared/Platform.gmk openjdk-ecj/corba/make/common/shared/Platform.gmk --- openjdk.orig/corba/make/common/shared/Platform.gmk 2007-11-09 14:12:27.000000000 +0000 +++ openjdk/corba/make/common/shared/Platform.gmk 2007-11-09 14:13:45.000000000 +0000 @@ -214,9 +214,9 @@ ARCH=sparcv9 endif else - # i586 is 32-bit, amd64 is 64-bit + # i586 and ppc are 32-bit, amd64 and ppc64 are 64-bit ifndef ARCH_DATA_MODEL - ifeq ($(ARCH), i586) + ifneq ($(filter i586 ppc,$(ARCH)),) ARCH_DATA_MODEL=32 else ARCH_DATA_MODEL=64