Closed Bug 662188 Opened 8 years ago Closed 8 years ago

Lots of warnings linking to XPCOM symbols

Categories

(MailNews Core :: Build Config, defect)

x86
Windows XP
defect
Not set

Tracking

(Not tracked)

RESOLVED FIXED

People

(Reporter: neil, Assigned: neil)

Details

Attachments

(1 file)

We link most of mailnews into libxul but this means that we can use the unexported versions of xpcom symbols. However the Makefiles don't know that.
Attached patch Proposed patchSplinter Review
Assignee: nobody → neil
Status: NEW → ASSIGNED
Attachment #537477 - Flags: review?(mbanner)
Comment on attachment 537477 [details] [diff] [review]
Proposed patch

I've been wondering what's been causing this.

I guess the only real affect is the warnings? (i.e. no perf/other implications)?
Attachment #537477 - Flags: review?(mbanner) → review+
LNK4049 - Like LNK4217 but only applies to PGO/incremental links where the name of the source file has been thrown away before the warning is generated.
LNK4217 - Linking to symbol defined as dllimport. dllimport makes linking to a symbol in another module more efficient because the compiler goes straight to the imported function address table instead of via the convenience stub provided in the import library.

Call to internal function:
        call Foo

Naive call to symbol in another module:
        call Foo
Plus convenience stub in import library
Foo:    jmp [__imp__Foo]
[Note that taking the address of Foo gives you a bogus address.]

Smart call to symbol in another module:
        call [__imp__Foo]

Bogus dllimport call
        call [__imp_Foo]
Plus linker-created stub
__imp_Foo: dd Foo
The linker can sometimes simplify this to
        call Foo
        nop ; call is one byte shorter than call[]
Pushed changeset 2aaa39c691fe to comm-central.
Status: ASSIGNED → RESOLVED
Closed: 8 years ago
Resolution: --- → FIXED
You need to log in before you can comment on or make changes to this bug.