Well, in trying to use the benchmarking mode under uClinux, I discovered that 
gradients make pgserver crash. Upon closer investigation, it's a divide-by-zero caused 
by a corrupted trigtab[].  Upon much closer investigation, something really wierd is 
going on...

I added code _at the beginning of main_ to dump the contents of trigtab[] and some of 
the surrounding memory. Starting about halfway through the table, 180 bytes are 
modified. Most of them zero, the last three appear random. I figure this is either a 
linker problem, or maybe something with the uClibc or crt0 code? It appears to be tied 
to the memory location around the table, not the table itself. A workaround I tried 
was replacing a table with a function that could generate the table at runtime. It 
would crash whenever I enter the function.

According to objdump, the trigtab[] is getting stored in the .data segment. Because 
it's not modified, this isn't necessary. I changed the type from "unsigned char" to 
"u8 const" but the linker would complain with the following messages:

pgmain.o(.text+0x522):pgmain.c: relocation truncated to fit: 16 trigtab
vidbase/libvidbase.a(defaultvbl.o)(.text+0xf70):defaultvbl.c: relocation truncated to 
fit: 16 trigtab
vidbase/libvidbase.a(defaultvbl.o)(.text+0xf84):defaultvbl.c: relocation truncated to 
fit: 16 trigtab
vidbase/libvidbase.a(defaultvbl.o)(.text+0xf9c):defaultvbl.c: relocation truncated to 
fit: 16 trigtab
vidbase/libvidbase.a(defaultvbl.o)(.text+0xfae):defaultvbl.c: relocation truncated to 
fit: 16 trigtab
vidbase/libvidbase.a(defaultvbl.o)(.text+0xfd4):defaultvbl.c: relocation truncated to 
fit: 16 trigtab
vidbase/libvidbase.a(defaultvbl.o)(.text+0xfe8):defaultvbl.c: relocation truncated to 
fit: 16 trigtab
vidbase/libvidbase.a(defaultvbl.o)(.text+0x1000):defaultvbl.c: relocation truncated to 
fit: 16 trigtab
vidbase/libvidbase.a(defaultvbl.o)(.text+0x1012):defaultvbl.c: relocation truncated to 
fit: 16 trigtab

Maybe it's a problem with the PIC32 patch?

Anyway, I'm not really sure what to do at this point. Is it just me? Maybe my 
cross-compiler installation is messed up...

--
To the systems programmer, users and applications serve only to provide a 
test load.


_______________________________________________
Pgui-devel mailing list
[EMAIL PROTECTED]
http://lists.sourceforge.net/lists/listinfo/pgui-devel

Reply via email to