Bug 1434316 Add 64 Bit Windows Build Targets draft
authorTom Ritter <tom@mozilla.com>
Sun, 18 Feb 2018 23:58:51 -0600
changeset 810208 c75cfff5ae72322913ff73bcf627002c1423a07b
parent 810207 4ad4c31db9b1526aab8641be98fec8e0d63a4a7e
child 810209 404adce19f5db7f11cb6a3a1303da84c273c60df
push id113918
push userbmo:jacek@codeweavers.com
push dateMon, 25 Jun 2018 14:21:39 +0000
bugs1434316
milestone60.1.0
Bug 1434316 Add 64 Bit Windows Build Targets MozReview-Commit-ID: Gt3Ocwc1uie
browser/config/mozconfigs/win64/mingw32
browser/config/mozconfigs/win64/mingw32-debug
taskcluster/ci/build/windows.yml
testing/mozharness/configs/builds/releng_base_windows_64_mingw_builds.py
testing/mozharness/configs/builds/releng_sub_windows_configs/64_mingw_debug.py
new file mode 100755
--- /dev/null
+++ b/browser/config/mozconfigs/win64/mingw32
@@ -0,0 +1,66 @@
+# Sets:
+#    MOZ_AUTOMATION flags
+#    SOCORRO_SYMBOL_UPLOAD_TOKEN_FILE - shouldn't be used?
+#    TOOLTOOL_DIR
+#    MAKECAB - shouldn't be used?
+. "$topsrcdir/build/mozconfig.win-common"
+
+# MinGW does not have (or need) makecab
+unset MAKECAB
+
+# Sets:
+#  build/mozconfig.common
+#    AUTOCLOBBER=1
+#    --enable-crashreporter
+#    --enable-release
+#    LLVM_CONFIG
+#    MOZ_ADDON_SIGNING
+#    MOZ_REQUIRE_SIGNING
+#    --enable-js-shell
+#  build/mozconfig.automation
+#    MOZ_AUTOMATION_ flags
+#  build/mozconfig.rust
+#    TOOLTOOL_DIR
+#    RUSTC
+#    CARGO
+. "$topsrcdir/browser/config/mozconfigs/common"
+
+# MinGW Stuff
+ac_add_options --target=x86_64-w64-mingw32
+ac_add_options --with-toolchain-prefix=x86_64-w64-mingw32-
+
+# GCC compiling for Windows exposes a lot of warnings. We are tracking them in Bug 1394433
+ac_add_options --disable-warnings-as-errors
+
+# Temporary config settings until we get these working on mingw
+ac_add_options --disable-accessibility # https://sourceforge.net/p/mingw-w64/bugs/648/
+
+# Long story
+ac_add_options --disable-stylo # Bug 1390583
+
+# Sandbox isn't support on MinGW 64 yet
+ac_add_options --disable-sandbox
+
+# These aren't supported on mingw at this time
+ac_add_options --disable-webrtc # Bug 1393901
+ac_add_options --disable-maintenance-service
+
+# Find our toolchain
+CC="$TOOLTOOL_DIR/mingw32/bin/x86_64-w64-mingw32-gcc"
+CXX="$TOOLTOOL_DIR/mingw32/bin/x86_64-w64-mingw32-g++"
+
+CXXFLAGS="$CXXFLAGS -DWIDL_EXPLICIT_AGGREGATE_RETURNS"
+
+# We want to make sure we use binutils and other binaries in the tooltool
+# package.
+mk_add_options "export PATH=$TOOLTOOL_DIR/mingw32/bin:$TOOLTOOL_DIR/wine/bin:$TOOLTOOL_DIR/upx/bin:$TOOLTOOL_DIR/fxc2/bin:$PATH"
+
+LD_LIBRARY_PATH=${LD_LIBRARY_PATH:+$LD_LIBRARY_PATH:}$TOOLTOOL_DIR/mingw32/lib64
+mk_add_options "export LD_LIBRARY_PATH=$LD_LIBRARY_PATH"
+
+# Do not include the visual studio related mozconfigs of course
+
+ac_add_options --with-branding=browser/branding/nightly
+
+. "$topsrcdir/build/mozconfig.common.override"
+. "$topsrcdir/build/mozconfig.cache"
new file mode 100755
--- /dev/null
+++ b/browser/config/mozconfigs/win64/mingw32-debug
@@ -0,0 +1,4 @@
+. "$topsrcdir/browser/config/mozconfigs/win64/mingw32"
+
+ac_add_options --enable-debug
+ac_add_options --disable-optimize
\ No newline at end of file
--- a/taskcluster/ci/build/windows.yml
+++ b/taskcluster/ci/build/windows.yml
@@ -648,17 +648,17 @@ win32-mingw32/opt:
         platform: windows-mingw32/all
         symbol: WM32(Bo)
         tier: 2
     worker-type: aws-provisioner-v1/gecko-{level}-b-linux
     worker:
         docker-image: {in-tree: mingw32-build}
         max-run-time: 7200
         env:
-            PERFHERDER_EXTRA_OPTIONS: "opt"
+            PERFHERDER_EXTRA_OPTIONS: "opt 32"
     run:
         using: mozharness
         actions: [build]
         script: mozharness/scripts/fx_desktop_build.py
         config:
             - builds/releng_base_firefox.py
             - builds/releng_base_windows_32_mingw_builds.py
         need-xvfb: false
@@ -680,17 +680,17 @@ win32-mingw32/debug:
         platform: windows-mingw32/all
         symbol: WM32(Bd)
         tier: 2
     worker-type: aws-provisioner-v1/gecko-{level}-b-linux
     worker:
         docker-image: {in-tree: mingw32-build}
         max-run-time: 7200
         env:
-            PERFHERDER_EXTRA_OPTIONS: "debug"
+            PERFHERDER_EXTRA_OPTIONS: "debug 32"
     run:
         using: mozharness
         actions: [build]
         script: mozharness/scripts/fx_desktop_build.py
         config:
             - builds/releng_base_firefox.py
             - builds/releng_base_windows_32_mingw_builds.py
             - builds/releng_sub_windows_configs/32_mingw_debug.py
@@ -698,8 +698,73 @@ win32-mingw32/debug:
     toolchains:
         - mingw32-rust
         - linux64-upx
         - linux64-wine
         - linux64-sccache
         - linux64-mingw32-gcc
         - linux64-mingw32-nsis
         - linux64-mingw32-fxc2
+
+win64-mingw32/opt:
+    description: "Win64 MinGW Opt"
+    index:
+        product: firefox
+        job-name: win64-mingw32-opt
+    treeherder:
+        platform: windows-mingw32/all
+        symbol: WM64(Bo)
+        tier: 2
+    worker-type: aws-provisioner-v1/gecko-{level}-b-linux
+    worker:
+        docker-image: {in-tree: mingw32-build}
+        max-run-time: 7200
+        env:
+            PERFHERDER_EXTRA_OPTIONS: "opt 64"
+    run:
+        using: mozharness
+        actions: [build]
+        script: mozharness/scripts/fx_desktop_build.py
+        config:
+            - builds/releng_base_firefox.py
+            - builds/releng_base_windows_64_mingw_builds.py
+        need-xvfb: false
+    toolchains:
+        - mingw32-rust
+        - linux64-upx
+        - linux64-wine
+        - linux64-sccache
+        - linux64-mingw32-gcc
+        - linux64-mingw32-nsis
+        - linux64-mingw32-fxc2
+
+win64-mingw32/debug:
+    description: "Win64 MinGW Debug"
+    index:
+        product: firefox
+        job-name: win64-mingw32-debug
+    treeherder:
+        platform: windows-mingw32/all
+        symbol: WM64(Bd)
+        tier: 2
+    worker-type: aws-provisioner-v1/gecko-{level}-b-linux
+    worker:
+        docker-image: {in-tree: mingw32-build}
+        max-run-time: 72000
+        env:
+            PERFHERDER_EXTRA_OPTIONS: "debug 64"
+    run:
+        using: mozharness
+        actions: [build]
+        script: mozharness/scripts/fx_desktop_build.py
+        config:
+            - builds/releng_base_firefox.py
+            - builds/releng_base_windows_64_mingw_builds.py
+            - builds/releng_sub_windows_configs/64_mingw_debug.py
+        need-xvfb: false
+    toolchains:
+        - mingw32-rust
+        - linux64-upx
+        - linux64-wine
+        - linux64-sccache
+        - linux64-mingw32-gcc
+        - linux64-mingw32-nsis
+        - linux64-mingw32-fxc2
new file mode 100755
--- /dev/null
+++ b/testing/mozharness/configs/builds/releng_base_windows_64_mingw_builds.py
@@ -0,0 +1,59 @@
+import os
+
+config = {
+    #########################################################################
+    ######## LINUX GENERIC CONFIG KEYS/VAlUES
+    # if you are updating this with custom 32 bit keys/values please add them
+    # below under the '32 bit specific' code block otherwise, update in this
+    # code block and also make sure this is synced with
+    # releng_base_linux_64_builds.py
+
+    "buildbot_json_path": "buildprops.json",
+    'app_ini_path': '%(obj_dir)s/dist/bin/application.ini',
+    # decides whether we want to use moz_sign_cmd in env
+    'enable_signing': False,
+    'secret_files': [
+        {'filename': '/builds/gapi.data',
+         'secret_name': 'project/releng/gecko/build/level-%(scm-level)s/gapi.data',
+         'min_scm_level': 1},
+        {'filename': '/builds/mozilla-desktop-geoloc-api.key',
+         'secret_name': 'project/releng/gecko/build/level-%(scm-level)s/mozilla-desktop-geoloc-api.key',
+         'min_scm_level': 2, 'default': 'try-build-has-no-secrets'},
+        {'filename': '/builds/adjust-sdk.token',
+         'secret_name': 'project/releng/gecko/build/level-%(scm-level)s/adjust-sdk.token',
+         'min_scm_level': 2, 'default': 'try-build-has-no-secrets'},
+        {'filename': '/builds/adjust-sdk-beta.token',
+         'secret_name': 'project/releng/gecko/build/level-%(scm-level)s/adjust-sdk-beta.token',
+         'min_scm_level': 2, 'default': 'try-build-has-no-secrets'},
+    ],
+    'vcs_share_base': '/builds/hg-shared',
+    'enable_count_ctors': False,
+    #########################################################################
+
+
+    #########################################################################
+    ###### 64 bit specific ######
+    'base_name': 'WINNT_5.2_MINGW_%(branch)s',
+    'platform': 'win64-mingw32',
+    'stage_platform': 'win64-mingw32',
+    'env': {
+        'MOZBUILD_STATE_PATH': os.path.join(os.getcwd(), '.mozbuild'),
+        'DISPLAY': ':2',
+        'HG_SHARE_BASE_DIR': '/builds/hg-shared',
+        'MOZ_OBJDIR': '%(abs_obj_dir)s',
+        'TINDERBOX_OUTPUT': '1',
+        'TOOLTOOL_CACHE': '/builds/worker/tooltool-cache',
+        'TOOLTOOL_HOME': '/builds',
+        'MOZ_CRASHREPORTER_NO_REPORT': '1',
+        'LC_ALL': 'C',
+        # 32 bit specific
+        'PATH': '/usr/local/bin:/bin:/usr/bin',
+    },
+    "check_test_env": {
+        'MINIDUMP_STACKWALK': '%(abs_tools_dir)s/breakpad/linux/minidump_stackwalk',
+        'MINIDUMP_SAVE_PATH': '%(base_work_dir)s/minidumps',
+    },
+    'mozconfig_platform': 'win64',
+    'mozconfig_variant': 'mingw32',
+    #########################################################################
+}
new file mode 100755
--- /dev/null
+++ b/testing/mozharness/configs/builds/releng_sub_windows_configs/64_mingw_debug.py
@@ -0,0 +1,3 @@
+config = {
+    'mozconfig_variant': 'mingw32-debug',
+}