Incompatible MachineDescriptions on MacBook Air

classic Classic list List threaded Threaded
2 messages Options
Reply | Threaded
Open this post in threaded view
|

Incompatible MachineDescriptions on MacBook Air

Matthias Reitinger
Hello there,

we are using JOGL 2.0-rc3 in one of our projects. Lately a client told us that our program won't start on his MacBook Air. The JVM shows the following stack trace/error message:

java.lang.ExceptionInInitializerError
at javax.media.nativewindow.NativeWindowFactory._getNativeWindowingType(NativeWindowFactory.java:105)
at javax.media.nativewindow.NativeWindowFactory.initSingleton(NativeWindowFactory.java:181)
at javax.media.opengl.GLProfile.initProfilesForDefaultDevices(GLProfile.java:1168)
at javax.media.opengl.GLProfile.access$000(GLProfile.java:71)
at javax.media.opengl.GLProfile$1.run(GLProfile.java:112)
at java.security.AccessController.doPrivileged(Native Method)
at javax.media.opengl.GLProfile.initSingleton(GLProfile.java:110)
[...our code...]
at java.lang.Thread.run(Thread.java:680)
Caused by: java.lang.RuntimeException: Incompatible MachineDescriptions:
Static MachineDescriptionStatic: X86_32_UNIX(1): MachineDescription: runtimeValidated false, littleEndian true, 32Bit true, primitive size / alignment:
 int8    1 / 1, int16   2 / 2
 int     4 / 4, long    4 / 4
 int32   4 / 4, int64   8 / 4
 float   4 / 4, double  8 / 4, ldouble 12 / 4
 pointer 4 / 4, page    4096
Runtime MachineDescription: runtimeValidated true, littleEndian true, 32Bit true, primitive size / alignment:
 int8    1 / 1, int16   2 / 2
 int     4 / 4, long    4 / 4
 int32   4 / 4, int64   8 / 4
 float   4 / 4, double  8 / 4, ldouble 16 / 16
 pointer 4 / 4, page    4096
at com.jogamp.common.os.Platform.<clinit>(Platform.java:193)

The installed JVM version is 1.6.0_26. Anyone know how to fix this?

Thanks,
Matthias
Reply | Threaded
Open this post in threaded view
|

Re: Incompatible MachineDescriptions on MacBook Air

Sven Gothel
Administrator
On Sunday, October 23, 2011 11:02:39 PM Matthias Reitinger [via jogamp] wrote:
>
> Hello there,
>
> we are using JOGL 2.0-rc3 in one of our projects. Lately a client told us
> that our program won't start on his MacBook Air. The JVM shows the following
> stack trace/error message:

<snip/>

> Caused by: java.lang.RuntimeException: Incompatible MachineDescriptions:
> Static MachineDescriptionStatic: X86_32_UNIX(1): MachineDescription:
> runtimeValidated false, littleEndian true, 32Bit true, primitive size /
> alignment:
>  int8    1 / 1, int16   2 / 2
>  int     4 / 4, long    4 / 4
>  int32   4 / 4, int64   8 / 4
>  float   4 / 4, double  8 / 4, ldouble 12 / 4
>  pointer 4 / 4, page    4096
> Runtime MachineDescription: runtimeValidated true, littleEndian true, 32Bit
> true, primitive size / alignment:
>  int8    1 / 1, int16   2 / 2
>  int     4 / 4, long    4 / 4
>  int32   4 / 4, int64   8 / 4
>  float   4 / 4, double  8 / 4, ldouble 16 / 16
>  pointer 4 / 4, page    4096
> at com.jogamp.common.os.Platform.<clinit>(Platform.java:193)
>
> The installed JVM version is 1.6.0_26. Anyone know how to fix this?

It's pretty interesting that OSX has diff. double type size/alignment for 'long double'.
I have checked their website and indeed, they have a note on this behavior for gcc >= 4.0.

I have updated the static MachineDescription in this regard (impacts code generation!)
  http://jogamp.org/git/?p=gluegen.git;a=commitdiff;h=0bafac07b61f10c1a24e8c052937607bbfcb39ec
  http://jogamp.org/git/?p=gluegen.git;a=commit;h=a19f98767da194ba468f53f56c2dcdb9d1d34ac8

Autobuild/test is already running.

Thank you Matthias.

~Sven