=UTF-8
diff --git a/bundles/org.eclipse.equinox.launcher.win32.win32.aarch64/META-INF/MANIFEST.MF b/bundles/org.eclipse.equinox.launcher.win32.win32.aarch64/META-INF/MANIFEST.MF
new file mode 100644
index 00000000000..ebe0fb7347a
--- /dev/null
+++ b/bundles/org.eclipse.equinox.launcher.win32.win32.aarch64/META-INF/MANIFEST.MF
@@ -0,0 +1,10 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: %pluginName
+Bundle-Vendor: %providerName
+Bundle-SymbolicName: org.eclipse.equinox.launcher.win32.win32.aarch64;singleton:=true
+Bundle-Version: 1.2.900.qualifier
+Fragment-Host: org.eclipse.equinox.launcher;bundle-version="[1.5.0,1.7.0)"
+Eclipse-PlatformFilter: (& (osgi.ws=win32) (osgi.os=win32) (osgi.arch=aarch64))
+Bundle-Localization: launcher.win32.win32.aarch64
+Eclipse-BundleShape: dir
diff --git a/bundles/org.eclipse.equinox.launcher.win32.win32.aarch64/about.html b/bundles/org.eclipse.equinox.launcher.win32.win32.aarch64/about.html
new file mode 100644
index 00000000000..164f781a8fd
--- /dev/null
+++ b/bundles/org.eclipse.equinox.launcher.win32.win32.aarch64/about.html
@@ -0,0 +1,36 @@
+
+
+
+
+About
+
+
+ About This Content
+
+ November 30, 2017
+ License
+
+
+ The Eclipse Foundation makes available all content in this plug-in
+ ("Content"). Unless otherwise indicated below, the Content
+ is provided to you under the terms and conditions of the Eclipse
+ Public License Version 2.0 ("EPL"). A copy of the EPL is
+ available at http://www.eclipse.org/legal/epl-2.0.
+ For purposes of the EPL, "Program" will mean the Content.
+
+
+
+ If you did not receive this Content directly from the Eclipse
+ Foundation, the Content is being redistributed by another party
+ ("Redistributor") and different terms and conditions may
+ apply to your use of any object code in the Content. Check the
+ Redistributor's license that was provided with the Content. If no such
+ license exists, contact the Redistributor. Unless otherwise indicated
+ below, the terms and conditions of the EPL still apply to any source
+ code in the Content and such source code may be obtained at http://www.eclipse.org.
+
+
+
+
\ No newline at end of file
diff --git a/bundles/org.eclipse.equinox.launcher.win32.win32.aarch64/build.properties b/bundles/org.eclipse.equinox.launcher.win32.win32.aarch64/build.properties
new file mode 100644
index 00000000000..662e2fa2d8e
--- /dev/null
+++ b/bundles/org.eclipse.equinox.launcher.win32.win32.aarch64/build.properties
@@ -0,0 +1,25 @@
+###############################################################################
+# Copyright (c) 2023, 2024 Eclipse Foundation.
+#
+# This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License 2.0
+# which accompanies this distribution, and is available at
+# https://www.eclipse.org/legal/epl-2.0/
+#
+# SPDX-License-Identifier: EPL-2.0
+#
+# Contributors:
+# Tue Ton - initial API and implementation
+###############################################################################
+bin.includes = META-INF/,\
+ launcher.win32.win32.aarch64.properties,\
+ about.html
+
+generateSourceBundle=false
+binaryTag=v20240129-1338
+
+# Maven properties, see https://github.com/eclipse/tycho/wiki/Tycho-Pomless
+tycho.pomless.parent = ../../launcher-binary-parent
+pom.model.property.os = win32
+pom.model.property.ws = win32
+pom.model.property.arch = aarch64
diff --git a/bundles/org.eclipse.equinox.launcher.win32.win32.aarch64/launcher.win32.win32.aarch64.properties b/bundles/org.eclipse.equinox.launcher.win32.win32.aarch64/launcher.win32.win32.aarch64.properties
new file mode 100644
index 00000000000..df45f1edbf9
--- /dev/null
+++ b/bundles/org.eclipse.equinox.launcher.win32.win32.aarch64/launcher.win32.win32.aarch64.properties
@@ -0,0 +1,15 @@
+###############################################################################
+# Copyright (c) 2023, 2024 Eclipse Foundation.
+#
+# This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License 2.0
+# which accompanies this distribution, and is available at
+# https://www.eclipse.org/legal/epl-2.0/
+#
+# SPDX-License-Identifier: EPL-2.0
+#
+# Contributors:
+# Tue Ton - initial API and implementation
+###############################################################################
+pluginName = Equinox Launcher Win32 Arm64 Fragment
+providerName = Eclipse.org - Equinox
diff --git a/features/org.eclipse.equinox.executable.feature/build.properties b/features/org.eclipse.equinox.executable.feature/build.properties
index 2ab3c26d5fd..f385478239b 100644
--- a/features/org.eclipse.equinox.executable.feature/build.properties
+++ b/features/org.eclipse.equinox.executable.feature/build.properties
@@ -21,6 +21,9 @@ bin.includes = bin/,\
####Even though marked as custom, the content of the build.properties needs to be updated to ensure correctness of RCP app exported
#root.permissions.755=${launcherName}
+root.win32.win32.aarch64=bin/win32/win32/aarch64
+root.win32.win32.aarch64.permissions.755=launcher.exe
+
root.win32.win32.x86_64=bin/win32/win32/x86_64
root.win32.win32.x86_64.permissions.755=launcher.exe
diff --git a/features/org.eclipse.equinox.executable.feature/feature.xml b/features/org.eclipse.equinox.executable.feature/feature.xml
index dfeaaaafa6a..12beb75c5a0 100755
--- a/features/org.eclipse.equinox.executable.feature/feature.xml
+++ b/features/org.eclipse.equinox.executable.feature/feature.xml
@@ -65,6 +65,13 @@
arch="x86_64"
version="0.0.0"/>
+
+
] [clean]
-@rem
-@rem where the optional switches are:
-@rem -output - executable filename ("eclipse")
-@rem -library - dll filename (eclipse.dll)
-@rem -os - default Eclipse "-os" value (qnx)
-@rem -arch - default Eclipse "-arch" value (x86)
-@rem -ws - default Eclipse "-ws" value (photon)
-@rem -java - location of a Java SDK for JNI headers
-@rem
-@rem
-@rem This script can also be invoked with the "clean" argument.
-@rem
-@rem NOTE: The C compiler needs to be setup. This script has been
-@rem tested against Microsoft Visual C and C++ Compiler 6.0.
-@rem
-@rem Uncomment the lines below and edit MSVC_HOME to point to the
-@rem correct root directory of the compiler installation, if you
-@rem want this to be done by this script.
-@rem
-@rem ******
-@echo off
-
-IF EXIST C:\BUILD\swt-builddir set LAUNCHER_BUILDDIR=C:\BUILD\swt-builddir
-IF x.%LAUNCHER_BUILDDIR%==x. set LAUNCHER_BUILDDIR=S:\swt-builddir
-echo LAUNCHER build dir: %LAUNCHER_BUILDDIR%
-
-@rem Specify VisualStudio Edition: 'Community', 'Enterprise', 'Professional' etc.
-IF "x.%MSVC_EDITION%"=="x." set "MSVC_EDITION=Community"
-
-@rem Specify VisualStudio Version: '2017' or newer '2019'
-IF "x.%MSVC_VERSION%"=="x." set "MSVC_VERSION=2019"
-
-GOTO X86_64
-
-:X86_64
-shift
-set defaultOSArch=x86_64
-set PROCESSOR_ARCHITECTURE=AMD64
-IF NOT EXIST "%MSVC_HOME%" set "MSVC_HOME=%ProgramFiles(x86)%\Microsoft Visual Studio\%MSVC_VERSION%\BuildTools"
-IF NOT EXIST "%MSVC_HOME%" set "MSVC_HOME=%ProgramFiles(x86)%\Microsoft Visual Studio\%MSVC_VERSION%\%MSVC_EDITION%"
-IF EXIST "%MSVC_HOME%" (
- echo "Microsoft Visual Studio %MSVC_VERSION% dir: %MSVC_HOME%"
-) ELSE (
- echo "WARNING: Microsoft Visual Studio %MSVC_VERSION% was not found."
- echo " Refer steps for SWT Windows native setup: https://www.eclipse.org/swt/swt_win_native.php"
-)
-IF NOT EXIST "%JAVA_HOME%" set "JAVA_HOME=%ProgramFiles%\AdoptOpenJDK\jdk-8.0.292.10-hotspot"
-IF EXIST "%JAVA_HOME%" (
- echo "JAVA_HOME x64: %JAVA_HOME%"
-) ELSE (
- echo "WARNING: x64 Java JDK not found. Please set JAVA_HOME to your JDK directory."
- echo " Refer steps for SWT Windows native setup: https://www.eclipse.org/swt/swt_win_native.php"
-)
-set javaHome=%JAVA_HOME%
-set makefile=make_win64.mak
-call "%MSVC_HOME%\VC\Auxiliary\Build\vcvarsall.bat" x64
-GOTO MAKE
-
-:MAKE
-rem --------------------------
-rem Define default values for environment variables used in the makefiles.
-rem --------------------------
-set programOutput=eclipse.exe
-set programLibrary=eclipse.dll
-set defaultOS=win32
-set defaultWS=win32
-set OS=Windows
-
-rem --------------------------
-rem Parse the command line arguments and override the default values.
-rem --------------------------
-set extraArgs=
-:WHILE
-if "%1" == "" goto WHILE_END
- if "%2" == "" goto LAST_ARG
-
- if "%1" == "-os" (
- set defaultOS=%2
- shift
- goto NEXT )
- if "%1" == "-arch" (
- set defaultOSArch=%2
- shift
- goto NEXT )
- if "%1" == "-ws" (
- set defaultWS=%2
- shift
- goto NEXT )
- if "%1" == "-output" (
- set programOutput=%2
- shift
- goto NEXT )
- if "%1" == "-library" (
- set programLibrary=%2
- shift
- goto NEXT )
- if "%1" == "-java" (
- set javaHome=%2
- echo %javaHome%
- shift
- goto NEXT )
-:LAST_ARG
- set extraArgs=%extraArgs% %1
-
-:NEXT
- shift
- goto WHILE
-:WHILE_END
-
-rem --------------------------
-rem Set up environment variables needed by the makefile.
-rem --------------------------
-set PROGRAM_OUTPUT=%programOutput%
-set PROGRAM_LIBRARY=%programLibrary%
-set DEFAULT_OS=%defaultOS%
-set DEFAULT_OS_ARCH=%defaultOSArch%
-set DEFAULT_WS=%defaultWS%
-set EXEC_DIR=..\..\.\..\..\rt.equinox.binaries\org.eclipse.equinox.executable
-set OUTPUT_DIR=%EXEC_DIR%\bin\%defaultWS%\%defaultOS%\%defaultOSArch%
-set JAVA_HOME=%javaHome%
-
-rem --------------------------
-rem Run nmake to build the executable.
-rem --------------------------
-if "%extraArgs%" == "" goto MAKE_ALL
-
-nmake -f %makefile% %extraArgs%
-goto DONE
-
-:MAKE_ALL
-echo Building %OS% launcher. Defaults: -os %DEFAULT_OS% -arch %DEFAULT_OS_ARCH% -ws %DEFAULT_WS%
-nmake -f %makefile% clean
-nmake -f %makefile% %1 %2 %3 %4
-goto DONE
-
-
-:DONE
+@rem *******************************************************************************
+@rem Copyright (c) 2000, 2021 IBM Corporation and others.
+@rem
+@rem This program and the accompanying materials
+@rem are made available under the terms of the Eclipse Public License 2.0
+@rem which accompanies this distribution, and is available at
+@rem https://www.eclipse.org/legal/epl-2.0/
+@rem
+@rem SPDX-License-Identifier: EPL-2.0
+@rem
+@rem Contributors:
+@rem IBM Corporation - initial API and implementation
+@rem Kevin Cornell (Rational Software Corporation)
+@rem **********************************************************************
+@rem
+@rem Usage: sh build.sh [] [clean]
+@rem
+@rem where the optional switches are:
+@rem -output - executable filename ("eclipse")
+@rem -library - dll filename (eclipse.dll)
+@rem -os - default Eclipse "-os" value (qnx)
+@rem -arch - default Eclipse "-arch" value (x86)
+@rem -ws - default Eclipse "-ws" value (photon)
+@rem -java - location of a Java SDK for JNI headers
+@rem
+@rem
+@rem This script can also be invoked with the "clean" argument.
+@rem
+@rem NOTE: The C compiler needs to be setup. This script has been
+@rem tested against Microsoft Visual C and C++ Compiler 6.0.
+@rem
+@rem Uncomment the lines below and edit MSVC_HOME to point to the
+@rem correct root directory of the compiler installation, if you
+@rem want this to be done by this script.
+@rem
+@rem ******
+@echo off
+
+IF EXIST C:\BUILD\swt-builddir set LAUNCHER_BUILDDIR=C:\BUILD\swt-builddir
+IF x.%LAUNCHER_BUILDDIR%==x. set LAUNCHER_BUILDDIR=S:\swt-builddir
+echo LAUNCHER build dir: %LAUNCHER_BUILDDIR%
+
+@rem Specify VisualStudio Edition: 'Community', 'Enterprise', 'Professional' etc.
+IF "x.%MSVC_EDITION%"=="x." set "MSVC_EDITION=Community"
+
+@rem Specify VisualStudio Version: '2019' or newer '2022'
+IF "x.%MSVC_VERSION%"=="x." set "MSVC_VERSION=2022"
+
+GOTO WIN64
+
+:WIN64
+@REM Compose host architecture string for MSVC
+IF "%PROCESSOR_ARCHITECTURE%"=="AMD64" (
+ SET HOST_ARCH=x64
+ SET defaultOSArch=x86_64
+) ELSE IF "%PROCESSOR_ARCHITECTURE%"=="ARM64" (
+ SET HOST_ARCH=arm64
+ SET defaultOSArch=aarch64
+) ELSE (
+ CALL :ECHO "ERROR: Unknown host architecture: %PROCESSOR_ARCHITECTURE%."
+ EXIT /B 1
+)
+
+@REM %TARGET_ARCH% may be specified by the caller for cross-compiling.
+@REM If not, build for builder machine's architecture
+IF "%TARGET_ARCH%"=="" (
+ SET TARGET_ARCH=%HOST_ARCH%
+)
+
+@REM Compose build argument for MSVC
+IF "%TARGET_ARCH%"=="%HOST_ARCH%" (
+ SET BUILD_ARCH=%TARGET_ARCH%
+) ELSE (
+ SET BUILD_ARCH=%HOST_ARCH%_%TARGET_ARCH%
+)
+
+IF NOT EXIST "%MSVC_HOME%" set "MSVC_HOME=%ProgramFiles(x86)%\Microsoft Visual Studio\%MSVC_VERSION%\BuildTools"
+IF NOT EXIST "%MSVC_HOME%" set "MSVC_HOME=%ProgramFiles(x86)%\Microsoft Visual Studio\%MSVC_VERSION%\%MSVC_EDITION%"
+IF NOT EXIST "%MSVC_HOME%" set "MSVC_HOME=%ProgramFiles%\Microsoft Visual Studio\%MSVC_VERSION%\%MSVC_EDITION%"
+IF EXIST "%MSVC_HOME%" (
+ echo "Microsoft Visual Studio %MSVC_VERSION% dir: %MSVC_HOME%"
+) ELSE (
+ echo "WARNING: Microsoft Visual Studio %MSVC_VERSION% was not found."
+ echo " Refer steps for SWT Windows native setup: https://www.eclipse.org/swt/swt_win_native.php"
+)
+IF NOT EXIST "%JAVA_HOME%" set "JAVA_HOME=%ProgramFiles%\AdoptOpenJDK\jdk-8.0.292.10-hotspot"
+IF EXIST "%JAVA_HOME%" (
+ echo "JAVA_HOME 64-bit: %JAVA_HOME%"
+) ELSE (
+ echo "WARNING: 64-bit Java JDK not found. Please set JAVA_HOME to your JDK directory."
+ echo " Refer steps for SWT Windows native setup: https://www.eclipse.org/swt/swt_win_native.php"
+)
+set javaHome=%JAVA_HOME%
+set makefile=make_win64.mak
+call "%MSVC_HOME%\VC\Auxiliary\Build\vcvarsall.bat" %BUILD_ARCH%
+GOTO MAKE
+
+:MAKE
+rem --------------------------
+rem Define default values for environment variables used in the makefiles.
+rem --------------------------
+set programOutput=eclipse.exe
+set programLibrary=eclipse.dll
+set defaultOS=win32
+set defaultWS=win32
+set OS=Windows
+
+rem --------------------------
+rem Parse the command line arguments and override the default values.
+rem --------------------------
+set extraArgs=
+:WHILE
+if "%1" == "" goto WHILE_END
+ if "%2" == "" goto LAST_ARG
+
+ if "%1" == "-os" (
+ set defaultOS=%2
+ shift
+ goto NEXT )
+ if "%1" == "-arch" (
+ set defaultOSArch=%2
+ shift
+ goto NEXT )
+ if "%1" == "-ws" (
+ set defaultWS=%2
+ shift
+ goto NEXT )
+ if "%1" == "-output" (
+ set programOutput=%2
+ shift
+ goto NEXT )
+ if "%1" == "-library" (
+ set programLibrary=%2
+ shift
+ goto NEXT )
+ if "%1" == "-java" (
+ set javaHome=%2
+ echo %javaHome%
+ shift
+ goto NEXT )
+:LAST_ARG
+ set extraArgs=%extraArgs% %1
+
+:NEXT
+ shift
+ goto WHILE
+:WHILE_END
+
+rem --------------------------
+rem Set up environment variables needed by the makefile.
+rem --------------------------
+set PROGRAM_OUTPUT=%programOutput%
+set PROGRAM_LIBRARY=%programLibrary%
+set DEFAULT_OS=%defaultOS%
+set DEFAULT_OS_ARCH=%defaultOSArch%
+set DEFAULT_WS=%defaultWS%
+set EXEC_DIR=..\..\.\..\..\rt.equinox.binaries\org.eclipse.equinox.executable
+set OUTPUT_DIR=%EXEC_DIR%\bin\%defaultWS%\%defaultOS%\%defaultOSArch%
+set JAVA_HOME=%javaHome%
+
+rem --------------------------
+rem Run nmake to build the executable.
+rem --------------------------
+if "%extraArgs%" == "" goto MAKE_ALL
+
+nmake -f %makefile% %extraArgs%
+goto DONE
+
+:MAKE_ALL
+echo Building %OS% launcher. Defaults: -os %DEFAULT_OS% -arch %DEFAULT_OS_ARCH% -ws %DEFAULT_WS%
+nmake -f %makefile% clean
+nmake -f %makefile% %1 %2 %3 %4
+goto DONE
+
+
+:DONE
diff --git a/features/org.eclipse.equinox.executable.feature/pom.xml b/features/org.eclipse.equinox.executable.feature/pom.xml
index da8efd2c0a0..618420ad10a 100644
--- a/features/org.eclipse.equinox.executable.feature/pom.xml
+++ b/features/org.eclipse.equinox.executable.feature/pom.xml
@@ -125,6 +125,7 @@
+
diff --git a/features/org.eclipse.equinox.executable.feature/resources/build.properties b/features/org.eclipse.equinox.executable.feature/resources/build.properties
index 731763910b9..b938365beef 100644
--- a/features/org.eclipse.equinox.executable.feature/resources/build.properties
+++ b/features/org.eclipse.equinox.executable.feature/resources/build.properties
@@ -17,6 +17,9 @@ custom = true
####Even though marked as custom, the content of the build.properties needs to be updated to ensure correctness of RCP app exported
root.permissions.755=${launcherName}
+root.win32.win32.aarch64=file:bin/win32/win32/aarch64/launcher.exe
+root.win32.win32.aarch64.permissions.755=launcher.exe
+
root.win32.win32.x86_64=file:bin/win32/win32/x86_64/launcher.exe
root.win32.win32.x86_64.permissions.755=launcher.exe
diff --git a/features/org.eclipse.equinox.executable.feature/resources/build.xml b/features/org.eclipse.equinox.executable.feature/resources/build.xml
index b55147fb77e..adb8af0364b 100644
--- a/features/org.eclipse.equinox.executable.feature/resources/build.xml
+++ b/features/org.eclipse.equinox.executable.feature/resources/build.xml
@@ -48,6 +48,16 @@
+
+
+
+
+
+
+
+
+
+
diff --git a/pom.xml b/pom.xml
index d943b514468..e644b3cb046 100644
--- a/pom.xml
+++ b/pom.xml
@@ -219,6 +219,7 @@
bundles/org.eclipse.equinox.launcher.gtk.linux.aarch64
bundles/org.eclipse.equinox.launcher.gtk.linux.ppc64le
bundles/org.eclipse.equinox.launcher.gtk.linux.x86_64
+ bundles/org.eclipse.equinox.launcher.win32.win32.aarch64
bundles/org.eclipse.equinox.launcher.win32.win32.x86_64
bundles/org.eclipse.osgi.tests