Microsoft Visual C++ toolkit build instructions
-
- Posts: 168
- Joined: October 2nd, 2003, 7:17 am
- Location: Brasilia, Brazil
Microsoft Visual C++ toolkit build instructions
As we now have a sucessfull build using Microsoft's free VC++ toolkit, I think it would be a good idea to start a thread with instructions on how to make a good build with it.
For detailed step-by-step instructions on how to setup your system with the necessary tools needed I recomend going to TierMann's site.
For detailed step-by-step instructions on how to setup your system with the necessary tools needed I recomend going to TierMann's site.
Last edited by hvymtl on April 27th, 2004, 1:46 pm, edited 2 times in total.
- TierMann
- Posts: 184
- Joined: March 29th, 2004, 10:18 am
- Location: Sitting here, posting to fourms.
- Contact:
Oops.. I posted here http://forums.mozillazine.org/viewtopic ... 844#490844
Update:
Instructions on how I successfully built with only free tools eventually are on page 3 of this thread or here.
Waldo's instructions are on page 4.
But read on for troubleshooting.
Update:
Instructions on how I successfully built with only free tools eventually are on page 3 of this thread or here.
Waldo's instructions are on page 4.
But read on for troubleshooting.
Last edited by TierMann on April 25th, 2004, 12:21 pm, edited 1 time in total.
{Home}
-
- Posts: 1234
- Joined: November 10th, 2002, 2:47 am
- Location: Hong Kong
- Contact:
Re: Microsoft Visual C++ toolkit build instructions
hvymtl wrote:As we now have a sucessfull buildusing Microsoft's free C++ toolkit, I think it would be a good idea to start a post with instructions on how to a good build with it.
So, people who have been able to build it, please tell us how you did it. Thanks in advance.
It's not really a 'success' because he used libraries from MSVC++ .NET 2002, which are not available for free anywhere. If anyone can get Firefox to compile using ONLY free, legally available tools using the MSVC++ .NET 2003 Toolkit then the real win.
Right now, Mozilla builds using the MSVC++ .NET 2003 Toolkit (plus Platform SDK, .NET 1.1 SDK, and MASM32 8.2) with ActiveX disabled, but Firefox doesn't because of an issue in the IE profile migration code at linking time.
- TierMann
- Posts: 184
- Joined: March 29th, 2004, 10:18 am
- Location: Sitting here, posting to fourms.
- Contact:
Re: Microsoft Visual C++ toolkit build instructions
aebrahim wrote:Right now, Mozilla builds using the MSVC++ .NET 2003 Toolkit (plus Platform SDK, .NET 1.1 SDK, and MASM32 8.2) with ActiveX disabled, but Firefox doesn't because of an issue in the IE profile migration code at linking time.
So it would just take a patch to fix this and make Firefox able to compile under the free tools, right?
{Home}
-
- Posts: 1234
- Joined: November 10th, 2002, 2:47 am
- Location: Hong Kong
- Contact:
Re: Microsoft Visual C++ toolkit build instructions
TierMann wrote:aebrahim wrote:Right now, Mozilla builds using the MSVC++ .NET 2003 Toolkit (plus Platform SDK, .NET 1.1 SDK, and MASM32 8.2) with ActiveX disabled, but Firefox doesn't because of an issue in the IE profile migration code at linking time.
So it would just take a patch to fix this and make Firefox able to compile under the free tools, right?
I think so, yes. Although you still wouldn't be able to get ActiveX support.
- TierMann
- Posts: 184
- Joined: March 29th, 2004, 10:18 am
- Location: Sitting here, posting to fourms.
- Contact:
Small price to pay for a free compiler.
I disable activex on my builds anyhow
If we could figure out what needs to be patched we'd be set.
I could get rid of .NET 2002 completely and just use the free tools.
I disable activex on my builds anyhow
If we could figure out what needs to be patched we'd be set.
I could get rid of .NET 2002 completely and just use the free tools.
{Home}
-
- Posts: 6022
- Joined: November 25th, 2003, 8:56 am
Re: Microsoft Visual C++ toolkit build instructions
aebrahim wrote:...
Right now, Mozilla builds using the MSVC++ .NET 2003 Toolkit (plus Platform SDK, .NET 1.1 SDK, and MASM32 8.2) with ActiveX disabled, but Firefox doesn't because of an issue in the IE profile migration code at linking time.
How about Thunderbird?
Didn't you used to start your posts off with an explanation how you did it with a combo of things?
-
- Posts: 1234
- Joined: November 10th, 2002, 2:47 am
- Location: Hong Kong
- Contact:
Re: Microsoft Visual C++ toolkit build instructions
sasquatch wrote:aebrahim wrote:...
Right now, Mozilla builds using the MSVC++ .NET 2003 Toolkit (plus Platform SDK, .NET 1.1 SDK, and MASM32 8.2) with ActiveX disabled, but Firefox doesn't because of an issue in the IE profile migration code at linking time.
How about Thunderbird?
Didn't you used to start your posts off with an explanation how you did it with a combo of things?
No idea about TB. The explanation was for the full version of MSVS .NET 2003, and that could be successfully used. AFAIK, right now, without code hacks, this can't.
- TierMann
- Posts: 184
- Joined: March 29th, 2004, 10:18 am
- Location: Sitting here, posting to fourms.
- Contact:
Using only VC++ Toolkit and SDK's now...
Took out all paths to retail libraries and apps.
-.Net Framework 1.1
-.Net Framework SDK
-Microsoft SDK (32 and 64bit core) (I went with all packages available)
-Microsoft VC++ 2003 Toolkit
-VC7.1 build versions of Glib and LibIdl (in c:\vc7\bin)
-msam32v8 (Do not copy anything to toolkit, it will all be determined by the environment)
Here's my environment:
Path=c:/vc7/bin;C:\Program Files\Microsoft Visual C++ Toolkit 2003\bin;c:\Program files\Microsoft SDK\bin;C:\Program Files\Microsoft.NET\SDK\v1.1\Bin;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;
c:\moztools\bin;c:\cygwin\bin;C:\Program Files\Microsoft Visual Studio .NET 2003\Common7\IDE;C:\Program Files\Microsoft SDK\Bin\Win64;C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322;c:\masm32\bin
Lib=C:\Program Files\Microsoft Visual C++ Toolkit 2003\lib;c:\program files\microsoft sdk\lib;C:\Program Files\Microsoft.NET\SDK\v1.1\Lib;C:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\lib;c:\masm32\lib;C:\Program Files\Microsoft SDK\Lib\IA64
Include=C:\Program Files\Microsoft Visual C++ Toolkit 2003\include;c:\Program Files\Microsoft SDK\Include;c:\Program Files\Microsoft.NET\SDK\v1.1\include;C:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\include;C:\Program Files\Microsoft SDK\include\Win64\crt;c:\masm32\include
The order of these paths are very important or else it will error on nspr4.dll.
---------------------------
Soooo Close!
I'm either missing a path or there has to be a way to manually patch it.
Basically what I'm looking for is a way to either disable profile migration OR get it to work with these free libraries.
Any input would be helpful.
Took out all paths to retail libraries and apps.
-.Net Framework 1.1
-.Net Framework SDK
-Microsoft SDK (32 and 64bit core) (I went with all packages available)
-Microsoft VC++ 2003 Toolkit
-VC7.1 build versions of Glib and LibIdl (in c:\vc7\bin)
-msam32v8 (Do not copy anything to toolkit, it will all be determined by the environment)
Here's my environment:
Path=c:/vc7/bin;C:\Program Files\Microsoft Visual C++ Toolkit 2003\bin;c:\Program files\Microsoft SDK\bin;C:\Program Files\Microsoft.NET\SDK\v1.1\Bin;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;
c:\moztools\bin;c:\cygwin\bin;C:\Program Files\Microsoft Visual Studio .NET 2003\Common7\IDE;C:\Program Files\Microsoft SDK\Bin\Win64;C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322;c:\masm32\bin
Lib=C:\Program Files\Microsoft Visual C++ Toolkit 2003\lib;c:\program files\microsoft sdk\lib;C:\Program Files\Microsoft.NET\SDK\v1.1\Lib;C:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\lib;c:\masm32\lib;C:\Program Files\Microsoft SDK\Lib\IA64
Include=C:\Program Files\Microsoft Visual C++ Toolkit 2003\include;c:\Program Files\Microsoft SDK\Include;c:\Program Files\Microsoft.NET\SDK\v1.1\include;C:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\include;C:\Program Files\Microsoft SDK\include\Win64\crt;c:\masm32\include
The order of these paths are very important or else it will error on nspr4.dll.
---------------------------
Soooo Close!
Code: Select all
Creating library firefox.lib and object firefox.exp
brwsrcmp.lib(nsIEProfileMigrator.obj) : error LNK2019: unresolved external symbo
l "void __stdcall _com_issue_error(long)" (?_com_issue_error@@YGXJ@Z) referenced
in function "public: __thiscall _bstr_t::Data_t::Data_t(unsigned short const *)
" (??0Data_t@_bstr_t@@QAE@PBG@Z)
brwsrcmp.lib(nsIEProfileMigrator.obj) : error LNK2019: unresolved external symbo
l "char * __stdcall _com_util::ConvertBSTRToString(unsigned short *)" (?ConvertB
STRToString@_com_util@@YGPADPAG@Z) referenced in function "public: char const *
__thiscall _bstr_t::Data_t::GetString(void)const " (?GetString@Data_t@_bstr_t@@Q
BEPBDXZ)
brwsrcmp.lib(nsIEProfileMigrator.obj) : error LNK2019: unresolved external symbo
l "void __stdcall _com_issue_errorex(long,struct IUnknown *,struct _GUID const &
)" (?_com_issue_errorex@@YGXJPAUIUnknown@@ABU_GUID@@@Z) referenced in function "
public: long __thiscall PSTORECLib::IPStore::ReadItem(unsigned long,struct _GUID
*,struct _GUID *,unsigned short *,unsigned long *,unsigned char * *,struct PSTO
RECLib::_PST_PROMPTINFO *,unsigned long)" (?ReadItem@IPStore@PSTORECLib@@QAEJKPA
U_GUID@@0PAGPAKPAPAEPAU_PST_PROMPTINFO@2@K@Z)
firefox.exe : fatal error LNK1120: 3 unresolved externals
make[4]: *** [firefox.exe] Error 96
make[4]: Leaving directory `/cygdrive/c/mozilla/browser/app'
make[3]: *** [libs] Error 2
make[3]: Leaving directory `/cygdrive/c/mozilla/browser'
make[2]: *** [tier_99] Error 2
make[2]: Leaving directory `/cygdrive/c/mozilla'
make[1]: *** [default] Error 2
make[1]: Leaving directory `/cygdrive/c/mozilla'
make: *** [build] Error 2
I'm either missing a path or there has to be a way to manually patch it.
Basically what I'm looking for is a way to either disable profile migration OR get it to work with these free libraries.
Any input would be helpful.
Last edited by TierMann on April 21st, 2004, 8:53 pm, edited 1 time in total.
{Home}
- TierMann
- Posts: 184
- Joined: March 29th, 2004, 10:18 am
- Location: Sitting here, posting to fourms.
- Contact:
Re: Microsoft Visual C++ toolkit build instructions
sasquatch wrote:How about Thunderbird?
Compiling the latest TBird CVS right now using the environment shown above.
I'll update this when it finishes and let you know.
I know for a fact that Mozilla's latest CVS compiles fine because I accidently forgot to add the mail/config/mozconfig in and did a full mozilla build.
No wonder it took so long.
Update:
Sigh...
Code: Select all
make[1]: Entering directory `/cygdrive/c/TB/mozilla/mail/app'
/cygdrive/c/TB/mozilla/build/cygwin-wrapper link /NOLOGO /OUT:thunderbird.exe /PDB:thunderbird.pdb /
SUBSYSTEM:WINDOWS /HEAP:0x40000 nsMailApp.obj ./module.res ../../dist/lib/xulapp_s.lib ../../dist
/lib/js3250.lib ../../dist/lib/xpcom.lib ../../dist/lib/nspr4.lib ../../dist/lib/plc4.lib ../../dist
/lib/plds4.lib kernel32.lib user32.lib gdi32.lib winmm.lib wsock32.lib advapi32.lib comctl32.lib
comdlg32.lib uuid.lib shell32.lib ole32.lib oleaut32.lib version.lib winspool.lib gdi32.lib
xulapp_s.lib(nsAppRunner.obj) : error LNK2019: unresolved external symbol "unsigned int __cdecl app_
getModuleInfo(struct nsStaticModuleInfo * *,unsigned int *)" (?app_getModuleInfo@@YAIPAPAUnsStaticMo
duleInfo@@PAI@Z) referenced in function "int __cdecl xre_main(int,char * * const,class nsXREAppData
const &)" (?xre_main@@YAHHQAPADABVnsXREAppData@@@Z)
thunderbird.exe : fatal error LNK1120: 1 unresolved externals
make[1]: *** [thunderbird.exe] Error 96
make[1]: Leaving directory `/cygdrive/c/TB/mozilla/mail/app'
make: *** [all] Error 2
TBird won't build with the free tools either from the current code.
That answers that anyway.
It makes me sad that there's only 1 error stopping it.
And only 3 on FF from 1 file used for IE profile migration. Kinda ironic.
Edit:
We found out later that it does indeed build with no problem. I just had static enabled.
Last edited by TierMann on April 24th, 2004, 8:49 pm, edited 1 time in total.
{Home}
- Goldzilla
- Posts: 2579
- Joined: November 22nd, 2002, 6:52 pm
You could try adding back stuff from .net 2003 until it works. That could identify the missing pieces.
Dell Inspiron 8500 P4 M 2.0 Ghz 1 GB 40 GB XP Pro NVidia 64 MB WUXGA CME, CH, TBE , EZS Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.7b) Gecko/20040325 Firefox/0.8.0+ (mmoy-O2-GL7-SSE2-crc32-Zp16-quek013)
- TierMann
- Posts: 184
- Joined: March 29th, 2004, 10:18 am
- Location: Sitting here, posting to fourms.
- Contact:
Heh, sounds like a plan, but I don't have .Net 2003.
My builds were a mix of the VC++ 2003 Toolkit and VStudio .NET 2002 Enterprise so they compiled with the 7.1 CL.exe with optimizations but still needed the 7.0 dll's instead of the 7.1's to run.
It works but it's sloppy.
My builds were a mix of the VC++ 2003 Toolkit and VStudio .NET 2002 Enterprise so they compiled with the 7.1 CL.exe with optimizations but still needed the 7.0 dll's instead of the 7.1's to run.
It works but it's sloppy.
{Home}
-
- Posts: 1234
- Joined: November 10th, 2002, 2:47 am
- Location: Hong Kong
- Contact:
TierMann wrote:Soooo Close!Code: Select all
Creating library firefox.lib and object firefox.exp
brwsrcmp.lib(nsIEProfileMigrator.obj) : error LNK2019: unresolved external symbo
l "void __stdcall _com_issue_error(long)" (?_com_issue_error@@YGXJ@Z) referenced
in function "public: __thiscall _bstr_t::Data_t::Data_t(unsigned short const *)
" (??0Data_t@_bstr_t@@QAE@PBG@Z)
brwsrcmp.lib(nsIEProfileMigrator.obj) : error LNK2019: unresolved external symbo
l "char * __stdcall _com_util::ConvertBSTRToString(unsigned short *)" (?ConvertB
STRToString@_com_util@@YGPADPAG@Z) referenced in function "public: char const *
__thiscall _bstr_t::Data_t::GetString(void)const " (?GetString@Data_t@_bstr_t@@Q
BEPBDXZ)
brwsrcmp.lib(nsIEProfileMigrator.obj) : error LNK2019: unresolved external symbo
l "void __stdcall _com_issue_errorex(long,struct IUnknown *,struct _GUID const &
)" (?_com_issue_errorex@@YGXJPAUIUnknown@@ABU_GUID@@@Z) referenced in function "
public: long __thiscall PSTORECLib::IPStore::ReadItem(unsigned long,struct _GUID
*,struct _GUID *,unsigned short *,unsigned long *,unsigned char * *,struct PSTO
RECLib::_PST_PROMPTINFO *,unsigned long)" (?ReadItem@IPStore@PSTORECLib@@QAEJKPA
U_GUID@@0PAGPAKPAPAEPAU_PST_PROMPTINFO@2@K@Z)
firefox.exe : fatal error LNK1120: 3 unresolved externals
make[4]: *** [firefox.exe] Error 96
make[4]: Leaving directory `/cygdrive/c/mozilla/browser/app'
make[3]: *** [libs] Error 2
make[3]: Leaving directory `/cygdrive/c/mozilla/browser'
make[2]: *** [tier_99] Error 2
make[2]: Leaving directory `/cygdrive/c/mozilla'
make[1]: *** [default] Error 2
make[1]: Leaving directory `/cygdrive/c/mozilla'
make: *** [build] Error 2
I'm either missing a path or there has to be a way to manually patch it.
Basically what I'm looking for is a way to either disable profile migration OR get it to work with these free libraries.
Any input would be helpful.
Yep, that's where I got stuck too. Looks like nsIEProfileMigrator.obj requires something that the free tools don't provide. One workaround would be to switch off the IE migration code via a patch.