Closed Bug 980356 Opened 10 years ago Closed 10 years ago

Make nsMessengerWinIntegration.cpp compile with frozen linkage.

Categories

(MailNews Core :: Backend, defect)

x86
Windows 7
defect
Not set
normal

Tracking

(seamonkey2.28 fixed)

RESOLVED FIXED
Thunderbird 31.0
Tracking Status
seamonkey2.28 --- fixed

People

(Reporter: philip.chee, Assigned: philip.chee)

References

Details

Attachments

(1 file, 1 obsolete file)

      No description provided.
Attached patch Patch v1.0 WIP (obsolete) — Splinter Review
Is this the right way of doing frozen linkage?

> -#ifndef MOZ_THUNDERBIRD
>    nsresult ShowAlertMessage(const nsString& aAlertTitle, const nsString& aAlertText, const nsACString& aFolderURI);
> -#endif
Not sure if I shouldn't have removed this ifdef.

Also FYI mcsmurf recently added a few #ifdef MOZ_SUITE in this file.
Attachment #8386839 - Flags: feedback?(neil)
Comment on attachment 8386839 [details] [diff] [review]
Patch v1.0 WIP

>-#ifndef MOZ_THUNDERBIRD
> nsresult nsMessengerWinIntegration::ShowAlertMessage(const nsString& aAlertTitle,
Look and Feel is only available to internal linkage, which is why there are some ifdefs in that area, but this bit appears to be unrelated. Rest looks fine though.
Attachment #8386839 - Flags: feedback?(neil)
In  Bug 404580 I added a IFDEF along the lines of:

> +#ifndef MOZ_THUNDERBIRD
> +// from LookAndFeel.h
> +#define NS_ALERT_HORIZONTAL 1
> +#define NS_ALERT_LEFT       2
> +#define NS_ALERT_TOP        4
> +#endif

Neil pointed out that this would break Thunderbird when building with frozen linkage, so in this patch I've changed these IFDEFS to:

> -#ifndef MOZ_THUNDERBIRD
> +#ifndef MOZILLA_INTERNAL_API
>  // from LookAndFeel.h
>  #define NS_ALERT_HORIZONTAL 1
>  #define NS_ALERT_LEFT       2
>  #define NS_ALERT_TOP        4
>  #endif

I've managed to build TB with --incomplete-external-linkage (with a lot of cursing) and it starts up and appears to work normally but I haven't done any extensive testing.
Attachment #8386839 - Attachment is obsolete: true
Attachment #8388436 - Flags: review?(neil)
Attachment #8388436 - Flags: review?(irving)
Attachment #8388436 - Flags: review?(neil) → review+
Pushed to comm-central try:
https://tbpl.mozilla.org/?tree=Thunderbird-Try&rev=2b0e0862f84a
(In reply to Philip Chee from comment #4)
> Pushed to comm-central try:
> https://tbpl.mozilla.org/?tree=Thunderbird-Try&rev=2b0e0862f84a
Forgot to set:
+ac_add_options --enable-incomplete-external-linkage
+ac_add_options --disable-mapi
How do I do that?
https://tbpl.mozilla.org/php/getParsedLog.php?id=35901370&tree=Thunderbird-Try#error0

LINK : fatal error LNK1181: cannot open input file '../../../mail/components/build/mailcomps.lib'

c:\builds\moz2_slave\tb-try-c-cen-w32-0000000000000\build\mozilla\config\rules.mk:897:0: command 'c:/builds/moz2_slave/tb-try-c-cen-w32-0000000000000/build/objdir-tb/mozilla/_virtualenv/Scripts/python.exe c:/builds/moz2_slave/tb-try-c-cen-w32-0000000000000/build/mozilla/config/expandlibs_exec.py --depend .deps/xul.dll.pp --target xul.dll --uselist -- link -NOLOGO -DLL -OUT:xul.dll -PDB:xul.pdb -SUBSYSTEM:WINDOWS -MACHINE:X86  nsStaticXULComponents.obj nsDllMain.obj  ./module.res -LARGEADDRESSAWARE -NXCOMPAT -RELEASE -DYNAMICBASE -SAFESEH  -DEBUG -DEBUGTYPE:CV -DEBUG -OPT:REF -DELAYLOAD:comdlg32.dll -DELAYLOAD:dbghelp.dll -DELAYLOAD:psapi.dll -DELAYLOAD:rasapi32.dll -DELAYLOAD:rasdlg.dll -DELAYLOAD:secur32.dll -DELAYLOAD:wininet.dll -DELAYLOAD:winspool.drv -DELAYLOAD:oleacc.dll -DELAYLOAD:msdmo.dll       ../../media/kiss_fft/media_kiss_fft.lib ../../security/certverifier/security_certverifier.lib ../../security/apps/security_apps.lib ../../xpcom/build/xpcom_core.lib ../../modules/libpref/src/modules_libpref_src.lib ../../intl/uconv/src/intl_uconv_src.lib ../../intl/build/i18n.lib ../../intl/unicharutil/util/internal/intl_unicharutil_util_internal.lib ../../netwerk/build/necko.lib ../../extensions/auth/extensions_auth.lib ../../ipc/chromium/ipc_chromium.lib ../../ipc/glue/ipc_glue.lib ../../ipc/ipdl/ipc_ipdl.lib ../../ipc/testshell/ipc_testshell.lib ../../js/ipc/js_ipc.lib ../../hal/hal.lib ../../intl/chardet/src/intl_chardet_src.lib ../../modules/libjar/jar.lib ../../modules/libjar/zipwriter/src/modules_libjar_zipwriter_src.lib ../../storage/build/storagecomps.lib ../../extensions/cookie/extensions_cookie.lib ../../extensions/permissions/extensions_permissions.lib ../../rdf/util/src/internal/rdf_util_src_internal.lib ../../rdf/build/rdf.lib ../../js/jsd/js_jsd.lib ../../media/webrtc/signaling/signaling_sipcc/sipcc.lib ../../media/webrtc/signaling/signaling_ecc/ecc.lib ../../media/mtransport/build/mtransport.lib ../../media/libyuv/libyuv_libyuv/yuv.lib ../../uriloader/base/uriloader_base.lib ../../uriloader/exthandler/uriloader_exthandler.lib ../../uriloader/prefetch/uriloader_prefetch.lib ../../parser/htmlparser/src/htmlpars.lib ../../gfx/2d/gfx_2d.lib ../../gfx/ycbcr/gfx_ycbcr.lib ../../gfx/src/gfx_src.lib ../../gfx/gl/gfx_gl.lib ../../gfx/thebes/thebes.lib ../../gfx/ipc/gfx_ipc.lib ../../image/build/imglib2.lib ../../image/decoders/icon/imgicon.lib ../../dom/bindings/dom_bindings.lib ../../dom/media/bridge/dom_media_bridge.lib ../../dom/plugins/base/dom_plugins_base.lib ../../dom/plugins/ipc/dom_plugins_ipc.lib ../../dom/ipc/dom_ipc.lib ../../widget/windows/widget_windows.lib ../../editor/txmgr/src/editor_txmgr_src.lib ../../editor/composer/src/editor_composer_src.lib ../../layout/build/gklayout.lib ../../layout/media/webrtc/webrtc.lib ../../docshell/base/docshell_base.lib ../../docshell/shistory/src/docshell_shistory_src.lib ../../docshell/build/docshell_build.lib ../../embedding/components/build/embedcomponents.lib ../../embedding/browser/build/webbrwsr.lib ../../xpfe/appshell/src/xpfe_appshell_src.lib ../../extensions/universalchardet/src/xpcom/universalchardet.lib ../../accessible/src/windows/msaa/accessible_src_windows_msaa.lib ../../accessible/src/windows/ia2/accessible_src_windows_ia2.lib ../../accessible/src/windows/sdn/accessible_src_windows_sdn.lib ../../accessible/src/windows/uia/accessible_src_windows_uia.lib ../../accessible/src/base/accessible_src_base.lib ../../accessible/src/generic/accessible_src_generic.lib ../../accessible/src/html/accessible_src_html.lib ../../accessible/src/xpcom/accessible_src_xpcom.lib ../../accessible/src/xul/accessible_src_xul.lib ../../tools/profiler/tools_profiler.lib ../../xpfe/components/windowds/xpfe_components_windowds.lib ../../xpfe/components/build/appcomps.lib ../../extensions/spellcheck/src/spellchecker.lib ../../security/manager/boot/src/security_manager_boot_src.lib ../../security/manager/ssl/src/security_manager_ssl_src.lib ../../security/manager/pki/src/security_manager_pki_src.lib ../../toolkit/xre/xulapp_s.lib ../../toolkit/components/build/toolkitcomps.lib ../../toolkit/components/commandlines/toolkit_components_commandlines.lib ../../toolkit/components/diskspacewatcher/toolkit_components_diskspacewatcher.lib ../../toolkit/components/mediasniffer/toolkit_components_mediasniffer.lib ../../toolkit/components/perf/toolkit_components_perf.lib ../../toolkit/components/places/toolkit_components_places.lib ../../toolkit/components/reflect/toolkit_components_reflect.lib ../../toolkit/components/telemetry/toolkit_components_telemetry.lib ../../toolkit/components/workerlz4/toolkit_components_workerlz4.lib ../../toolkit/components/ctypes/toolkit_components_ctypes.lib ../../toolkit/components/autocomplete/toolkit_components_autocomplete.lib ../../toolkit/components/satchel/toolkit_components_satchel.lib ../../toolkit/devtools/server/toolkit_devtools_server.lib ../../toolkit/identity/toolkit_identity.lib ../../toolkit/system/windowsproxy/toolkit_system_windowsproxy.lib ../../extensions/pref/autoconfig/src/extensions_pref_autoconfig_src.lib ../../services/crypto/component/services_crypto_component.lib ../../startupcache/startupcache.lib ../../js/ductwork/debugger/js_ductwork_debugger.lib ../../other-licenses/snappy/other-licenses_snappy.lib ../../../mail/components/build/mailcomps.lib  c:/builds/moz2_slave/tb-try-c-cen-w32-0000000000000/build/objdir-tb/mozilla/dist/lib/mozjs.lib c:/builds/moz2_slave/tb-try-c-cen-w32-0000000000000/build/objdir-tb/mozilla/dist/lib/crmf.lib         c:/builds/moz2_slave/tb-try-c-cen-w32-0000000000000/build/objdir-tb/mozilla/dist/lib/smime3.lib         c:/builds/moz2_slave/tb-try-c-cen-w32-0000000000000/build/objdir-tb/mozilla/dist/lib/ssl3.lib         c:/builds/moz2_slave/tb-try-c-cen-w32-0000000000000/build/objdir-tb/mozilla/dist/lib/nss3.lib         c:/builds/moz2_slave/tb-try-c-cen-w32-0000000000000/build/objdir-tb/mozilla/dist/lib/nssutil3.lib   ../../dist/lib/mozsqlite3.lib  ../../dist/lib/gkmedias.lib -LIBPATH:'C:/Tools/sdks/dx10/lib/x86'   c:/builds/moz2_slave/tb-try-c-cen-w32-0000000000000/build/objdir-tb/mozilla/dist/lib/nspr4.lib c:/builds/moz2_slave/tb-try-c-cen-w32-0000000000000/build/objdir-tb/mozilla/dist/lib/plc4.lib c:/builds/moz2_slave/tb-try-c-cen-w32-0000000000000/build/objdir-tb/mozilla/dist/lib/plds4.lib  ../../dist/lib/mozalloc.lib -LIBPATH:../../dist/lib -NODEFAULTLIB:msvcrt -NODEFAULTLIB:msvcrtd -NODEFAULTLIB:msvcprt -NODEFAULTLIB:msvcprtd -DEFAULTLIB:mozcrt kernel32.lib user32.lib gdi32.lib winmm.lib wsock32.lib advapi32.lib secur32.lib netapi32.lib secur32.lib crypt32.lib iphlpapi.lib strmiids.lib dmoguids.lib wmcodecdspuuid.lib amstrmid.lib msdmo.lib wininet.lib mfuuid.lib wmcodecdspuuid.lib strmiids.lib dmoguids.lib wmcodecdspuuid.lib strmiids.lib msdmo.lib shell32.lib ole32.lib version.lib winspool.lib comdlg32.lib imm32.lib msimg32.lib shlwapi.lib psapi.lib ws2_32.lib dbghelp.lib rasapi32.lib rasdlg.lib iphlpapi.lib uxtheme.lib setupapi.lib secur32.lib sensorsapi.lib portabledeviceguids.lib windowscodecs.lib wininet.lib wbemuuid.lib wintrust.lib oleacc.lib 'C:/Tools/sdks/dx10/Lib/x86/dxguid.lib' 'C:/Tools/sdks/dx10/Lib/x86/dinput8.lib'  delayimp.lib  usp10.lib oleaut32.lib    ' failed, return code 1181
<libs>: Found error
<../../dist/bin/xul.dll>: Found error
<../../dist/bin/xul.dll>: Found error
<../../dist/bin/dependentlibs.list>: Found error
<xul.lib>: Found error
<libs>: Found error
<libs>: Found error
<../../dist/lib/xul.lib>: Found error
<../../dist/lib/xul.lib>: Found error
<../../dist/sdk/lib/xul.lib>: Found error
<../../dist/sdk/lib/xul.lib>: Found error
(In reply to Philip Chee from comment #6)
> https://tbpl.mozilla.org/php/getParsedLog.php?id=35901370&tree=Thunderbird-
> Try#error0
> 
> LINK : fatal error LNK1181: cannot open input file '../../../mail/components/build/mailcomps.lib'
That seems to be Bug 953102
Depends on: 953102
Blocks: 983711
Comment on attachment 8388436 [details] [diff] [review]
Patch v1.1 removed unrelated changes.

Changing r? to Standard8
Attachment #8388436 - Flags: review?(irving) → review?(standard8)
Test steps:
1. update your mozconfig with:
ac_add_options --enable-incomplete-external-linkage
ac_add_options --disable-mapi
2. Apply patch from Bug 953102 external api build bustage:
3. Apply patch from Bug 984155 Build Thunderbird with frozen linkage
4. Apply attachment 8388436 [details] [diff] [review] in Comment 8
Attachment #8388436 - Flags: review?(standard8) → review+
Comment on attachment 8388436 [details] [diff] [review]
Patch v1.1 removed unrelated changes.

[Approval Request Comment]
Approval Request for CLOSED TREE on comm-central
Attachment #8388436 - Flags: approval-comm-aurora?
Attachment #8388436 - Flags: approval-comm-aurora?
Pushed to comm-central
http://hg.mozilla.org/comm-central/rev/ab1bce66aaf9
Status: ASSIGNED → RESOLVED
Closed: 10 years ago
Resolution: --- → FIXED
Target Milestone: --- → Thunderbird 31.0
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Creator:
Created:
Updated:
Size: