Mercurial > hg > release > icedtea7-forest-2.6 > jdk
changeset 8973:d6bfaec7e2c9
8036767: PPC64: Support for little endian execution model
Reviewed-by: simonis
author | asmundak |
---|---|
date | Wed, 16 Apr 2014 01:58:46 +0000 |
parents | c28a0dbea537 |
children | 6fe264d989be |
files | make/common/Defs-linux.gmk make/common/shared/Platform.gmk make/jdk_generic_profile.sh |
diffstat | 3 files changed, 22 insertions(+), 7 deletions(-) [+] |
line wrap: on
line diff
--- a/make/common/Defs-linux.gmk Fri Oct 07 03:00:13 2016 +0100 +++ b/make/common/Defs-linux.gmk Wed Apr 16 01:58:46 2014 +0000 @@ -197,8 +197,16 @@ 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 ($(ARCH),ppc64) + ifeq ($(OPENJDK_TARGET_CPU_ENDIAN),big) + CFLAGS_REQUIRED_ppc64 += -m64 -D_BIG_ENDIAN + LDFLAGS_COMMON_ppc64 += -m64 -L/lib64 -Wl,-melf64ppc + else ifeq ($(OPENJDK_TARGET_CPU_ENDIAN),little) + CFLAGS_REQUIRED_ppc64 += -D_LITTLE_ENDIAN -DABI_ELFv2 + else + $(error Expected big/little for ARCH=ppc64, got OPENJDK_TARGET_CPU_ENDIAN=$(OPENJDK_TARGET_CPU_ENDIAN)) + endif +endif ifeq ($(ZERO_BUILD), true) CFLAGS_REQUIRED = $(ZERO_ARCHFLAG) ifeq ($(ZERO_ENDIANNESS), little)
--- a/make/common/shared/Platform.gmk Fri Oct 07 03:00:13 2016 +0100 +++ b/make/common/shared/Platform.gmk Wed Apr 16 01:58:46 2014 +0000 @@ -191,7 +191,7 @@ ;; \ esac ARCH := $(shell $(archExpr) ) - ARCH_FAMILY := $(ARCH) + ARCH_FAMILY := $(ARCH:ppc64le=ppc64) # Linux builds may be 32-bit or 64-bit data model. ifeq ($(ARCH), sparc) @@ -205,6 +205,13 @@ else ARCH=sparcv9 endif + else ifeq ($(ARCH), ppc64) + ARCH_DATA_MODEL=64 + OPENJDK_TARGET_CPU_ENDIAN=big + else ifeq ($(ARCH), ppc64le) + ARCH_DATA_MODEL=64 + OPENJDK_TARGET_CPU_ENDIAN=little + ARCH := ppc64 else # Most archs are 32-bit ifndef ARCH_DATA_MODEL @@ -521,7 +528,7 @@ endif ifeq ($(PLATFORM), macosx) - ARCH_VM_SUBDIR=jre/lib + ARCH_VM_SUBDIR=jre/lib endif endif
--- a/make/jdk_generic_profile.sh Fri Oct 07 03:00:13 2016 +0100 +++ b/make/jdk_generic_profile.sh Wed Apr 16 01:58:46 2014 +0000 @@ -267,7 +267,7 @@ i386|ppc|s390|sparc|arm) ARCH_DATA_MODEL=32 ;; - amd64|ppc64|s390x|sparcv9|ia64|alpha) + amd64|ppc64|ppc64le|s390x|sparcv9|ia64|alpha) ARCH_DATA_MODEL=64 ;; *) @@ -278,10 +278,10 @@ # ZERO_ENDIANNESS is the endianness of the processor case "${ZERO_LIBARCH}" in - i386|amd64|ia64) + i386|amd64|ia64|ppc64le) ZERO_ENDIANNESS=little ;; - ppc*|s390*|sparc*|alpha) + ppc|ppc64|s390*|sparc*|alpha) ZERO_ENDIANNESS=big ;; *)