Index: gluegen2/make/scripts/make.gluegen.all.linux-ppc64le.sh =================================================================== --- /dev/null +++ gluegen2/make/scripts/make.gluegen.all.linux-ppc64le.sh @@ -0,0 +1,24 @@ +#! /bin/sh + +# -Dc.compiler.debug=true \ +# -Dgluegen.cpptasks.detected.os=true \ +# -DisUnix=true \ +# -DisLinux=true \ +# -DisLinuxX86=true \ +# -DisX11=true \ + +MACHINE=ppc64le +ARCH=ppc64el +TRIPLET=powerpc64le-linux-gnu + +export TARGET_PLATFORM_LIBS=/usr/lib/$TRIPLET +export TARGET_JAVA_LIBS=/usr/lib/jvm/java-7-openjdk-$ARCH/jre/lib/$MACHINE + +export GLUEGEN_CPPTASKS_FILE="lib/gluegen-cpptasks-linux-$MACHINE.xml" + +#export JOGAMP_JAR_CODEBASE="Codebase: *.jogamp.org" +export JOGAMP_JAR_CODEBASE="Codebase: *.goethel.localnet" + +ant \ + -Drootrel.build=build-linux-$MACHINE \ + $* 2>&1 | tee make.gluegen.all.linux-$MACHINE.log Index: gluegen2/make/gluegen-cpptasks-base.xml =================================================================== --- gluegen2.orig/make/gluegen-cpptasks-base.xml +++ gluegen2/make/gluegen-cpptasks-base.xml @@ -48,6 +48,7 @@ - isLinuxMips - isLinuxMipsel - isLinuxPpc + - isLinuxPpc64le - isLinuxs390 - isLinuxs390x - isLinuxSparc @@ -133,6 +134,7 @@ - compiler.cfg.linux.mips - compiler.cfg.linux.mipsel - compiler.cfg.linux.ppc + - compiler.cfg.linux.ppc64le - compiler.cfg.linux.s390 - compiler.cfg.linux.s390x - compiler.cfg.linux.sparc @@ -155,6 +157,7 @@ - linker.cfg.linux.mips - linker.cfg.linux.mipsel - linker.cfg.linux.ppc + - linker.cfg.linux.ppc64le - linker.cfg.linux.s390 - linker.cfg.linux.s390x - linker.cfg.linux.sparc @@ -417,6 +420,15 @@ <condition property="ppc"> <os arch="ppc" /> </condition> + <condition property="isLinuxPpc64le"> + <and> + <istrue value="${isLinux}" /> + <os arch="ppc64le" /> + </and> + </condition> + <condition property="ppc64le"> + <os arch="ppc64le" /> + </condition> <condition property="isLinuxs390"> <and> <istrue value="${isLinux}" /> @@ -601,6 +613,7 @@ <echo message="LinuxMips=${isLinuxMips}" /> <echo message="LinuxMipsel=${isLinuxMipsel}" /> <echo message="LinuxPpc=${isLinuxPpc}" /> + <echo message="LinuxPpc64le=${isLinuxPpc64le}" /> <echo message="Linuxs390=${isLinuxs390}" /> <echo message="Linuxs390x=${isLinuxs390x}" /> <echo message="LinuxSparc=${isLinuxSparc}" /> @@ -683,6 +696,10 @@ <property name="os.and.arch" value="linux-ppc" /> </target> + <target name="gluegen.cpptasks.detect.os.linux.ppc64le" unless="gluegen.cpptasks.detected.os.2" if="isLinuxPpc64le"> + <property name="os.and.arch" value="linux-ppc64le" /> + </target> + <target name="gluegen.cpptasks.detect.os.linux.s390" unless="gluegen.cpptasks.detected.os.2" if="isLinuxs390"> <property name="os.and.arch" value="linux-s390" /> </target> @@ -707,7 +724,7 @@ <property name="os.and.arch" value="android-aarch64" /> </target> - <target name="gluegen.cpptasks.detect.os.linux" depends="gluegen.cpptasks.detect.os.linux.amd64,gluegen.cpptasks.detect.os.linux.ia64,gluegen.cpptasks.detect.os.linux.x86,gluegen.cpptasks.detect.os.linux.armv6.armel,gluegen.cpptasks.detect.os.linux.armv6.armhf,gluegen.cpptasks.detect.os.android.armv6.armel,gluegen.cpptasks.detect.os.linux.aarch64,gluegen.cpptasks.detect.os.android.armv6.armhf,gluegen.cpptasks.detect.os.android.aarch64,gluegen.cpptasks.detect.os.linux.alpha,gluegen.cpptasks.detect.os.linux.hppa,gluegen.cpptasks.detect.os.linux.mips,gluegen.cpptasks.detect.os.linux.mipsel,gluegen.cpptasks.detect.os.linux.ppc,gluegen.cpptasks.detect.os.linux.s390,gluegen.cpptasks.detect.os.linux.s390x,gluegen.cpptasks.detect.os.linux.sparc" unless="gluegen.cpptasks.detected.os.2" /> + <target name="gluegen.cpptasks.detect.os.linux" depends="gluegen.cpptasks.detect.os.linux.amd64,gluegen.cpptasks.detect.os.linux.ia64,gluegen.cpptasks.detect.os.linux.x86,gluegen.cpptasks.detect.os.linux.armv6.armel,gluegen.cpptasks.detect.os.linux.armv6.armhf,gluegen.cpptasks.detect.os.android.armv6.armel,gluegen.cpptasks.detect.os.linux.aarch64,gluegen.cpptasks.detect.os.android.armv6.armhf,gluegen.cpptasks.detect.os.android.aarch64,gluegen.cpptasks.detect.os.linux.alpha,gluegen.cpptasks.detect.os.linux.hppa,gluegen.cpptasks.detect.os.linux.mips,gluegen.cpptasks.detect.os.linux.mipsel,gluegen.cpptasks.detect.os.linux.ppc,gluegen.cpptasks.detect.os.linux.ppc64le,gluegen.cpptasks.detect.os.linux.s390,gluegen.cpptasks.detect.os.linux.s390x,gluegen.cpptasks.detect.os.linux.sparc" unless="gluegen.cpptasks.detected.os.2" /> <target name="gluegen.cpptasks.detect.os.osx" unless="gluegen.cpptasks.detected.os.2" if="isOSX"> <property name="native.library.suffix" value="*lib" /> @@ -1268,6 +1285,9 @@ <linker id="linker.cfg.linux.ppc" name="${gcc.compat.compiler}"> </linker> + <linker id="linker.cfg.linux.ppc64le" name="${gcc.compat.compiler}"> + </linker> + <linker id="linker.cfg.linux.s390" name="${gcc.compat.compiler}"> </linker> @@ -1499,6 +1519,13 @@ <property name="java.lib.dir.platform" value="${java.home.dir}/jre/lib/ppc" /> </target> + <target name="gluegen.cpptasks.declare.compiler.linux.ppc64le" if="isLinuxPpc64le"> + <echo message="Linux.Ppc64le" /> + <property name="compiler.cfg.id.base" value="compiler.cfg.linux" /> + <property name="linker.cfg.id.base" value="linker.cfg.linux" /> + <property name="java.lib.dir.platform" value="${java.home.dir}/jre/lib/ppc64le" /> + </target> + <target name="gluegen.cpptasks.declare.compiler.linux.s390" if="isLinuxs390"> <echo message="Linux.s390" /> <property name="compiler.cfg.id.base" value="compiler.cfg.linux" /> @@ -1520,7 +1547,7 @@ <property name="java.lib.dir.platform" value="${java.home.dir}/jre/lib/sparc" /> </target> - <target name="gluegen.cpptasks.declare.compiler.linux" depends="gluegen.cpptasks.declare.compiler.linux.x86,gluegen.cpptasks.declare.compiler.linux.amd64,gluegen.cpptasks.declare.compiler.linux.ia64,gluegen.cpptasks.declare.compiler.linux.armv6,gluegen.cpptasks.declare.compiler.linux.aarch64,gluegen.cpptasks.declare.compiler.linux.alpha,gluegen.cpptasks.declare.compiler.linux.hppa,gluegen.cpptasks.declare.compiler.linux.mips,gluegen.cpptasks.declare.compiler.linux.mipsel,gluegen.cpptasks.declare.compiler.linux.ppc,gluegen.cpptasks.declare.compiler.linux.s390,gluegen.cpptasks.declare.compiler.linux.s390x,gluegen.cpptasks.declare.compiler.linux.sparc" if="isLinux"> + <target name="gluegen.cpptasks.declare.compiler.linux" depends="gluegen.cpptasks.declare.compiler.linux.x86,gluegen.cpptasks.declare.compiler.linux.amd64,gluegen.cpptasks.declare.compiler.linux.ia64,gluegen.cpptasks.declare.compiler.linux.armv6,gluegen.cpptasks.declare.compiler.linux.aarch64,gluegen.cpptasks.declare.compiler.linux.alpha,gluegen.cpptasks.declare.compiler.linux.hppa,gluegen.cpptasks.declare.compiler.linux.mips,gluegen.cpptasks.declare.compiler.linux.mipsel,gluegen.cpptasks.declare.compiler.linux.ppc,gluegen.cpptasks.declare.compiler.linux.ppc64le,gluegen.cpptasks.declare.compiler.linux.s390,gluegen.cpptasks.declare.compiler.linux.s390x,gluegen.cpptasks.declare.compiler.linux.sparc" if="isLinux"> <property name="java.includes.dir.platform" value="${java.includes.dir}/linux" /> </target> Index: gluegen2/src/java/jogamp/common/os/PlatformPropsImpl.java =================================================================== --- gluegen2.orig/src/java/jogamp/common/os/PlatformPropsImpl.java +++ gluegen2/src/java/jogamp/common/os/PlatformPropsImpl.java @@ -509,6 +509,7 @@ public abstract class PlatformPropsImpl * <li>linux-armv6hf</li> * <li>linux-i586</li> * <li>linux-ppc</li> + * <li>linux-ppc64le</li> * <li>linux-mips</li> * <li>linux-mipsel</li> * <li>linux-superh</li> @@ -572,7 +573,7 @@ public abstract class PlatformPropsImpl _and_arch_tmp = "amd64"; break; case PPC64: - _and_arch_tmp = "ppc64"; + _and_arch_tmp = littleEndian ? "ppc64le" : "ppc64"; break; case MIPS_64: _and_arch_tmp = "mips64"; Index: gluegen2/src/java/com/jogamp/common/os/MachineDataInfo.java =================================================================== --- gluegen2.orig/src/java/com/jogamp/common/os/MachineDataInfo.java +++ gluegen2/src/java/com/jogamp/common/os/MachineDataInfo.java @@ -63,6 +63,7 @@ public class MachineDataInfo { private final static int[] size_sparc_32_sunos = { 4, 4, 4, 8, 16, 4, 8192 }; private final static int[] size_x86_32_windows = { 4, 4, 4, 8, 12, 4, 4096 }; private final static int[] size_lp64_unix = { 4, 8, 4, 8, 16, 8, 4096 }; + private final static int[] size_ppc_64_unix = { 4, 8, 4, 8, 16, 8, 65536 }; private final static int[] size_x86_64_windows = { 4, 4, 4, 8, 16, 8, 4096 }; /* arch os i8, i16, i32, i64, int, long, float, doubl, ldoubl, ptr */ @@ -106,8 +107,10 @@ public class MachineDataInfo { SPARC_32_SUNOS( size_sparc_32_sunos, align_sparc_32_sunos), /** {@link Platform.CPUType#X86_32} Windows */ X86_32_WINDOWS( size_x86_32_windows, align_x86_32_windows), - /** LP64 Unix, e.g.: {@link Platform.CPUType#X86_64} Unix, {@link Platform.CPUType#ARM64} EABI, {@link Platform.CPUType#PPC64} Unix, .. */ + /** LP64 Unix, e.g.: {@link Platform.CPUType#X86_64} Unix, {@link Platform.CPUType#ARM64} EABI, .. */ LP64_UNIX( size_lp64_unix, align_lp64_unix), + /** {@link Platform.CPUType#PPC64} Unix */ + PPC_64_UNIX( size_ppc_64_unix, align_lp64_unix), /** {@link Platform.CPUType#X86_64} Windows */ X86_64_WINDOWS( size_x86_64_windows, align_x86_64_windows); // 8 Index: gluegen2/src/java/jogamp/common/os/MachineDataInfoRuntime.java =================================================================== --- gluegen2.orig/src/java/jogamp/common/os/MachineDataInfoRuntime.java +++ gluegen2/src/java/jogamp/common/os/MachineDataInfoRuntime.java @@ -112,6 +112,8 @@ public class MachineDataInfoRuntime { } else { if( osType == Platform.OSType.WINDOWS ) { return StaticConfig.X86_64_WINDOWS; + } else if ( Platform.CPUType.PPC64 == cpuType ) { + return StaticConfig.PPC_64_UNIX; } else { // for all 64bit unix types (x86_64, aarch64, sparcv9, ..) return StaticConfig.LP64_UNIX; Index: gluegen2/make/build.xml =================================================================== --- gluegen2.orig/make/build.xml +++ gluegen2/make/build.xml @@ -299,6 +299,12 @@ <property name="linker.cfg.id" value="linker.cfg.linux.ppc" /> </target> + <target name="declare.linux.ppc64le" if="isLinuxPpc64le"> + <echo message="Linux.ppc64le" /> + <property name="compiler.cfg.id" value="compiler.cfg.linux" /> + <property name="linker.cfg.id" value="linker.cfg.linux.ppc64le" /> + </target> + <target name="declare.linux.s390" if="isLinuxs390"> <echo message="Linux.s390" /> <property name="compiler.cfg.id" value="compiler.cfg.linux" /> @@ -317,7 +323,7 @@ <property name="linker.cfg.id" value="linker.cfg.linux.sparc" /> </target> - <target name="declare.linux" depends="declare.linux.x86,declare.linux.amd64,declare.linux.ia64,declare.linux.hppa,declare.linux.mips,declare.linux.mipsel,declare.linux.ppc,declare.linux.s390,declare.linux.s390x,declare.linux.sparc,declare.linux.armv6" if="isLinux" > + <target name="declare.linux" depends="declare.linux.x86,declare.linux.amd64,declare.linux.ia64,declare.linux.hppa,declare.linux.mips,declare.linux.mipsel,declare.linux.ppc,declare.linux.ppc64le,declare.linux.s390,declare.linux.s390x,declare.linux.sparc,declare.linux.armv6" if="isLinux" > <property name="c.src.dir.os" value="unix" /> <property name="java.includes.dir.platform" value="${java.includes.dir}/linux" /> </target>