On Thu, Jul 31, 2008 at 11:00 PM, Brian Dessent <[EMAIL PROTECTED]> wrote: > Bo Yang wrote: > >> When we produce an exe from a single c++ file, there is no linking >> need, so there is no problem. But when we separate the definition and > > That's not how it works, the linker is always required to produce an > executable.
I am wrong. But how the linker find the __attribute__((__stdcall__)) bottom::fun1() when there is a single source file? There is no such definition in the object file. >> And Obviously, this is not a linker error, it is the problem gcc >> generate a " U [EMAIL PROTECTED]" for indeed existing >> definition of "__attribute__((__stdcall__)) bottom:fun1()" . > > The "U" lines are correct and aren't the problem; those are call sites > to the properly mangled symbol name. What's incorrect is that gcc emits > the function definitions (the 'T' lines) without the proper stdcall name > mangling. If gcc used the proper mangling for the definitions then the > undefined call sites would no longer be undefined and would not show up > in the objdump output any more. So, are you sure this bug is identical to PR27067 or not? Regards! Bo