diff --git a/BUILDING.md b/BUILDING.md index c42c7877272..54825d6074f 100644 --- a/BUILDING.md +++ b/BUILDING.md @@ -100,26 +100,25 @@ Node.js does not support a platform version if a vendor has expired support for it. In other words, Node.js does not support running on End-of-Life (EoL) platforms. This is true regardless of entries in the table below. -| Operating System | Architectures | Versions | Support Type | Notes | -| ---------------- | ---------------- | --------------------------------- | ----------------------------------------------- | ------------------------------------ | -| GNU/Linux | x64 | kernel >= 4.18[^1], glibc >= 2.28 | Tier 1 | e.g. Ubuntu 20.04, Debian 10, RHEL 8 | -| GNU/Linux | x64 | kernel >= 3.10, musl >= 1.1.19 | Experimental | e.g. Alpine 3.8 | -| GNU/Linux | x86 | kernel >= 3.10, glibc >= 2.17 | Experimental | Downgraded as of Node.js 10 | -| GNU/Linux | arm64 | kernel >= 4.18[^1], glibc >= 2.28 | Tier 1 | e.g. Ubuntu 20.04, Debian 10, RHEL 8 | -| GNU/Linux | armv7 | kernel >= 4.18[^1], glibc >= 2.28 | Tier 1 | e.g. Ubuntu 20.04, Debian 11 | -| GNU/Linux | armv6 | kernel >= 4.14, glibc >= 2.24 | Experimental | Downgraded as of Node.js 12 | -| GNU/Linux | ppc64le >=power8 | kernel >= 4.18[^1], glibc >= 2.28 | Tier 2 | e.g. Ubuntu 20.04, RHEL 8 | -| GNU/Linux | s390x | kernel >= 4.18[^1], glibc >= 2.28 | Tier 2 | e.g. RHEL 8 | -| GNU/Linux | loong64 | kernel >= 5.19, glibc >= 2.36 | Experimental | | -| Windows | x64, x86 (WoW64) | >= Windows 10/Server 2016 | Tier 1 | [^2],[^3] | -| Windows | x86 (native) | >= Windows 10/Server 2016 | Tier 1 (running) / Experimental (compiling)[^4] | | -| Windows | x64, x86 | Windows 8.1/Server 2012 | Experimental | | -| Windows | arm64 | >= Windows 10 | Tier 2 | | -| macOS | x64 | >= 11.0 | Tier 1 | For notes about compilation see [^5] | -| macOS | arm64 | >= 11.0 | Tier 1 | | -| SmartOS | x64 | >= 18 | Tier 2 | | -| AIX | ppc64be >=power8 | >= 7.2 TL04 | Tier 2 | | -| FreeBSD | x64 | >= 13.2 | Experimental | | +| Operating System | Architectures | Versions | Support Type | Notes | +| ---------------- | ---------------- | --------------------------------- | ------------ | ------------------------------------ | +| GNU/Linux | x64 | kernel >= 4.18[^1], glibc >= 2.28 | Tier 1 | e.g. Ubuntu 20.04, Debian 10, RHEL 8 | +| GNU/Linux | x64 | kernel >= 3.10, musl >= 1.1.19 | Experimental | e.g. Alpine 3.8 | +| GNU/Linux | x86 | kernel >= 3.10, glibc >= 2.17 | Experimental | Downgraded as of Node.js 10 | +| GNU/Linux | arm64 | kernel >= 4.18[^1], glibc >= 2.28 | Tier 1 | e.g. Ubuntu 20.04, Debian 10, RHEL 8 | +| GNU/Linux | armv7 | kernel >= 4.18[^1], glibc >= 2.28 | Tier 1 | e.g. Ubuntu 20.04, Debian 11 | +| GNU/Linux | armv6 | kernel >= 4.14, glibc >= 2.24 | Experimental | Downgraded as of Node.js 12 | +| GNU/Linux | ppc64le >=power8 | kernel >= 4.18[^1], glibc >= 2.28 | Tier 2 | e.g. Ubuntu 20.04, RHEL 8 | +| GNU/Linux | s390x | kernel >= 4.18[^1], glibc >= 2.28 | Tier 2 | e.g. RHEL 8 | +| GNU/Linux | loong64 | kernel >= 5.19, glibc >= 2.36 | Experimental | | +| Windows | x64 | >= Windows 10/Server 2016 | Tier 1 | [^2],[^3] | +| Windows | x64 | Windows 8.1/Server 2012 | Experimental | | +| Windows | arm64 | >= Windows 10 | Tier 2 | | +| macOS | x64 | >= 11.0 | Tier 1 | For notes about compilation see [^4] | +| macOS | arm64 | >= 11.0 | Tier 1 | | +| SmartOS | x64 | >= 18 | Tier 2 | | +| AIX | ppc64be >=power8 | >= 7.2 TL04 | Tier 2 | | +| FreeBSD | x64 | >= 13.2 | Experimental | | @@ -141,12 +140,7 @@ platforms. This is true regardless of entries in the table below. Windows binary (`node.exe`) in WSL will not work without workarounds such as stdio redirection. -[^4]: Running Node.js on x86 Windows should work and binaries - are provided. However, tests in our infrastructure only run on WoW64. - Furthermore, compiling on x86 Windows is Experimental and - may not be possible. - -[^5]: Our macOS x64 Binaries are compiled with 11.0 as a target. Xcode 13 is +[^4]: Our macOS x64 Binaries are compiled with 11.0 as a target. Xcode 13 is required to compile. @@ -175,7 +169,7 @@ Binaries at are produced on: | linux-ppc64le | RHEL 8 with gcc-toolset-10[^6] | | linux-s390x | RHEL 8 with gcc-toolset-10[^6] | | linux-x64 | RHEL 8 with gcc-toolset-10[^6] | -| win-x64 and win-x86 | Windows Server 2022 (x64) with Visual Studio 2022 | +| win-x64 | Windows Server 2022 (x64) with Visual Studio 2022 | diff --git a/configure.py b/configure.py index c68e4b48e7c..f5b04924695 100755 --- a/configure.py +++ b/configure.py @@ -1270,18 +1270,17 @@ def host_arch_cc(): def host_arch_win(): """Host architecture check using environ vars (better way to do this?)""" - observed_arch = os.environ.get('PROCESSOR_ARCHITECTURE', 'x86') + observed_arch = os.environ.get('PROCESSOR_ARCHITECTURE', 'AMD64') arch = os.environ.get('PROCESSOR_ARCHITEW6432', observed_arch) matchup = { 'AMD64' : 'x64', - 'x86' : 'ia32', 'arm' : 'arm', 'mips' : 'mips', 'ARM64' : 'arm64' } - return matchup.get(arch, 'ia32') + return matchup.get(arch, 'x64') def configure_arm(o): diff --git a/node.gyp b/node.gyp index 8478201831c..94d2667b0cd 100644 --- a/node.gyp +++ b/node.gyp @@ -475,15 +475,6 @@ ], }, - # Relevant only for x86. - # Refs: https://github.com/nodejs/node/pull/25852 - # Refs: https://docs.microsoft.com/en-us/cpp/build/reference/safeseh-image-has-safe-exception-handlers - 'msvs_settings': { - 'VCLinkerTool': { - 'ImageHasSafeExceptionHandlers': 'false', - }, - }, - 'conditions': [ # Pointer authentication for ARM64. ['target_arch=="arm64"', { diff --git a/src/node_metadata.cc b/src/node_metadata.cc index 14fb8ec9714..3bf9b9e7685 100644 --- a/src/node_metadata.cc +++ b/src/node_metadata.cc @@ -146,9 +146,7 @@ Metadata::Release::Release() : name(NODE_RELEASE) { source_url = NODE_RELEASE_URLFPFX ".tar.gz"; headers_url = NODE_RELEASE_URLFPFX "-headers.tar.gz"; #ifdef _WIN32 - lib_url = strcmp(NODE_ARCH, "ia32") ? NODE_RELEASE_URLPFX "win-" NODE_ARCH - "/node.lib" - : NODE_RELEASE_URLPFX "win-x86/node.lib"; + lib_url = NODE_RELEASE_URLPFX "win-" NODE_ARCH "/node.lib"; #endif // _WIN32 #endif // NODE_HAS_RELEASE_URLS diff --git a/test/parallel/parallel.status b/test/parallel/parallel.status index 4b66881b79c..3d534402e5b 100644 --- a/test/parallel/parallel.status +++ b/test/parallel/parallel.status @@ -21,10 +21,6 @@ test-error-serdes: PASS, FLAKY [$system==win32] -# Windows on x86 -[$system==win32 && $arch==ia32] -test-worker-nearheaplimit-deadlock: PASS, FLAKY - # Windows on ARM [$system==win32 && $arch==arm64] diff --git a/test/parallel/test-navigator.js b/test/parallel/test-navigator.js index b280a047d1c..53949cea246 100644 --- a/test/parallel/test-navigator.js +++ b/test/parallel/test-navigator.js @@ -62,7 +62,6 @@ assert.strictEqual(getNavigatorPlatform({ arch: 'arm64', platform: 'darwin' }), assert.strictEqual(getNavigatorPlatform({ arch: 'ia32', platform: 'linux' }), 'Linux i686'); assert.strictEqual(getNavigatorPlatform({ arch: 'x64', platform: 'linux' }), 'Linux x86_64'); assert.strictEqual(getNavigatorPlatform({ arch: 'arm64', platform: 'linux' }), 'Linux arm64'); -assert.strictEqual(getNavigatorPlatform({ arch: 'ia32', platform: 'win32' }), 'Win32'); assert.strictEqual(getNavigatorPlatform({ arch: 'x64', platform: 'win32' }), 'Win32'); assert.strictEqual(getNavigatorPlatform({ arch: 'arm64', platform: 'win32' }), 'Win32'); assert.strictEqual(getNavigatorPlatform({ arch: 'ia32', platform: 'freebsd' }), 'FreeBSD i386'); diff --git a/tools/msvs/msi/custom_actions/custom_actions.vcxproj b/tools/msvs/msi/custom_actions/custom_actions.vcxproj index 6de11e1eae3..c0eb2cd0511 100644 --- a/tools/msvs/msi/custom_actions/custom_actions.vcxproj +++ b/tools/msvs/msi/custom_actions/custom_actions.vcxproj @@ -5,10 +5,6 @@ Debug ARM64 - - Debug - Win32 - Debug x64 @@ -17,10 +13,6 @@ Release ARM64 - - Release - Win32 - Release x64 @@ -33,12 +25,6 @@ custom_actions - - DynamicLibrary - $(PlatformToolset) - Unicode - true - DynamicLibrary $(PlatformToolset) @@ -51,11 +37,6 @@ Unicode true - - DynamicLibrary - $(PlatformToolset) - Unicode - DynamicLibrary $(PlatformToolset) @@ -69,18 +50,12 @@ - - - - - - @@ -91,43 +66,18 @@ <_ProjectFileVersion>12.0.30501.0 - - true - true true - - false - false false - - - Disabled - $(PkgWixToolset_WcaUtil)\build\native\include;$(PkgWixToolset_DUtil)\build\native\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) - EnableFastChecks - MultiThreadedDebug - NotUsing - Level3 - ProgramDatabase - - - msi.lib;dutil.lib;wcautil.lib;version.lib;%(AdditionalDependencies) - $(PkgWixToolset_WcaUtil)\build\native\v14\x86;$(PkgWixToolset_DUtil)\build\native\v14\x86;%(AdditionalLibraryDirectories) - custom_actions.def - true - Windows - - Disabled @@ -166,32 +116,6 @@ Windows - - - MaxSpeed - true - $(PkgWixToolset_WcaUtil)\build\native\include;$(PkgWixToolset_DUtil)\build\native\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) - MultiThreaded - true - Level3 - ProgramDatabase - NotUsing - - - - - - - msi.lib;dutil.lib;wcautil.lib;version.lib;%(AdditionalDependencies) - $(PkgWixToolset_WcaUtil)\build\native\v14\x86;$(PkgWixToolset_DUtil)\build\native\v14\x86;%(AdditionalLibraryDirectories) - custom_actions.def - true - Windows - true - true - - MaxSpeed diff --git a/tools/msvs/msi/nodemsi.sln b/tools/msvs/msi/nodemsi.sln index e06530f5e24..7c380e760df 100644 --- a/tools/msvs/msi/nodemsi.sln +++ b/tools/msvs/msi/nodemsi.sln @@ -13,36 +13,26 @@ Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|ARM64 = Debug|ARM64 Debug|x64 = Debug|x64 - Debug|x86 = Debug|x86 Release|ARM64 = Release|ARM64 Release|x64 = Release|x64 - Release|x86 = Release|x86 EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution {1D808FF0-B5A9-4BE9-859D-B334B6F48BE2}.Debug|ARM64.ActiveCfg = Debug|arm64 {1D808FF0-B5A9-4BE9-859D-B334B6F48BE2}.Debug|ARM64.Build.0 = Debug|arm64 {1D808FF0-B5A9-4BE9-859D-B334B6F48BE2}.Debug|x64.ActiveCfg = Debug|x64 {1D808FF0-B5A9-4BE9-859D-B334B6F48BE2}.Debug|x64.Build.0 = Debug|x64 - {1D808FF0-B5A9-4BE9-859D-B334B6F48BE2}.Debug|x86.ActiveCfg = Debug|x86 - {1D808FF0-B5A9-4BE9-859D-B334B6F48BE2}.Debug|x86.Build.0 = Debug|x86 {1D808FF0-B5A9-4BE9-859D-B334B6F48BE2}.Release|ARM64.ActiveCfg = Release|arm64 {1D808FF0-B5A9-4BE9-859D-B334B6F48BE2}.Release|ARM64.Build.0 = Release|arm64 {1D808FF0-B5A9-4BE9-859D-B334B6F48BE2}.Release|x64.ActiveCfg = Release|x64 {1D808FF0-B5A9-4BE9-859D-B334B6F48BE2}.Release|x64.Build.0 = Release|x64 - {1D808FF0-B5A9-4BE9-859D-B334B6F48BE2}.Release|x86.ActiveCfg = Release|x86 - {1D808FF0-B5A9-4BE9-859D-B334B6F48BE2}.Release|x86.Build.0 = Release|x86 {B70585F8-DAB7-40FA-9904-13CF53A73A06}.Debug|ARM64.ActiveCfg = Debug|ARM64 {B70585F8-DAB7-40FA-9904-13CF53A73A06}.Debug|ARM64.Build.0 = Debug|ARM64 {B70585F8-DAB7-40FA-9904-13CF53A73A06}.Debug|x64.ActiveCfg = Debug|x64 {B70585F8-DAB7-40FA-9904-13CF53A73A06}.Debug|x64.Build.0 = Debug|x64 - {B70585F8-DAB7-40FA-9904-13CF53A73A06}.Debug|x86.ActiveCfg = Debug|Win32 - {B70585F8-DAB7-40FA-9904-13CF53A73A06}.Debug|x86.Build.0 = Debug|Win32 {B70585F8-DAB7-40FA-9904-13CF53A73A06}.Release|ARM64.ActiveCfg = Release|ARM64 {B70585F8-DAB7-40FA-9904-13CF53A73A06}.Release|ARM64.Build.0 = Release|ARM64 {B70585F8-DAB7-40FA-9904-13CF53A73A06}.Release|x64.ActiveCfg = Release|x64 {B70585F8-DAB7-40FA-9904-13CF53A73A06}.Release|x64.Build.0 = Release|x64 - {B70585F8-DAB7-40FA-9904-13CF53A73A06}.Release|x86.ActiveCfg = Release|Win32 - {B70585F8-DAB7-40FA-9904-13CF53A73A06}.Release|x86.Build.0 = Release|Win32 EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/tools/msvs/msi/nodemsi/nodemsi.wixproj b/tools/msvs/msi/nodemsi/nodemsi.wixproj index b1463cf6569..ddb26cb0dee 100644 --- a/tools/msvs/msi/nodemsi/nodemsi.wixproj +++ b/tools/msvs/msi/nodemsi/nodemsi.wixproj @@ -2,23 +2,13 @@ Debug - x86 + x64 3.5 {1d808ff0-b5a9-4be9-859d-b334b6f48be2} node-v$(FullVersion)-$(Platform) Package 0.0.0.0 - - ..\..\..\..\ - obj\$(Configuration)\ - Debug;ProductVersion=$(NodeVersion);FullVersion=$(FullVersion);DistTypeDir=$(DistTypeDir);NpmSourceDir=..\..\..\..\Release\node-v$(FullVersion)-win-$(Platform)\node_modules\npm\;CorepackSourceDir=..\..\..\..\Release\node-v$(FullVersion)-win-$(Platform)\node_modules\corepack\;ProgramFilesFolderId=ProgramFilesFolder - - - ..\..\..\..\ - obj\$(Configuration)\ - Debug;ProductVersion=$(NodeVersion);FullVersion=$(FullVersion);DistTypeDir=$(DistTypeDir);NpmSourceDir=..\..\..\..\Release\node-v$(FullVersion)-win-$(Platform)\node_modules\npm\;CorepackSourceDir=..\..\..\..\Release\node-v$(FullVersion)-win-$(Platform)\node_modules\corepack\;ProgramFilesFolderId=ProgramFilesFolder - ..\..\..\..\ obj\$(Configuration)\ diff --git a/tools/v8_gypfiles/toolchain.gypi b/tools/v8_gypfiles/toolchain.gypi index 98e738d0a81..648da43e7fa 100644 --- a/tools/v8_gypfiles/toolchain.gypi +++ b/tools/v8_gypfiles/toolchain.gypi @@ -550,14 +550,6 @@ 'CharacterSet': '1', }, }], - ['OS=="win" and v8_target_arch=="ia32"', { - 'msvs_settings': { - 'VCCLCompilerTool': { - # Ensure no surprising artifacts from 80bit double math with x86. - 'AdditionalOptions': ['/arch:SSE2'], - }, - }, - }], ['OS=="win" and v8_enable_prof==1', { 'msvs_settings': { 'VCLinkerTool': { @@ -962,13 +954,5 @@ 4724, # https://crbug.com/v8/7771 4800, # Forcing value to bool. ], - # Relevant only for x86. - # Refs: https://github.com/nodejs/node/pull/25852 - # Refs: https://docs.microsoft.com/en-us/cpp/build/reference/safeseh-image-has-safe-exception-handlers - 'msvs_settings': { - 'VCLinkerTool': { - 'ImageHasSafeExceptionHandlers': 'false', - }, - }, }, # target_defaults } diff --git a/tools/v8_gypfiles/v8.gyp b/tools/v8_gypfiles/v8.gyp index 118cad54188..837789beda3 100644 --- a/tools/v8_gypfiles/v8.gyp +++ b/tools/v8_gypfiles/v8.gyp @@ -1951,11 +1951,6 @@ '<(V8_ROOT)/src/heap/base/asm/x64/push_registers_masm.asm', ], }], - ['_toolset == "host" and host_arch == "ia32" or _toolset == "target" and target_arch=="ia32"', { - 'sources': [ - '<(V8_ROOT)/src/heap/base/asm/ia32/push_registers_masm.asm', - ], - }], ['_toolset == "host" and host_arch == "arm64" or _toolset == "target" and target_arch=="arm64"', { 'sources': [ '<(V8_ROOT)/src/heap/base/asm/arm64/push_registers_masm.S', diff --git a/vcbuild.bat b/vcbuild.bat index fc3b8e28d6d..a3c9c0484ec 100644 --- a/vcbuild.bat +++ b/vcbuild.bat @@ -203,7 +203,11 @@ if defined debug_nghttp2 set configure_flags=%configure_flags% --debug-nghttp if defined openssl_no_asm set configure_flags=%configure_flags% --openssl-no-asm if defined no_shared_roheap set configure_flags=%configure_flags% --disable-shared-readonly-heap if defined DEBUG_HELPER set configure_flags=%configure_flags% --verbose -if "%target_arch%"=="x86" if "%PROCESSOR_ARCHITECTURE%"=="AMD64" set configure_flags=%configure_flags% --no-cross-compiling + +if "%target_arch%"=="x86" ( + echo "32-bit Windows builds are not supported anymore." + exit /b 1 +) if not exist "%~dp0deps\icu" goto no-depsicu if "%target%"=="Clean" echo deleting %~dp0deps\icu @@ -220,7 +224,7 @@ if "%target%"=="TestClean" ( call tools\msvs\find_python.cmd if errorlevel 1 goto :exit -REM NASM is only needed on IA32 and x86_64. +REM NASM is only needed on x86_64. if not defined openssl_no_asm if "%target_arch%" NEQ "arm64" call tools\msvs\find_nasm.cmd if errorlevel 1 echo Could not find NASM, install it or build with openssl-no-asm. See BUILDING.md. @@ -236,9 +240,7 @@ if defined noprojgen if defined nobuild goto :after-build @rem Set environment for msbuild -set msvs_host_arch=x86 -if _%PROCESSOR_ARCHITECTURE%_==_AMD64_ set msvs_host_arch=amd64 -if _%PROCESSOR_ARCHITEW6432%_==_AMD64_ set msvs_host_arch=amd64 +set msvs_host_arch=amd64 if _%PROCESSOR_ARCHITECTURE%_==_ARM64_ set msvs_host_arch=arm64 @rem usually vcvarsall takes an argument: host + '_' + target set vcvarsall_arg=%msvs_host_arch%_%target_arch% @@ -319,8 +321,7 @@ if defined nobuild goto :after-build @rem Build the sln with msbuild. set "msbcpu=/m:2" if "%NUMBER_OF_PROCESSORS%"=="1" set "msbcpu=/m:1" -set "msbplatform=Win32" -if "%target_arch%"=="x64" set "msbplatform=x64" +set "msbplatform=x64" if "%target_arch%"=="arm64" set "msbplatform=ARM64" if "%target%"=="Build" ( if defined no_cctest set target=node @@ -753,7 +754,7 @@ set exit_code=1 goto exit :help -echo vcbuild.bat [debug/release] [msi] [doc] [test/test-all/test-addons/test-doc/test-js-native-api/test-node-api/test-internet/test-tick-processor/test-known-issues/test-node-inspect/test-check-deopts/test-npm/test-v8/test-v8-intl/test-v8-benchmarks/test-v8-all] [ignore-flaky] [static/dll] [noprojgen] [projgen] [clang-cl] [small-icu/full-icu/without-intl] [nobuild] [nosnapshot] [nonpm] [nocorepack] [ltcg] [licensetf] [sign] [ia32/x86/x64/arm64] [vs2022] [download-all] [enable-vtune] [lint/lint-ci/lint-js/lint-md] [lint-md-build] [format-md] [package] [build-release] [upload] [no-NODE-OPTIONS] [link-module path-to-module] [debug-http2] [debug-nghttp2] [clean] [cctest] [no-cctest] [openssl-no-asm] +echo vcbuild.bat [debug/release] [msi] [doc] [test/test-all/test-addons/test-doc/test-js-native-api/test-node-api/test-internet/test-tick-processor/test-known-issues/test-node-inspect/test-check-deopts/test-npm/test-v8/test-v8-intl/test-v8-benchmarks/test-v8-all] [ignore-flaky] [static/dll] [noprojgen] [projgen] [clang-cl] [small-icu/full-icu/without-intl] [nobuild] [nosnapshot] [nonpm] [nocorepack] [ltcg] [licensetf] [sign] [x64/arm64] [vs2022] [download-all] [enable-vtune] [lint/lint-ci/lint-js/lint-md] [lint-md-build] [format-md] [package] [build-release] [upload] [no-NODE-OPTIONS] [link-module path-to-module] [debug-http2] [debug-nghttp2] [clean] [cctest] [no-cctest] [openssl-no-asm] echo Examples: echo vcbuild.bat : builds release build echo vcbuild.bat debug : builds debug build