Bug 1056

Summary: Wrong guess on the endianness of powerpc
Product: [JogAmp] Gluegen Reporter: tmancill
Component: coreAssignee: Sven Gothel <sgothel>
Status: RESOLVED FIXED    
Severity: enhancement    
Priority: ---    
Version: 2.3.0   
Hardware: pc_ppc   
OS: all   
Type: --- SCM Refs:
Workaround: ---
Bug Depends on: 1126    
Bug Blocks:    
Attachments: scilab stacktrace on ppc

Description tmancill 2014-08-30 05:13:14 CEST
Created attachment 627 [details]
scilab stacktrace on ppc

Hi - in looking at the source code, it it doesn't appear that powerpc is detected as little endian x86.  Attached is an example stack trace.
Comment 1 Sven Gothel 2014-10-09 07:41:08 CEST
The static configuration makes a wrong 'guess' here
and comparison w/ dynamic probing fails.

I assume the dynamic config to reflect the true values,
otherwise our probing is false.

We probe variable type size and alignment,
as well as other values using native code
from our native library.
Some values are probed via Java.

The static value probably is at fault here.

Incompatible fields:
             static:    dynamic:
littleEndian true       false
int64*       8 / 4      8 / 8
double*      8 / 4      8 / 8
ldouble*     12 / 4     16 / 16

(*) size/alignment

It could help if you send the whole log up until this failure
w/ all debug flags enabled!

Further, please add OS and CPU information.

If you are knowledgeable about CPU cpu configurations,
maybe you can help picking the proper 
static configuration: MachineDescriptionRuntime.getStatic().
  
The usage of static values is indeed a huge issue here.
The static version is used in generated structs for
length - and the offset is generated at compile time
using the alignment and the size.

We might could move the table generation to runtime,
which would allow us to drop the static config.
However, this would require us to rewrite 
package 'jogamp.common.os.elf',
which also uses structs from the ELF headers ..
which in turn determines which native library we load.

Full cycle: The latter also contains code for probing the dynamic values.

In short: Getting rid of static config will be some work.
Comment 2 Sven Gothel 2015-02-02 00:32:10 CET
'Should' be fixed by changes for Bug 1126.

In case this (or a related) issue still persists,
please reopen this bug and comment.

Note: I don't have PPC hardware here.
Comment 3 tmancill 2015-02-04 05:33:16 CET
(In reply to comment #2)
> 'Should' be fixed by changes for Bug 1126.
> 
> In case this (or a related) issue still persists,
> please reopen this bug and comment.
> 
> Note: I don't have PPC hardware here.

Thanks!  I'll test it and follow-up.