Skip to content

Commit db36fdb

Browse files
bpo-45022: Pin current libffi build to fixed version in preparation for upcoming update (GH-27982)
Also improve the build script for libffi, which is not used as part of the regular build. (cherry picked from commit 969ae7f) Co-authored-by: Steve Dower <[email protected]>
1 parent baa8d48 commit db36fdb

File tree

3 files changed

+17
-9
lines changed

3 files changed

+17
-9
lines changed

PCbuild/get_externals.bat

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,7 @@ echo.Fetching external libraries...
5252

5353
set libraries=
5454
set libraries=%libraries% bzip2-1.0.6
55-
if NOT "%IncludeLibffiSrc%"=="false" set libraries=%libraries% libffi
55+
if NOT "%IncludeLibffiSrc%"=="false" set libraries=%libraries% libffi-3.3.0
5656
if NOT "%IncludeSSLSrc%"=="false" set libraries=%libraries% openssl-1.1.1k
5757
set libraries=%libraries% sqlite-3.35.5.0
5858
if NOT "%IncludeTkinterSrc%"=="false" set libraries=%libraries% tcl-core-8.6.11.0
@@ -76,7 +76,7 @@ for %%e in (%libraries%) do (
7676
echo.Fetching external binaries...
7777

7878
set binaries=
79-
if NOT "%IncludeLibffi%"=="false" set binaries=%binaries% libffi
79+
if NOT "%IncludeLibffi%"=="false" set binaries=%binaries% libffi-3.3.0
8080
if NOT "%IncludeSSL%"=="false" set binaries=%binaries% openssl-bin-1.1.1k-1
8181
if NOT "%IncludeTkinter%"=="false" set binaries=%binaries% tcltk-8.6.11.0
8282
if NOT "%IncludeSSLSrc%"=="false" set binaries=%binaries% nasm-2.11.06

PCbuild/prepare_libffi.bat

Lines changed: 13 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,7 @@ set BUILD_ARM32=
3838
set BUILD_ARM64=
3939
set BUILD_PDB=
4040
set BUILD_NOOPT=
41+
set COPY_LICENSE=
4142
set INSTALL_CYGWIN=
4243

4344
:CheckOpts
@@ -49,6 +50,7 @@ if /I "%1"=="-arm32" (set BUILD_ARM32=1) & shift & goto :CheckOpts
4950
if /I "%1"=="-arm64" (set BUILD_ARM64=1) & shift & goto :CheckOpts
5051
if /I "%1"=="-pdb" (set BUILD_PDB=-g) & shift & goto :CheckOpts
5152
if /I "%1"=="-noopt" (set BUILD_NOOPT=CFLAGS='-Od -warn all') & shift & goto :CheckOpts
53+
if /I "%1"=="-license" (set COPY_LICENSE=1) & shift & goto :CheckOpts
5254
if /I "%1"=="-?" goto :Usage
5355
if /I "%1"=="--install-cygwin" (set INSTALL_CYGWIN=1) & shift & goto :CheckOpts
5456
goto :Usage
@@ -60,6 +62,7 @@ if NOT DEFINED BUILD_X64 if NOT DEFINED BUILD_X86 if NOT DEFINED BUILD_ARM32 if
6062
set BUILD_X86=1
6163
set BUILD_ARM32=1
6264
set BUILD_ARM64=1
65+
set COPY_LICENSE=1
6366
)
6467

6568
if "%INSTALL_CYGWIN%"=="1" call :InstallCygwin
@@ -98,9 +101,14 @@ if not exist Makefile.in (
98101
)
99102

100103
if "%BUILD_X64%"=="1" call :BuildOne x64 x86_64-w64-cygwin x86_64-w64-cygwin
104+
if errorlevel 1 exit /B %ERRORLEVEL%
101105
if "%BUILD_X86%"=="1" call :BuildOne x86 i686-pc-cygwin i686-pc-cygwin
106+
if errorlevel 1 exit /B %ERRORLEVEL%
102107
if "%BUILD_ARM32%"=="1" call :BuildOne x86_arm i686-pc-cygwin arm-w32-cygwin
108+
if errorlevel 1 exit /B %ERRORLEVEL%
103109
if "%BUILD_ARM64%"=="1" call :BuildOne x86_arm64 i686-pc-cygwin aarch64-w64-cygwin
110+
if errorlevel 1 exit /B %ERRORLEVEL%
111+
if "%COPY_LICENSE%"=="1" copy /y "%LIBFFI_SOURCE%\LICENSE" "%LIBFFI_OUT%\LICENSE"
104112

105113
popd
106114
endlocal
@@ -179,11 +187,11 @@ if "%LIBFFI_TEST%" EQU "1" (
179187

180188
echo copying files to %_LIBFFI_OUT%
181189
if not exist %_LIBFFI_OUT%\include (md %_LIBFFI_OUT%\include)
182-
copy %ARTIFACTS%\.libs\libffi-7.dll %_LIBFFI_OUT%
183-
copy %ARTIFACTS%\.libs\libffi-7.lib %_LIBFFI_OUT%
184-
copy %ARTIFACTS%\.libs\libffi-7.pdb %_LIBFFI_OUT%
185-
copy %ARTIFACTS%\fficonfig.h %_LIBFFI_OUT%\include
186-
copy %ARTIFACTS%\include\*.h %_LIBFFI_OUT%\include
190+
copy %ARTIFACTS%\.libs\libffi-*.dll %_LIBFFI_OUT% || exit /B 1
191+
copy %ARTIFACTS%\.libs\libffi-*.lib %_LIBFFI_OUT% || exit /B 1
192+
copy %ARTIFACTS%\.libs\libffi-*.pdb %_LIBFFI_OUT%
193+
copy %ARTIFACTS%\fficonfig.h %_LIBFFI_OUT%\include || exit /B 1
194+
copy %ARTIFACTS%\include\*.h %_LIBFFI_OUT%\include || exit /B 1
187195

188196
endlocal
189197
exit /b

PCbuild/python.props

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -60,8 +60,8 @@
6060
<sqlite3Dir>$(ExternalsDir)sqlite-3.35.5.0\</sqlite3Dir>
6161
<bz2Dir>$(ExternalsDir)bzip2-1.0.6\</bz2Dir>
6262
<lzmaDir>$(ExternalsDir)xz-5.2.2\</lzmaDir>
63-
<libffiDir>$(ExternalsDir)libffi\</libffiDir>
64-
<libffiOutDir>$(ExternalsDir)libffi\$(ArchName)\</libffiOutDir>
63+
<libffiDir>$(ExternalsDir)libffi-3.3.0\</libffiDir>
64+
<libffiOutDir>$(ExternalsDir)libffi-3.3.0\$(ArchName)\</libffiOutDir>
6565
<libffiIncludeDir>$(libffiOutDir)include</libffiIncludeDir>
6666
<opensslDir>$(ExternalsDir)openssl-1.1.1k\</opensslDir>
6767
<opensslOutDir>$(ExternalsDir)openssl-bin-1.1.1k-1\$(ArchName)\</opensslOutDir>

0 commit comments

Comments
 (0)