From: Kai T. <kti...@go...> - 2012-05-14 09:55:06
|
2012/5/13 MARTIN Pierre <hic...@gm...>: > Dear Kai, dear list readers, > > No, gendef seems to add double @<n> symbol happily. You can file a > bug about gendef to our bugtracker for this. > > i surely will. > > Simply remove double @<n> at line end. things like ...@12@12 to ...@12. > > Done. > > > As long as they aren't accessed it should work, but better to remove > it from your .def file IMHO. > > Done too. > > Now, something very interesting just happened: > Using dlltool, i generated a --output-lib, and after all the changes > i have done following your advices, my main binary finally accepted > to start up, and to run without any problem. > > So i immediately re-generated the import lib with --output-delaylib > this time, and now i get a segfault when the main binary starts. > > This (In my opinion) proves that delay-loaded import libraries are > maybe the problem here, and i really would like you to help me > to pinpoint what could be the bug, if you have any other manipulation > i can make to advance. > > Thanks a lot Kai, i really feel we're getting closer and closer to > the real problem right now. Yes, this indicates that there might be a calling-convention issue. static functions in classes have btw normally __cdecl calling-convention (as long as not explicit marked having stdcall), and class-member-functions, which aren't variadic, have for 4.7 gcc (or newer) __thiscall calling-convention. > Pierre. > > P.S., unrelated: As you suggesteded, i will open a bug report on the > gendef maintainers page. i just would like you to explain me what > is the name of this "@XX" tag that is getting doubled, so people > reading the bug report will understand what i mean. In your email, > you called that the "extension", is that everything i should say so they > understand what i'm refering to? The @<n> decoration's meaning is the following. <n> specifies the amount of stack automatically released on function-return. This decoration can happen for stdcall and fastcall. |