Wednesday, May 19, 2010

Win64 builds - what am I doing wrong?

As I blogged before I started setting up a Windows 2008 64 bit machine that will be able to generate the 64 bit builds of Firefox.

I have managed to build it but I have not been able to actually run it. It plainly crashes before running.

Find below the tool-chain, mozconfig, logs and builds in case you think you can help me figure out what I am doing wrong.

Documentation followed:
  • MS Win2008 x86_64
  • MS VS2010 Pro
  • Win7 SDK
  • MozillaBuild 1.4
. $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
ac_add_options --disable-ogg

Check out the screen-shot of the crash (edited image to show problem box):

    Creative Commons License
    This work by Zambrano Gasparnian, Armen is licensed under a Creative Commons Attribution-Noncommercial-Share Alike 3.0 Unported License.


    1. Run with debugging from VS2010 and you should catch a null pointer in xul.dll somewhere. The location might help you determine if you forgot a define or something if the point of execution is in a code block it shouldn't be, or it might be a 64-bit bug.

    2. If you're feeling bold:
      Works for win32 anyway.

    3. Yep, debug and see what happens.
      I don't have your crash symbols, hence I cannot easily debug the build. ;)
      But I can reproduce the crash with your build on Win XP x64. (Crashes somewhere in libxul originating from a libmozjs call)

      The tool-chain is pretty bleeding-edge.
      I'd suggest you try to build using MSVC8 (or at least 9) first.

      I just performed a clean build using:
      Win XP x64 (basically Server 2003)
      Win 7 + Win 2003R2 SDKs
      interlocked intrinsics "patch"/fix
      No patches to central

      Works as expected it seems. crashtest went through. mochitest-chrome had some random failures, but mostly was clean.

      Next I'll try a MSVC 2010 build.

      mk_add_options MOZ_OBJDIR=@TOPSRCDIR@/obj-@CONFIG_GUESS@
      mk_add_options MOZ_MAKE_FLAGS=-j4

      ac_add_options --target=x86_64-pc-mingw32
      ac_add_options --host=x86_64-pc-mingw32

      ac_add_options --enable-application=browser
      ac_add_options --enable-debugger-info-modules=all
      ac_add_options --enable-tests

    4. Crashing in what appears to be the same place when building with MSVC2010.
      So to answer your question: You didn't do anything wrong, it's either buggy code or a buggy compiler ;)

    5. This is weird. Nils Maier has made two comments but I can't see them.

      Nils thanks for checking that out! (He tried building with MSVC8 and with MSVC10) And for those who can't see the comments he finishes saying: "You didn't do anything wrong, it's either buggy code or a buggy compiler ;)"

      CF and The MAZZTer, I could try to be bold and debug it myself but I bet that the people that are good at this will prefer me to spend the time at automating the reference machine :)