So I suppose your declarations were at file scope? (Because it's still not 100% clear from what you said.)
In the original C file, there is only one single .c file with no .h files.
One file, one program, and at some point, you read
const unsigned int data_size = 32;
unsigned char data[data_size];
const unsigned int sense_len = 256;
unsigned char sense[sense_len];
as global definition, outside a function.
It immediately compiled as is with gcc v4.1.2. When I removed "const" still the code got compiled, and in both cases it worked correctly.
Great! But when I moved the code to AvogetCC, it didn't get compiled at all. The compiler doesn't understand VLAs (there are 21 points to be rewritten), and doesn't like 'const', and this is also a problem for my ICE since I massively need to debug/interact with the hardware.
I need to use AvogetCC + ICE on a industrial PPC machine with the same HBA chip soldered on the Motherboard but exposed to a simpler bus, I am doing it for wild hacking reasons (full reverse engineering of the used SCSI queries), I cannot use Gcc because it's not a GNU-supported machine (NetBSD .. maybe on day it will run, but at the moment the kernel crashes), hence here we go rewriting everything.
Problem solved two days ago, just ... still questions in my head + tons of WTF?!?