Why ld not read some non-virtual thunk in a import library or dll?

Bo Yang techrazy.yang@gmail.com
Wed Jul 9 07:54:00 GMT 2008


On Tue, Jul 8, 2008 at 2:30 PM, Brian Dessent <brian@dessent.net> wrote:
> Bo Yang wrote:
>
>> And the only difference between two libxpcom_core.dll.a is that there
>> is a @xx at the one which gcc 3.4.2 produce. I don't understand why
>
> That @nn is the usual mangling for functions declared with the stdcall
> calling convention.
>
>> this "@xx" affect linkage. I hope my information make the problem
>
> It affects linkage because the callsite expects the symbol to have the
> correct mangling, but the compiler is emitting the symbol with the wrong
> name.

And I have another question here. Could you please tell me why the
corresponding DLL provide both "@xx" and "no @xx" symbols, but the
libxpcom_core.dll.a just provide the ones without "@xx"? And, when I
use ld to link to the DLL directly instead of the import library, it
failed, too. Could you please tell me why it failed again?

Regards!
Bo



More information about the Binutils mailing list