Closed Bug 605368 Opened 11 years ago Closed 11 years ago

Linker errors on shared builds with D3D10 for cairo_d2d_device_get_device in nsWindowGfx

Categories

(Core :: Graphics, defect)

x86
Windows XP
defect
Not set
normal

Tracking

()

RESOLVED FIXED
mozilla2.0b7
Tracking Status
blocking2.0 --- final+

People

(Reporter: birtles, Assigned: bas.schouten)

Details

Attachments

(1 file)

The check-in for bug 604271 has broken shared builds with D3D10.

Specifically I get the following linker error:

nsWindowGfx.obj : error LNK2019: unresolved external symbol _cairo_d2d_device_get_device referenced in function "protected: int __thiscall nsWindow::OnPaint(struct HDC__ *,unsigned int)" (?OnPaint@nsWindow@@IAEHPAUHDC__@@I@Z)
gkwidget.dll : fatal error LNK1120: 1 unresolved externals

This appears to be introduced by:

http://hg.mozilla.org/mozilla-central/rev/04e8bcc07449

mozconfig as follows:
. $topsrcdir/browser/config/mozconfig
mk_add_options MOZ_OBJDIR=@TOPSRCDIR@/obj-debug
ac_add_options --disable-optimize
ac_add_options --enable-debug
ac_add_options --enable-tests
ac_add_options --disable-libxul
ac_add_options --disable-static
ac_add_options --disable-ipc
ac_add_options --disable-crashreporter
ac_add_options --disable-accessibility
ac_add_options --enable-chrome-format=jar
This should make shared builds work again!
Attachment #484213 - Flags: review?(roc)
Shouldn't the body go in gfxWindowsPlatform.cpp to make sure it doesn't get inlined?
(In reply to comment #2)
> Shouldn't the body go in gfxWindowsPlatform.cpp to make sure it doesn't get
> inlined?

In that unit gfxWindowsPlatform should be declared __declspec(dllimport) by the macro magic, I thought that prevented inlining. I might be wrong though! I wasn't able to test it.
Comment on attachment 484213 [details] [diff] [review]
Limit cairo call to gfxWindowsPlatform

r+ if it works
Attachment #484213 - Flags: review?(roc) → review+
(In reply to comment #4)
> Comment on attachment 484213 [details] [diff] [review]
> Limit cairo call to gfxWindowsPlatform
> 
> r+ if it works

I just verified that it works.
Status: NEW → ASSIGNED
Keywords: checkin-needed
This will fix people's shared builds.
blocking2.0: --- → ?
Probably needs blocking status.
I'll take the patch, but I've no desire to block on it.
blocking2.0: ? → -
I have a very strong desire to block on non-libxul-builds building.
blocking2.0: - → ?
blocking2.0: ? → final+
http://hg.mozilla.org/mozilla-central/rev/f4a06cca9fb9
Status: ASSIGNED → RESOLVED
Closed: 11 years ago
Resolution: --- → FIXED
Keywords: checkin-needed
Target Milestone: --- → mozilla2.0b8
Target Milestone: mozilla2.0b8 → mozilla2.0b7
You need to log in before you can comment on or make changes to this bug.