-extern unsigned char AmlCode[]; +extern const acpi_header_t AmlCode;
And we're positive, this always does the right thing with gcc?
I am told that AmlCode is defined as array of (unsigned) char in some other file. Declaring it as some other type here is not valid C, and *will* break with GCC, with some options (-combine or LTO at least) -- it will not compile.
The biggest worry for me is incorrect execution. If it doesn't compile when it breaks, then that's a good thing.
It will probably _work_ with current GCC and no whole-program stuff, but how do you *know* it does? Better to just fix it.
Segher