Piotr Wyderski wrote:
> Trying to work-around PR40269 (which doesn't happen
> anymore on trunk, so you may close it) I've commented
> out the dllexport/dllimport section:
>
> #define BASE_DLLEXPORT /*__declspec(dllexport)*/
> #define BASE_DLLIMPORT /*__declspec(dllimport)*/
>
> Then the program compiled successfully, emitting a lot
> of auto-import warning messages, but crashed unexpectedly
> somewhere in the middle of execution. If these __declspecs
> are uncommented, then it works correctly, as expected. Is
> it a known auto-import bug or "feature" I should be aware of,
> or should I dig deeper into the subject and ask out a debbugger
> for a passionate afternoon session?
You deleted correct code, ignored all the warnings, and got a crashing
executable. Is that a bug? I can't be sure without seeing your full
testcase, but I'd guess not. Auto-import is something of a best-effort
last-resort fallback. It cannot handle everything that properly annotating
the source code can handle.
See the section of the ld manual documenting `--enable-auto-import' for the
full and gory details. Does passing --enable-runtime-pseudo-reloc to the
linker help any in this case?
cheers,
DaveK