summaryrefslogtreecommitdiffstats
path: root/PCbuild
diff options
context:
space:
mode:
authorPaul Monson <paulmon@users.noreply.github.com>2019-04-18 01:09:16 (GMT)
committerSteve Dower <steve.dower@microsoft.com>2019-04-18 01:09:16 (GMT)
commit11efd79076559cc6e4034bb36db73e5e4293f02d (patch)
tree13fb73b3d06b903cf857431d2622846131e829c0 /PCbuild
parent264a0b40b030fc0ff919b8294df91bdaac853bfb (diff)
downloadcpython-11efd79076559cc6e4034bb36db73e5e4293f02d.zip
cpython-11efd79076559cc6e4034bb36db73e5e4293f02d.tar.gz
cpython-11efd79076559cc6e4034bb36db73e5e4293f02d.tar.bz2
bpo-36071 Add support for Windows ARM32 in ctypes/libffi (GH-12059)
Diffstat (limited to 'PCbuild')
-rw-r--r--PCbuild/pcbuild.sln2
-rw-r--r--PCbuild/prepare_libffi.bat15
2 files changed, 15 insertions, 2 deletions
diff --git a/PCbuild/pcbuild.sln b/PCbuild/pcbuild.sln
index 1bbfd18..e923936 100644
--- a/PCbuild/pcbuild.sln
+++ b/PCbuild/pcbuild.sln
@@ -238,6 +238,7 @@ Global
{0E9791DB-593A-465F-98BC-681011311617}.Release|x64.ActiveCfg = Release|x64
{0E9791DB-593A-465F-98BC-681011311617}.Release|x64.Build.0 = Release|x64
{0E9791DB-593A-465F-98BC-681011311618}.Debug|ARM.ActiveCfg = Debug|ARM
+ {0E9791DB-593A-465F-98BC-681011311618}.Debug|ARM.Build.0 = Debug|ARM
{0E9791DB-593A-465F-98BC-681011311618}.Debug|Win32.ActiveCfg = Debug|Win32
{0E9791DB-593A-465F-98BC-681011311618}.Debug|Win32.Build.0 = Debug|Win32
{0E9791DB-593A-465F-98BC-681011311618}.Debug|x64.ActiveCfg = Debug|x64
@@ -255,6 +256,7 @@ Global
{0E9791DB-593A-465F-98BC-681011311618}.PGUpdate|x64.ActiveCfg = PGUpdate|x64
{0E9791DB-593A-465F-98BC-681011311618}.PGUpdate|x64.Build.0 = PGUpdate|x64
{0E9791DB-593A-465F-98BC-681011311618}.Release|ARM.ActiveCfg = Release|ARM
+ {0E9791DB-593A-465F-98BC-681011311618}.Release|ARM.Build.0 = Release|ARM
{0E9791DB-593A-465F-98BC-681011311618}.Release|Win32.ActiveCfg = Release|Win32
{0E9791DB-593A-465F-98BC-681011311618}.Release|Win32.Build.0 = Release|Win32
{0E9791DB-593A-465F-98BC-681011311618}.Release|x64.ActiveCfg = Release|x64
diff --git a/PCbuild/prepare_libffi.bat b/PCbuild/prepare_libffi.bat
index 3df8513..307739d 100644
--- a/PCbuild/prepare_libffi.bat
+++ b/PCbuild/prepare_libffi.bat
@@ -24,6 +24,7 @@ echo.
echo.Available flags:
echo. -x64 build for x64
echo. -x86 build for x86
+echo. -arm32 build for arm32
echo. -? this help
echo. --install-cygwin install cygwin to c:\cygwin
exit /b 127
@@ -32,12 +33,14 @@ exit /b 127
set BUILD_X64=
set BUILD_X86=
+set BUILD_ARM32=
set INSTALL_CYGWIN=
:CheckOpts
if "%1"=="" goto :CheckOptsDone
if /I "%1"=="-x64" (set BUILD_X64=1) & shift & goto :CheckOpts
if /I "%1"=="-x86" (set BUILD_X86=1) & shift & goto :CheckOpts
+if /I "%1"=="-arm32" (set BUILD_ARM32=1) & shift & goto :CheckOpts
if /I "%1"=="-?" goto :Usage
if /I "%1"=="--install-cygwin" (set INSTALL_CYGWIN=1) & shift & goto :CheckOpts
goto :Usage
@@ -47,6 +50,7 @@ goto :Usage
if NOT DEFINED BUILD_X64 if NOT DEFINED BUILD_X86 if NOT DEFINED BUILD_ARM32 (
set BUILD_X64=1
set BUILD_X86=1
+ set BUILD_ARM32=1
)
if "%INSTALL_CYGWIN%"=="1" call :InstallCygwin
@@ -83,8 +87,9 @@ echo.
if not exist Makefile.in (%SH% -lc "(cd $LIBFFI_SOURCE; ./autogen.sh;)")
-call :BuildOne x86 i686-pc-cygwin i686-pc-cygwin
-call :BuildOne x64 x86_64-w64-cygwin x86_64-w64-cygwin
+if "%BUILD_X64%"=="1" call :BuildOne x64 x86_64-w64-cygwin x86_64-w64-cygwin
+if "%BUILD_X86%"=="1" call :BuildOne x86 i686-pc-cygwin i686-pc-cygwin
+if "%BUILD_ARM32%"=="1" call :BuildOne x86_arm i686-pc-cygwin arm-w32-cygwin
popd
endlocal
@@ -118,6 +123,12 @@ if /I "%VCVARS_PLATFORM%" EQU "x86" (
set ASSEMBLER=
set SRC_ARCHITECTURE=x86
)
+if /I "%VCVARS_PLATFORM%" EQU "x86_arm" (
+ set ARCH=arm32
+ set ARTIFACTS=%LIBFFI_SOURCE%\arm-w32-cygwin
+ set ASSEMBLER=-marm
+ set SRC_ARCHITECTURE=ARM
+)
if NOT DEFINED LIBFFI_OUT set LIBFFI_OUT=%~dp0\..\externals\libffi
set _LIBFFI_OUT=%LIBFFI_OUT%\%ARCH%