Closed Bug 529718 Opened 10 years ago Closed 10 years ago

static builds error with win7 SDK

Categories

(MailNews Core :: Build Config, defect)

x86
Windows XP
defect
Not set

Tracking

(Not tracked)

RESOLVED FIXED

People

(Reporter: philbaseless-firefox, Unassigned)

Details

Attachments

(1 file, 3 obsolete files)

final thunderbird link gives error:
gkwidget.lib(JumpListItem.obj) : error LNK2019: unresolved external symbol __imp__SHStrDupW@8 referenced in function "long __cdecl InitPropVariantFromString(unsigned short const *,struct tagPROPVARIANT *)" (?InitPropVariantFromString@@YAJPBGPAUtagPROPVARIANT@@@Z)

mozconfig:
 mk_add_options MOZ_CO_PROJECT=mail
 ac_add_options --enable-application=mail
 mk_add_options MOZ_OBJDIR=@TOPSRCDIR@/../objdir-rel_tb
 ac_add_options --enable-optimize --disable-debug --disable-tests
 ac_add_options --enable-static --disable-shared
# uncomment following will be successful
# ac_add_options --with-windows-version=600
 ac_add_options --enable-extensions=default,venkman

building error only started after:
1. building on branched comm-central with the moz-cen mozilla trunk;
2. new installed win 7 SDK on XP machine;
3. upgrade of mozilla-build to 1.4
Well, it probably started after JumpListItem landed, we just weren't building trunk at the time.

Given that the tinderbox is building fine, with the Win7 SDK, I sort of suspect that the missing thing in the steps to reproduce is "with Visual Studio 2008 Express Edition."
Looking at the patch on bug 473045 I see shlwapi being added to the list of OS_LIBS for WINCE. A bit of investigation and it would seem that toolkit/library/Makefile.in already has that for WINNT.

Therefore I would suggest you try adding

ifdef BUILD_STATIC_LIBS
OS_LIBS += $(call EXPAND_LIBNAME,shlwapi)
endif

around about here:

http://hg.mozilla.org/comm-central/annotate/56e7f2b3ab98/mail/app/Makefile.in#l202

and see if that fixes the issue.
Attached patch Patch fixing the Error (obsolete) — Splinter Review
Standard8, I tried your proposal from comment #2 and it works.

I attached it as a patch. if this is sufficient, please set review to someone suitable.
Comment on attachment 413421 [details] [diff] [review]
Patch fixing the Error


>+ifdef BUILD_STATIC_LIBS
>+OS_LIBS += $(call EXPAND_LIBNAME,shlwapi)
>+endif
>+
> ifeq ($(OS_ARCH),WINNT)

I think it needs to be within the WINNT block and flag Standard8 for review see what happens.
Attached patch Patch V2 (obsolete) — Splinter Review
(In reply to comment #4)
> (From update of attachment 413421 [details] [diff] [review])
> 
> >+ifdef BUILD_STATIC_LIBS
> >+OS_LIBS += $(call EXPAND_LIBNAME,shlwapi)
> >+endif
> >+
> > ifeq ($(OS_ARCH),WINNT)
> 
> I think it needs to be within the WINNT block and flag Standard8 for review see
> what happens.

Sounds reasonable, tried it and it also works.
This is the updated patch.
Attachment #413421 - Attachment is obsolete: true
Attachment #413570 - Flags: review?(bugzilla)
Comment on attachment 413570 [details] [diff] [review]
Patch V2

Thanks for the patch. r=Standard8. Could you patch SeaMonkey as well?
Attachment #413570 - Flags: review?(bugzilla) → review+
I haven't worked with seamonkey yet.
Since I had problems cloning repositories lately (hg errors most probably due to timeout), it could be a lot of work for a little change.
Perhaps someone with a working copy of Seamonkey Repo can do this.
(In reply to comment #7)
> I haven't worked with seamonkey yet.
> Since I had problems cloning repositories lately (hg errors most probably due
> to timeout), it could be a lot of work for a little change.
> Perhaps someone with a working copy of Seamonkey Repo can do this.

Well assuming you produced this patch with an hg copy of comm-central, then you just need to apply it to suite/app/Makefile.in...
ok, then I will make it.
if you decide not to mess with seamonkey I can build it. if you want to just submit the patch and not test, add another entry to line 196 for the lib and let me know.
Attached patch Patch V3 - incl. Seamonkey (obsolete) — Splinter Review
Here's the new Patch.
I changed the part for TB as well, because I saw, that there already is a "ifdef BUILD_STATIC_LIBS" Block within the WINNT block.

I tested the build for TB, but not SeaMonkey.
Attachment #413570 - Attachment is obsolete: true
Attachment #414044 - Flags: review?(bugzilla)
Comment on attachment 414044 [details] [diff] [review]
Patch V3 - incl. Seamonkey

>diff --git a/suite/app/Makefile.in b/suite/app/Makefile.in

> ifdef BUILD_STATIC_LIBS
> OS_LIBS += $(call EXPAND_LIBNAME, msimg32)
>+OS_LIBS += $(call EXPAND_LIBNAME,shlwapi)

nit: this can just be

OS_LIBS += $(call EXPAND_LIBNAME, msimg32 shlwapi)

r=Standard8 with that fixed.
Attachment #414044 - Flags: review?(bugzilla) → review+
Style nit corrected.
Attachment #414044 - Attachment is obsolete: true
Attachment #414226 - Flags: review+
Pushed to comm-cebtral <http://hg.mozilla.org/comm-central/rev/7526e65698d2>

--> FIXED
Status: NEW → RESOLVED
Closed: 10 years ago
Resolution: --- → FIXED
You need to log in before you can comment on or make changes to this bug.