Build:MozillaBuild For x64
From Mozilla x86-64
How to setup for x64 build environment. You cannot use same way of building 32-bit version. Also, for MSYS, see MSYS and Cygwin on x64 (AMD64) at first.
Contents |
Recommend Compiler
I recommend that you use Visual Studio 2008. Other version has some problems with --enable-optimize. Also, jemalloc only supports Visual Studio 2005 Professional and Visual Studio 2008 Professional. You need professional edition to compile jemalloc since x64 source code of CRT is only into professional edition.
Mozilla-Build
At first, download MozillaBuild package from https://developer.mozilla.org/en/Windows_Build_Prerequisites#MozillaBuild. MozillaBuild 1.4 or later supports x64 build environment.
Which script does I use to set the environment value?
- start-msvc8-x64.bat for Visual Studio 2005
- start-msvc9-x64.bat for Visual Studio 2008
- start-msvc10-x64.bat for Visual Studio 2010
Also, if you use Windows XP x64 or 2003 x64, see https://bugzilla.mozilla.org/show_bug.cgi?id=506323. You need modify batch file.
Sample .mozconfig file
This is a sample .mozconfig to build Firefox.
. $topsrcdir/browser/config/mozconfig mk_add_options MOZ_OBJDIR=@TOPSRCDIR@/../objdir ac_add_options --target=x86_64-pc-mingw32 ac_add_options --host=x86_64-pc-mingw32
Note that --target and --host have to set x86_64-pc-mingw32 due to no uname.exe for x64.
Compile Error by C2733
C:\Program Files\Microsoft Visual Studio 8\VC\include\intrin.h(912) : error C2733: second C linkage of overloaded function '_interlockedbittestandset' not allowed C:\Program Files\Microsoft Visual Studio 8\VC\include\intrin.h(912) : see declaration of '_interlockedbittestandset'
To workaround this, comment out error line in intrin.h. See http://www.hydrogenaudio.org/forums/index.php?showtopic=50972.
Linker Error by LNK1103
uuid.lib(oldacc_i.obj) : fatal error LNK1103: debugging information corrupt; recompile module
See KB949009. You can download a hotfix from connect.microsoft.com.
Optimized Build
Visual Studio 2005
See KB976617. You may need this hotfix if using --enable-optimize.
Visual Studio 2010
Don't use --enable-optimize. Because optimizer of Visual C++ 2010 may generate strength code for regexp.
