How To Build Windows x64 Build
From Mozilla x86-64
I re-wrote how to build Mozilla for Win64 (x64, x86_64, Intel EM64T, AMD64). Since all patches isn't on current CVS, you have to get patches from Download page. Also, you need buildtools into Download page.
Contents |
What do we need before building Mozilla?
- Cygwin or MingW. You can download from http://www.cygwin.com/ or http://www.mingw.org/. If you use MingW on Vista, you have to use latest snapshot. Version 1.10 doesn't work on Vista x64. About workaround, see MSYS and Cygwin on x64 (AMD64)
- Buildtools for AMD64. You can download from Download page. Source files are here, too.
- Microsoft Platform SDK for Windows Vista. Firefox 3 needs Vista SDK to support Vista feature. Although you can get this by subscribing MSDN, you may be able to download this from http://www.microsoft.com/downloads/.
- Microsoft Visual Studio 2005 Standard Edition or upper edition. Although I don't test Visual C++ Express 2008, it will be able to use it.
- Python 2.5. You can use both 32bit and 64bit version.
- 7-zip. Also you can use both 32bit and 64bit version.
Can I use mozilla-build package by mozilla.org?
Some tools into mozilla-build package is Yes, but...
- mozilla-build package has no x64 buildtools. So it cannot build 64bit XPIDL.EXE. So you have to use x64 buildtools into Download page.
- MSYS into mozilla-build doesn't work on x64 platform. Use version 1.11 and later. More information is MSYS and Cygwin on x64 (AMD64)
Applying a Patch
Download patch for x86 from Download page, then, you run the following command.
# patch -p1 < Win64-xxxxxxxx.patch
This patch does not include diff for mozilla/configure. So you have to run the following command on cygwin after applying a patch.
# autoconf-2.13
Environment Values
This is a sample that I use.
Path
C:\Program Files\Microsoft SDKs\Windows\v6.0\Bin\x64;C:\Program Files\Microsoft SDKs\Windows\v6.0\Bin;C:\Program Files (x86)\Microsoft Visual Studio 8\VC\BIN\amd64;C:\Program Files (x86)\Microsoft Visual Studio 8\VC\PlatformSDK\bin\win64\amd64;C:\Program Files (x86)\Microsoft Visual Studio 8\VC\PlatformSDK\bin;C:\Windows\Microsoft.NET\Framework64\v2.0.50727;C:\Program Files (x86)\Microsoft Visual Studio 8\VC\VCPackages;C:\Program Files (x86)\Microsoft Visual Studio 8\Common7\IDE;C:\Program Files (x86)\Microsoft Visual Studio 8\Common7\Tools;C:\Program Files (x86)\Microsoft Visual Studio 8\Common7\Tools\bin;C:\Program Files (x86)\Microsoft Visual Studio 8\SDK\v2.0\bin;C:\bin\mozilla-build\msys\bin;C:\bin\mozilla-build\msys\local\bin;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;c:\bin;C:\bin\mozilla-build\moztools-x64\bin;C:\bin\mozilla-build\7zip;C:\bin\mozilla-build\info-zip;C:\bin\mozilla-build\nsis-2.22;C:\bin\mozilla-build\python25;C:\Program Files (x86)\Mercurial;
INCLUDE
C:\Program Files\Microsoft SDKs\Windows\v6.0\Include;C:\Program Files (x86)\Microsoft Visual Studio 8\VC\ATLMFC\INCLUDE;C:\Program Files (x86)\Microsoft Visual Studio 8\VC\INCLUDE;C:\Program Files (x86)\Microsoft Visual Studio 8\VC\PlatformSDK\include;C:\Program Files (x86)\Microsoft Visual Studio 8\SDK\v2.0\include;
LIB
C:\Program Files (x86)\Microsoft Visual Studio 8\VC\ATLMFC\LIB\amd64;C:\Program Files (x86)\Microsoft Visual Studio 8\VC\LIB\amd64;C:\Program Files (x86)\Microsoft Visual Studio 8\VC\PlatformSDK\lib\amd64;C:\Program Files (x86)\Microsoft Visual Studio 8\SDK\v2.0\LIB\AMD64;
MOZ_TOOLS
C:\bin\mozilla-build\moztools-x64
.mozconfig
This is a sample that I use for Firefox x64.
. $topsrcdir/browser/config/mozconfig mk_add_options MOZ_OBJDIR=@TOPSRCDIR@/objdir ac_add_options --disable-tests ac_add_options --enable-installer ac_add_options --target=x86_64-pc-mingw32 ac_add_options --host=x86_64-pc-mingw32 ac_add_options --enable-optimize=-Ox ac_add_options --disable-debug ac_add_options --with-windows-version=501 ac_add_options --disable-crashreporter ac_add_options --disable-updater
Known Issue
- If you use optimize flag with -O1 or -O2, Firefox will be crash in JavaScript engine or Gecko. Because compiler generates strenge code. So you should use -Ox like the above sample or --disable-optimize on configure.
- There is no NSIS 64bit version. So installer is 32bit.
