diff options
author | Sven Gothel <[email protected]> | 2011-07-17 16:34:39 +0200 |
---|---|---|
committer | Sven Gothel <[email protected]> | 2011-07-17 16:34:39 +0200 |
commit | f733203dfbd034a6b1aa3eb2cd616437c982c435 (patch) | |
tree | 4ace71d4b129870b02f962b714c9dce9f83bc294 /make | |
parent | ad3dc39ccfddb007c3e91acf454f804573969419 (diff) |
GlueGen proper size / alignment of primitive and compound types usage [1/2] - Preparation.
Currently GlueGen fails for type long (size) and some alignments (see package.html).
- The size and alignment values shall be queried at runtime.
- Compound alignment needs to follow the described natural alignment (also @runtime).
-
- Build
- add Linux Arm7 (EABI)
- junit test
- added compound/struct tests, pointing out the shortcomings of current impl.
- package.html
- Added alignment documentation
- remove intptr.cfg
- add GluGen types int8_t, int16_t, uint8_t, uint16_t
- move MachineDescription* into runtime
- Platform
- has runtime MachineDescription
- moved size, .. to MachineDescription
- use enums for OSType, CPUArch and CPUType defined by os.name/os.arch,
triggering exception if os/arch is not supported.
This avoids Java String comparison and conscious os/arch detection.
- MachineDescription:
- compile time instances MachineDescription32Bits, MachineDescription64Bits
- runtime queried instance MachineDescriptionRuntime
- correct size, alignment, page size, ..
Diffstat (limited to 'make')
-rw-r--r-- | make/build-test.xml | 4 | ||||
-rw-r--r-- | make/build.xml | 10 | ||||
-rwxr-xr-x | make/config/intptr.cfg | 17 | ||||
-rwxr-xr-x | make/gluegen-cpptasks-base.xml | 41 | ||||
-rwxr-xr-x | make/scripts/runtest.sh | 4 | ||||
-rw-r--r-- | make/stub_includes/gluegen/gluegen_types.h | 4 | ||||
-rw-r--r-- | make/stub_includes/platform/gluegen_stdint.h | 20 |
7 files changed, 75 insertions, 25 deletions
diff --git a/make/build-test.xml b/make/build-test.xml index 10b464c..27638ad 100644 --- a/make/build-test.xml +++ b/make/build-test.xml @@ -333,6 +333,8 @@ <patternset id="junit.test1p1.c.src.files"> <include name="${build_t.gen.rootrel}/native/Bindingtest1p1Impl_JNI.c"/> + <include name="${build_t.gen.rootrel}/native/TK_Engine_JNI.c"/> + <include name="${build_t.gen.rootrel}/native/TK_Surface_JNI.c"/> </patternset> <c.build c.compiler.src.files="junit.test1p1.c.src.files" @@ -355,6 +357,8 @@ <patternset id="junit.test1p2.c.src.files"> <include name="${build_t.gen.rootrel}/native/Bindingtest1p2Impl_JNI.c"/> + <include name="${build_t.gen.rootrel}/native/TK_Engine_JNI.c"/> + <include name="${build_t.gen.rootrel}/native/TK_Surface_JNI.c"/> </patternset> <c.build c.compiler.src.files="junit.test1p2.c.src.files" diff --git a/make/build.xml b/make/build.xml index d26beec..d27b801 100644 --- a/make/build.xml +++ b/make/build.xml @@ -291,7 +291,13 @@ <property name="linker.cfg.id" value="linker.cfg.linux" /> </target> - <target name="declare.linux" depends="declare.linux.x86,declare.linux.amd64,declare.linux.ia64" if="isLinux" > + <target name="declare.linux.arm7" if="isLinuxARM7"> + <echo message="Linux.arm7" /> + <property name="compiler.cfg.id" value="compiler.cfg.linux.arm7" /> + <property name="linker.cfg.id" value="linker.cfg.linux.arm7" /> + </target> + + <target name="declare.linux" depends="declare.linux.x86,declare.linux.amd64,declare.linux.ia64,declare.linux.arm7" if="isLinux" > <property name="c.src.dir.os" value="unix" /> <property name="java.includes.dir.platform" value="${java.includes.dir}/linux" /> </target> @@ -393,7 +399,7 @@ <fail message="Requires '${compiler.cfg.id}'" unless="compiler.cfg.id"/> <fail message="Requires '${linker.cfg.id}'" unless="linker.cfg.id"/> - <javah destdir="${src.generated.c}" classpath="${classes}" class="com.jogamp.common.os.Platform" /> + <javah destdir="${src.generated.c}" classpath="${classes}" class="jogamp.common.os.MachineDescriptionRuntime" /> <javah destdir="${src.generated.c}" classpath="${classes}" class="com.jogamp.common.jvm.JVMUtil" /> <javah destdir="${src.generated.c}" classpath="${classes}" class="com.jogamp.common.nio.PointerBuffer" /> <javah destdir="${src.generated.c}/Unix" classpath="${classes}" class="com.jogamp.common.os.UnixDynamicLinkerImpl" /> diff --git a/make/config/intptr.cfg b/make/config/intptr.cfg deleted file mode 100755 index c946e48..0000000 --- a/make/config/intptr.cfg +++ /dev/null @@ -1,17 +0,0 @@ -CustomCCode #ifdef _WIN32 -CustomCCode #ifdef _MSC_VER -CustomCCode /* This typedef is apparently needed for Microsoft compilers before VC8, -CustomCCode and on Windows CE */ -CustomCCode #if (_MSC_VER < 1400) || defined(UNDER_CE) -CustomCCode #ifdef _WIN64 -CustomCCode typedef long long intptr_t; -CustomCCode #else -CustomCCode typedef int intptr_t; -CustomCCode #endif -CustomCCode #endif -CustomCCode #else -CustomCCode #include <inttypes.h> -CustomCCode #endif -CustomCCode #else -CustomCCode #include <inttypes.h> -CustomCCode #endif diff --git a/make/gluegen-cpptasks-base.xml b/make/gluegen-cpptasks-base.xml index ac09037..5be1361 100755 --- a/make/gluegen-cpptasks-base.xml +++ b/make/gluegen-cpptasks-base.xml @@ -24,6 +24,7 @@ - isLinuxAMD64 - isLinuxIA64 - isLinuxX86 + - isLinuxARM - isOSX - isOSXPPC - isSolaris @@ -93,6 +94,7 @@ - - compiler.cfg.linux - compiler.cfg.linux.amd64 + - compiler.cfg.linux.arm7 - compiler.cfg.solaris - compiler.cfg.solaris.sparcv9 - compiler.cfg.solaris.amd64 @@ -104,6 +106,7 @@ - compiler.cfg.hpux - linker.cfg.linux - linker.cfg.linux.amd64 + - linker.cfg.linux.arm7 - linker.cfg.freebsd.x86 - linker.cfg.freebsd.amd64 - linker.cfg.solaris @@ -123,6 +126,10 @@ <project name="GlueGen-cpptasks-base" basedir="."> <target name="gluegen.cpptasks.initialize" depends="gluegen.properties.load.user"> + <echo message="os.name=${os.name}" /> + <echo message="os.version=${os.version}" /> + <echo message="os.arch=${os.arch}" /> + <!-- NOTE: the value of the debug attribute will not be overridden if already set externally --> <property name="c.compiler.debug" value="false" /> @@ -215,6 +222,12 @@ <condition property="isHPUX"> <os name="HP-UX" /> </condition> + <condition property="isLinuxARM7"> + <and> + <istrue value="${isLinux}" /> + <os arch="arm" /> + </and> + </condition> <condition property="isLinuxX86"> <and> <istrue value="${isLinux}" /> @@ -311,6 +324,7 @@ <echo message="LinuxAMD64=${isLinuxAMD64}" /> <echo message="LinuxIA64=${isLinuxIA64}" /> <echo message="LinuxX86=${isLinuxX86}" /> + <echo message="LinuxARM=${isLinuxARM}" /> <echo message="OS X=${isOSX}" /> <echo message="OS X PPC=${use.macosppc}" /> <echo message="OS X x32=${use.macosx32}" /> @@ -352,7 +366,11 @@ <property name="os.and.arch" value="linux-i586" /> </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" unless="gluegen.cpptasks.detected.os.2" /> + <target name="gluegen.cpptasks.detect.os.linux.arm7" unless="gluegen.cpptasks.detected.os.2" if="isLinuxARM7"> + <property name="os.and.arch" value="linux-arm7" /> + </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.arm7" 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" /> @@ -574,6 +592,15 @@ </defineset> </compiler> + <compiler id="compiler.cfg.linux.arm7" name="gcc"> + <defineset> + <define name="__unix__"/> + <define name="_DEBUG" if="c.compiler.use-debug"/> + <define name="DEBUG" if="c.compiler.use-debug"/> + <define name="NDEBUG" unless="c.compiler.use-debug"/> + </defineset> + </compiler> + <compiler id="compiler.cfg.freebsd" name="gcc"> <defineset> <define name="__unix__"/> @@ -743,6 +770,9 @@ <linkerarg value="-m64"/> </linker> + <linker id="linker.cfg.linux.arm7" name="gcc"> + </linker> + <linker id="linker.cfg.hpux" name="aCC"> </linker> @@ -878,6 +908,13 @@ <property name="java.lib.dir.platform" value="${java.home.dir}/jre/lib/i386" /> </target> + <target name="gluegen.cpptasks.declare.compiler.linux.arm7" if="isLinuxARM7"> + <echo message="Linux.arm7" /> + <property name="compiler.cfg.id.base" value="compiler.cfg.linux.arm7" /> + <property name="linker.cfg.id.base" value="linker.cfg.linux.arm7" /> + <property name="java.lib.dir.platform" value="${java.home.dir}/jre/lib/arm" /> + </target> + <target name="gluegen.cpptasks.declare.compiler.linux.amd64" if="isLinuxAMD64"> <echo message="Linux.AMD64" /> <property name="compiler.cfg.id.base" value="compiler.cfg.linux.amd64" /> @@ -892,7 +929,7 @@ <property name="java.lib.dir.platform" value="${java.home.dir}/jre/lib/ia64" /> </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" 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.arm7" if="isLinux"> <property name="java.includes.dir.platform" value="${java.includes.dir}/linux" /> </target> diff --git a/make/scripts/runtest.sh b/make/scripts/runtest.sh index 558d4f1..f720dcf 100755 --- a/make/scripts/runtest.sh +++ b/make/scripts/runtest.sh @@ -39,13 +39,13 @@ function onetest() { echo } -#onetest com.jogamp.common.GlueGenVersion 2>&1 | tee -a $LOG +onetest com.jogamp.common.GlueGenVersion 2>&1 | tee -a $LOG #onetest com.jogamp.common.util.TestVersionInfo 2>&1 | tee -a $LOG #onetest com.jogamp.common.util.TestIteratorIndexCORE 2>&1 | tee -a $LOG #onetest com.jogamp.common.util.locks.TestRecursiveLock01 2>&1 | tee -a $LOG #onetest com.jogamp.common.util.TestArrayHashSet01 2>&1 | tee -a $LOG #onetest com.jogamp.common.util.IntIntHashMapTest 2>&1 | tee -a $LOG -onetest com.jogamp.common.util.IntObjectHashMapTest 2>&1 | tee -a $LOG +#onetest com.jogamp.common.util.IntObjectHashMapTest 2>&1 | tee -a $LOG #onetest com.jogamp.common.util.LongIntHashMapTest 2>&1 | tee -a $LOG #onetest com.jogamp.common.nio.TestBuffersFloatDoubleConversion 2>&1 | tee -a $LOG #onetest com.jogamp.gluegen.PCPPTest 2>&1 | tee -a $LOG diff --git a/make/stub_includes/gluegen/gluegen_types.h b/make/stub_includes/gluegen/gluegen_types.h index d1f003a..3df8eb4 100644 --- a/make/stub_includes/gluegen/gluegen_types.h +++ b/make/stub_includes/gluegen/gluegen_types.h @@ -24,6 +24,10 @@ * * The following types are build-in: * + * int8_t - stdint.h + * uint8_t - stdint.h + * int16_t - stdint.h + * uint16_t - stdint.h * __int32 - windows * int32_t - stdint.h * wchar_t - stddef.h diff --git a/make/stub_includes/platform/gluegen_stdint.h b/make/stub_includes/platform/gluegen_stdint.h index 1dd712b..8b1dbe3 100644 --- a/make/stub_includes/platform/gluegen_stdint.h +++ b/make/stub_includes/platform/gluegen_stdint.h @@ -10,14 +10,22 @@ #elif defined(WIN32) && defined(__GNUC__) #include <stdint.h> #elif defined(_WIN64) + typedef signed char int8_t; + typedef unsigned char uint8_t; + typedef signed short int16_t; + typedef unsigned short uint16_t; typedef __int32 int32_t; typedef unsigned __int32 uint32_t; typedef __int64 int64_t; typedef unsigned __int64 uint64_t; - typedef __int64 intptr_t; - typedef unsigned __int64 uintptr_t; + typedef __int64 intptr_t; + typedef unsigned __int64 uintptr_t; #elif defined(_WIN32) + typedef signed char int8_t; + typedef unsigned char uint8_t; + typedef signed short int16_t; + typedef unsigned short uint16_t; typedef __int32 int32_t; typedef unsigned __int32 uint32_t; typedef __int64 int64_t; @@ -26,6 +34,10 @@ typedef __int32 intptr_t; typedef unsigned __int32 uintptr_t; #elif defined(__ia64__) || defined(__x86_64__) + typedef signed char int8_t; + typedef unsigned char uint8_t; + typedef signed short int16_t; + typedef unsigned short uint16_t; typedef signed int int32_t; typedef unsigned int uint32_t; typedef signed long int64_t; @@ -34,6 +46,10 @@ typedef long intptr_t; typedef unsigned long uintptr_t; #else + typedef signed char int8_t; + typedef unsigned char uint8_t; + typedef signed short int16_t; + typedef unsigned short uint16_t; typedef signed int int32_t; typedef unsigned int uint32_t; typedef signed long long int64_t; |