From f317c71c16216b7bb0da62158d7ed0f9f9a73212 Mon Sep 17 00:00:00 2001 From: EAZYBLACK Date: Sat, 12 Sep 2026 19:43:14 +0300 Subject: [PATCH] Fix build with MSVC 2019+, and New SDK --- build/moz.configure/windows.configure | 17 ++++++++++++++++- memory/mozalloc/mozalloc.h | 6 ++++++ 2 files changed, 22 insertions(+), 1 deletion(-) diff --git a/build/moz.configure/windows.configure b/build/moz.configure/windows.configure index 4a28470d34..e2cb128265 100644 --- a/build/moz.configure/windows.configure +++ b/build/moz.configure/windows.configure @@ -84,7 +84,14 @@ def get_sdk_dirs(sdk, subdir): include_dirs['winv6.3'] = include_dirs['include'] del include_dirs['include'] - valid_versions = sorted(set(include_dirs) & set(lib_dirs), reverse=True) + def build_num(v): + parts = v.split('.') + try: + return int(parts[2]) if len(parts) >= 3 else 0 + except ValueError: + return 0 + valid_versions = sorted((v for v in set(include_dirs) & set(lib_dirs) + if build_num(v) <= 19041), reverse=True) if valid_versions: return namespace( path=sdk, @@ -136,6 +143,13 @@ def valid_windows_sdk_dir(compiler, windows_sdk_dir, target_version, 'WINDOWSSDKDIR (%s). Please verify it contains a valid and ' 'complete SDK installation.' % windows_sdk_dir_env) + def sdk_build(path): + parts = os.path.basename(path).split('.') + try: + return int(parts[2]) if len(parts) >= 3 else 0 + except ValueError: + return 0 + sdks = {k: v for k, v in sdks.items() if sdk_build(k) <= 19041} valid_sdks = sorted(sdks, key=lambda x: sdks[x][0], reverse=True) if valid_sdks: biggest_version, sdk = sdks[valid_sdks[0]] @@ -226,6 +240,7 @@ def valid_ucrt_sdk_dir(windows_sdk_dir, windows_sdk_dir_env): 'The SDK in WINDOWSSDKDIR (%s) does not contain the Universal ' 'CRT.' % windows_sdk_dir_env) + sdks = {k: v for k, v in sdks.items() if int(str(v[0]).split('.')[2]) <= 19041} valid_sdks = sorted(sdks, key=lambda x: sdks[x][0], reverse=True) if not valid_sdks: raise FatalCheckError('Cannot find the Universal CRT SDK. ' diff --git a/memory/mozalloc/mozalloc.h b/memory/mozalloc/mozalloc.h index de8c549b31..9c5b693288 100644 --- a/memory/mozalloc/mozalloc.h +++ b/memory/mozalloc/mozalloc.h @@ -33,6 +33,12 @@ #define MOZALLOC_HAVE_XMALLOC +/* Workaround build problems with v142+ MSVC*/ +#if defined(_MSC_VER) +#pragma warning(push) +#pragma warning(disable: 5043) +#endif + /* Workaround build problem with Sun Studio 12 */ #if defined(__SUNPRO_C) || defined(__SUNPRO_CC) # undef MOZ_MUST_USE