Closed Bug 550474 Opened 14 years ago Closed 14 years ago

Fix '--enable-static --disable-static-mail' behavior

Categories

(MailNews Core :: Build Config, defect)

defect
Not set
normal

Tracking

(Not tracked)

RESOLVED FIXED
Thunderbird 3.1b2

People

(Reporter: sgautherie, Assigned: sgautherie)

References

Details

Attachments

(1 file)

Options are:

--enable-static sets BUILD_STATIC_LIBS=1.
default = disabled in configure.in.

--disable-static-mail sets MOZ_STATIC_MAIL_BUILD=0.
default = enabled in SM+TB confvars.sh.

***

Relevant code examples:

configure.in:
    if test -n "$BUILD_STATIC_LIBS"; then
        AC_DEFINE(MOZ_STATIC_BUILD)
    fi

http://mxr.mozilla.org/comm-central/source/mailnews/base/src/nsMessengerWinIntegration.cpp#312
313 #ifdef MOZ_STATIC_BUILD
314 #define MAIL_DLL_NAME NULL
315 #else
316 #ifdef MOZ_STATIC_MAIL_BUILD
317 #define MAIL_DLL_NAME "mail.dll"
318 #else
319 #define MAIL_DLL_NAME "msgbase.dll"
320 #endif
321 #endif

*****

Build results:

-static + -static-mail:
1) Y + Y = all dlls merged into <application>.exe
2) N + Y = individual dlls, but with all mailnews dlls merged into components/mail.dll
3) Y + N = (!? see below)
4) N + N = individual dlls, mailnews ones too

***

Do we actually need the *-static-mail option (in addition to the *-static one)?
(In which case is it useful, for example?)

If we keep this option, what should '--enable-static --disable-static-mail' result be?
*Not supported: add an error check in configure.in.
*Supported: fix code so it builds correctly.
Flags: in-testsuite-
At the moment, trying to build SeaMonkey 2.0.4pre with these options fail at:
{
   Creating library TestImapHdrXferInfo.lib and object TestImapHdrXferInfo.exp
msgimap_s.lib(nsImapProtocol.obj) : error LNK2001: unresolved external symbol "public: virtual unsigned int __stdcall nsRDFResource::QueryInterface(struct nsID const &,void * *)" (?QueryInterface@nsRDFResource@@UAGIABUnsID@@PAPAX@Z)
[...]
}
IMHO, --enable-static --disable-static-mail should error out in configure.
I'll let Mark or Dan make the final call on this, though.
(In reply to comment #0)
> Do we actually need the *-static-mail option (in addition to the *-static one)?
> (In which case is it useful, for example?)

Yes. It means that we can run our unit test and bloat builders in a non-static configuration (which bloat & unit test don't currently support) *and* in that configuration we can run mailnews as close as possible to the static configuration - i.e. using mailnews/build for the factory registration code which is what is used in static build configuration (this is versus the individual mailnews/<foo>/build directories used in the completely non-static configuration).

And yes we do forget to sync stuff between those at times, so having our tinderboxes run the stuff we're going to ship is the better option.

We also don't have static mail by default all the time because various developers complain about the time to recompile etc.

> If we keep this option, what should '--enable-static --disable-static-mail'
> result be?
> *Not supported: add an error check in configure.in.
> *Supported: fix code so it builds correctly.

This isn't something I care much about as I don't see devs likely to do it too often, but I guess we should just error out in configure.in.
Assignee: nobody → sgautherie.bz
Status: NEW → ASSIGNED
Attachment #430941 - Flags: review?(bugspam.Callek)
Comment on attachment 430941 [details] [diff] [review]
(Av1) Explicitly error out
[Checkin: See comment 6]

per bug comments on desired outcome, looks good.
Attachment #430941 - Flags: review?(bugspam.Callek) → review+
Comment on attachment 430941 [details] [diff] [review]
(Av1) Explicitly error out
[Checkin: See comment 6]


http://hg.mozilla.org/comm-central/rev/98495510718d
Av1, with s/tab/spaces/.


"approval-thunderbird3.0.4=?":
Zero risk, build config only.
Attachment #430941 - Attachment description: (Av1) Explicitly error out → (Av1) Explicitly error out [Checkin: See comment 6]
Attachment #430941 - Flags: approval-thunderbird3.0.4?
Status: ASSIGNED → RESOLVED
Closed: 14 years ago
Resolution: --- → FIXED
Target Milestone: --- → Thunderbird 3.1b2
Comment on attachment 430941 [details] [diff] [review]
(Av1) Explicitly error out
[Checkin: See comment 6]

I don't care about this for 3.0.x, I think that the amount of people likely to hit this versus the addition bits of work to land and verify don't warrant it.
Attachment #430941 - Flags: approval-thunderbird3.0.4? → approval-thunderbird3.0.4-
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: