Closed Bug 829850 Opened 11 years ago Closed 11 years ago

Build errors with VS2012 - mixing MTd libs with MDd exes fail to link

Categories

(SeaMonkey :: Build Config, defect)

x86_64
Windows 7
defect
Not set
normal

Tracking

(Not tracked)

RESOLVED FIXED
seamonkey2.22

People

(Reporter: s793016, Assigned: mcsmurf)

References

Details

Attachments

(2 files, 1 obsolete file)

Attached patch sm-vc11.diffSplinter Review
User Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:10.0.2) Gecko/20120331 Firefox/10.0.2 SeaMonkey/2.7.2
Build ID: 20120401095132

Steps to reproduce:

Typical error:
unicharutil_external_s.lib(nsUnicharUtils.obj) : error LNK2038: mismatch detected for 'RuntimeLibrary': value 'MT_StaticRelease' doesn't match value 'MD_DynamicRelease' in nsSuiteModule.obj
unicharutil_external_s.lib(nsUnicodeProperties.obj) : error LNK2038: mismatch detected for 'RuntimeLibrary': value 'MT_StaticRelease' doesn't match value 'MD_DynamicRelease' in nsSuiteModule.obj
   Creating library fake.lib and object fake.exp
suite.dll : fatal error LNK1319: 2 mismatches detected


Actual results:

unicharutil_external_s.lib(nsUnicharUtils.obj) : error LNK2038: mismatch detected for 'RuntimeLibrary': value 'MT_StaticRelease' doesn't match value 'MD_DynamicRelease' in nsSuiteModule.obj
unicharutil_external_s.lib(nsUnicodeProperties.obj) : error LNK2038: mismatch detected for 'RuntimeLibrary': value 'MT_StaticRelease' doesn't match value 'MD_DynamicRelease' in nsSuiteModule.obj
   Creating library fake.lib and object fake.exp
suite.dll : fatal error LNK1319: 2 mismatches detected


Expected results:

no error
Moving to Core::BuildConfig
Product: SeaMonkey → Core
Version: SeaMonkey 2.14 Branch → 17 Branch
Attachment #701376 - Attachment is patch: true
Sorry, forgot include source information.

The problem source code is Seamonkey 2.14.1 release.
I ran into the same problem building trunk SM on Windows 8 using VS 2012 Express.
The path solved the error for me.
Status: UNCONFIRMED → NEW
Ever confirmed: true
Version: 17 Branch → Trunk
Attachment #701376 - Flags: review?(ted)
Jim: trunk should build with VS 2012, right? Any idea why people would be running into this issue?
Flags: needinfo?(jmathies)
We addressed this generating glue libs that link to both the static and dynamic runtime.

http://mxr.mozilla.org/mozilla-central/source/configure.in#1032

for browser:

http://mxr.mozilla.org/mozilla-central/source/browser/components/build/Makefile.in#58

Some of the cc apps probably still need a build config update to get the right runtime linked in when building with vs11.
Flags: needinfo?(jmathies)
Attachment #701376 - Flags: review?(ted) → review-
Per Comment 6 this probably belongs into the SeaMonkey product then.
Product: Core → SeaMonkey
Component: Build Config → General
Attached patch Patch (obsolete) — Splinter Review
This seems to fix the issue, need to make sure those changes are correct (I'm not that familiar with the whole "link"ing business :)
--> me, will drive this forward
Assignee: nobody → bugzilla
Status: NEW → ASSIGNED
Comment on attachment 736895 [details] [diff] [review]
Patch

>diff --git a/suite/build/Makefile.in b/suite/build/Makefile.in
>--- a/suite/build/Makefile.in
>+++ b/suite/build/Makefile.in
>@@ -15,6 +15,7 @@ FORCE_SHARED_LIB = 1
> IS_COMPONENT	 = 1
> MODULE_NAME	 = nsSuiteModule
> 
>+USE_STATIC_LIBS	= 1
Nit: needs an extra space to line up with the = signs above.

>diff --git a/suite/feeds/src/Makefile.in b/suite/feeds/src/Makefile.in
>--- a/suite/feeds/src/Makefile.in
>+++ b/suite/feeds/src/Makefile.in
>@@ -13,6 +13,8 @@ MODULE = suitefeeds
> LIBRARY_NAME = suitefeeds_s
> FORCE_STATIC_LIB = 1
> 
>+USE_STATIC_LIBS = 1
>+
I like this version best, so I have pointed out where all of the rest differ.

>diff --git a/suite/profile/Makefile.in b/suite/profile/Makefile.in
>--- a/suite/profile/Makefile.in
>+++ b/suite/profile/Makefile.in
>@@ -12,6 +12,7 @@ include $(DEPTH)/config/autoconf.mk
> MODULE		= suiteprofile
> LIBRARY_NAME	= suiteprofile_s
> 
>+USE_STATIC_LIBS=1
Nit: put this after FORCE_STATIC_LIB=1
Nit: spaces around = (fix both lines please)

>diff --git a/suite/profile/migration/src/Makefile.in b/suite/profile/migration/src/Makefile.in
>--- a/suite/profile/migration/src/Makefile.in
>+++ b/suite/profile/migration/src/Makefile.in
>@@ -7,6 +7,8 @@ topsrcdir	= @top_srcdir@
> srcdir		= @srcdir@
> VPATH		= @srcdir@
> 
>+USE_STATIC_LIBS = 1
Nit: put this after FORCE_STATIC_LIB = 1

>--- a/suite/shell/src/Makefile.in
>+++ b/suite/shell/src/Makefile.in
>@@ -11,7 +11,7 @@ include $(DEPTH)/config/autoconf.mk
> 
> MODULE = shellservice
> FORCE_STATIC_LIB=1
>-
>+USE_STATIC_LIBS=1
Nit: spaces around = (fix both lines please)
Nit: keep a blank line in between
Attachment #736895 - Flags: review+
Component: General → Build Config
Depends on: 732124
Attachment #736895 - Attachment is obsolete: true
Attachment #770831 - Flags: review+
Pushed: https://hg.mozilla.org/comm-central/rev/7d37ef76c40d
Status: ASSIGNED → RESOLVED
Closed: 11 years ago
Resolution: --- → FIXED
Target Milestone: --- → seamonkey2.22
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Creator:
Created:
Updated:
Size: