cpython: Issue #17717: Pull NASM from svn.python.org for OpenSSL build.
https://hg.python.org/cpython/rev/ef15b51d59fb changeset: 93341:ef15b51d59fb user: Zachary Ware <zachary.ware@gmail.com> date: Sat Nov 01 18:42:46 2014 -0500 summary: Issue #17717: Pull NASM from svn.python.org for OpenSSL build. files: Misc/NEWS | 3 +++ PCbuild/get_externals.bat | 8 +++++--- PCbuild/pyproject.props | 4 ++++ PCbuild/readme.txt | 8 ++++---- PCbuild/ssl.vcxproj | 8 ++++++++ 5 files changed, 24 insertions(+), 7 deletions(-) diff --git a/Misc/NEWS b/Misc/NEWS --- a/Misc/NEWS +++ b/Misc/NEWS @@ -1383,6 +1383,9 @@ Windows ------- +- Issue #17717: The Windows build scripts now use a copy of NASM pulled from + svn.python.org to build OpenSSL. + - Issue #21907: Improved the batch scripts provided for building Python. - Issue #22644: The bundled version of OpenSSL has been updated to 1.0.1j. diff --git a/PCbuild/get_externals.bat b/PCbuild/get_externals.bat --- a/PCbuild/get_externals.bat +++ b/PCbuild/get_externals.bat @@ -20,6 +20,7 @@ for /D %%d in ( bzip2-* db-* + nasm-* openssl-* tcl-* tcltk* @@ -51,6 +52,7 @@ for %%e in ( bzip2-1.0.6 + nasm-2.11.06 openssl-1.0.1j tcl-8.6.1.0 tk-8.6.1.0 @@ -87,9 +89,9 @@ echo.**WARNING**: the cleaning options unconditionally remove any directory echo.that is a child of echo. %CD% -echo.and matches wildcard patterns beginning with bzip2-, db-, openssl-, tcl-, -echo.tcltk, tk-, tix-, sqlite-, or xz-, and as such has the potential to be -echo.very destructive if you are not aware of what it is doing. Use with +echo.and matches wildcard patterns beginning with bzip2-, db-, nasm-, openssl-, +echo.tcl-, tcltk, tk-, tix-, sqlite-, or xz-, and as such has the potential +echo.to be very destructive if you are not aware of what it is doing. Use with echo.caution! popd exit /b -1 diff --git a/PCbuild/pyproject.props b/PCbuild/pyproject.props --- a/PCbuild/pyproject.props +++ b/PCbuild/pyproject.props @@ -20,6 +20,7 @@ <sqlite3Dir>$(externalsDir)\sqlite-3.8.3.1</sqlite3Dir> <bz2Dir>$(externalsDir)\bzip2-1.0.6</bz2Dir> <lzmaDir>$(externalsDir)\xz-5.0.5</lzmaDir> + <nasmDir>$(externalsDir)\nasm-2.11.06</nasmDir> <opensslDir>$(externalsDir)\openssl-1.0.1j</opensslDir> <tclDir>$(externalsDir)\tcl-8.6.1.0</tclDir> <tkDir>$(externalsDir)\tk-8.6.1.0</tkDir> @@ -77,6 +78,9 @@ <BuildMacro Include="lzmaDir"> <Value>$(lzmaDir)</Value> </BuildMacro> + <BuildMacro Include="nasmDir"> + <Value>$(nasmDir)</Value> + </BuildMacro> <BuildMacro Include="opensslDir"> <Value>$(opensslDir)</Value> </BuildMacro> diff --git a/PCbuild/readme.txt b/PCbuild/readme.txt --- a/PCbuild/readme.txt +++ b/PCbuild/readme.txt @@ -3,9 +3,8 @@ 1. Install Microsoft Visual C++ 2010 SP1, any edition. 2. Install Subversion, and make sure 'svn.exe' is on your PATH. -3. Install NASM, and make sure 'nasm.exe' is on your PATH. -4. Run "build.bat -e" to build Python in 32-bit Release configuration. -5. (Optional, but recommended) Run the test suite with "rt.bat -q". +3. Run "build.bat -e" to build Python in 32-bit Release configuration. +4. (Optional, but recommended) Run the test suite with "rt.bat -q". Building Python using Microsoft Visual C++ @@ -225,7 +224,8 @@ to be somewhere on your PATH. More recent versions of OpenSSL may need a later version of NASM. If OpenSSL's self tests don't pass, you should first try to update NASM and do a full rebuild of - OpenSSL. + OpenSSL. get_externals.py also downloads a snapshot of NASM, and the + ssl sub-project includes that version of nasm.exe on PATH. The ssl sub-project expects your OpenSSL sources to have already been configured and be ready to build. If you get your sources diff --git a/PCbuild/ssl.vcxproj b/PCbuild/ssl.vcxproj --- a/PCbuild/ssl.vcxproj +++ b/PCbuild/ssl.vcxproj @@ -119,6 +119,7 @@ <PropertyGroup> <_ProjectFileVersion>10.0.30319.1</_ProjectFileVersion> <NMakeBuildCommandLine Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> +path %PATH%;$(SolutionDir)$(nasmDir) cd "$(SolutionDir)$(opensslDir)" copy /Y crypto\buildinf_x86.h crypto\buildinf.h copy /Y crypto\opensslconf_x86.h crypto\opensslconf.h @@ -133,6 +134,7 @@ <NMakeAssemblySearchPath Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(NMakeAssemblySearchPath)</NMakeAssemblySearchPath> <NMakeForcedUsingAssemblies Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(NMakeForcedUsingAssemblies)</NMakeForcedUsingAssemblies> <NMakeBuildCommandLine Condition="'$(Configuration)|$(Platform)'=='Debug|x64'"> +path %PATH%;$(SolutionDir)$(nasmDir) cd "$(SolutionDir)$(opensslDir)" nasm -f win64 -DNEAR -Ox -g ms\\uptable.asm || echo nasm failed! && exit copy /Y crypto\buildinf_amd64.h crypto\buildinf.h @@ -148,6 +150,7 @@ <NMakeAssemblySearchPath Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(NMakeAssemblySearchPath)</NMakeAssemblySearchPath> <NMakeForcedUsingAssemblies Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(NMakeForcedUsingAssemblies)</NMakeForcedUsingAssemblies> <NMakeBuildCommandLine Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> +path %PATH%;$(SolutionDir)$(nasmDir) cd "$(SolutionDir)$(opensslDir)" copy /Y crypto\buildinf_x86.h crypto\buildinf.h copy /Y crypto\opensslconf_x86.h crypto\opensslconf.h @@ -162,6 +165,7 @@ <NMakeAssemblySearchPath Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(NMakeAssemblySearchPath)</NMakeAssemblySearchPath> <NMakeForcedUsingAssemblies Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(NMakeForcedUsingAssemblies)</NMakeForcedUsingAssemblies> <NMakeBuildCommandLine Condition="'$(Configuration)|$(Platform)'=='Release|x64'"> +path %PATH%;$(SolutionDir)$(nasmDir) cd "$(SolutionDir)$(opensslDir)" nasm -f win64 -DNEAR -Ox -g ms\\uptable.asm || echo nasm failed! && exit copy /Y crypto\buildinf_amd64.h crypto\buildinf.h @@ -177,6 +181,7 @@ <NMakeAssemblySearchPath Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(NMakeAssemblySearchPath)</NMakeAssemblySearchPath> <NMakeForcedUsingAssemblies Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(NMakeForcedUsingAssemblies)</NMakeForcedUsingAssemblies> <NMakeBuildCommandLine Condition="'$(Configuration)|$(Platform)'=='PGInstrument|Win32'"> +path %PATH%;$(SolutionDir)$(nasmDir) cd "$(SolutionDir)$(opensslDir)" copy /Y crypto\buildinf_x86.h crypto\buildinf.h copy /Y crypto\opensslconf_x86.h crypto\opensslconf.h @@ -191,6 +196,7 @@ <NMakeAssemblySearchPath Condition="'$(Configuration)|$(Platform)'=='PGInstrument|Win32'">$(NMakeAssemblySearchPath)</NMakeAssemblySearchPath> <NMakeForcedUsingAssemblies Condition="'$(Configuration)|$(Platform)'=='PGInstrument|Win32'">$(NMakeForcedUsingAssemblies)</NMakeForcedUsingAssemblies> <NMakeBuildCommandLine Condition="'$(Configuration)|$(Platform)'=='PGInstrument|x64'"> +path %PATH%;$(SolutionDir)$(nasmDir) cd "$(SolutionDir)$(opensslDir)" nasm -f win64 -DNEAR -Ox -g ms\\uptable.asm || echo nasm failed! && exit copy /Y crypto\buildinf_amd64.h crypto\buildinf.h @@ -206,6 +212,7 @@ <NMakeAssemblySearchPath Condition="'$(Configuration)|$(Platform)'=='PGInstrument|x64'">$(NMakeAssemblySearchPath)</NMakeAssemblySearchPath> <NMakeForcedUsingAssemblies Condition="'$(Configuration)|$(Platform)'=='PGInstrument|x64'">$(NMakeForcedUsingAssemblies)</NMakeForcedUsingAssemblies> <NMakeBuildCommandLine Condition="'$(Configuration)|$(Platform)'=='PGUpdate|Win32'"> +path %PATH%;$(SolutionDir)$(nasmDir) cd "$(SolutionDir)$(opensslDir)" copy /Y crypto\buildinf_x86.h crypto\buildinf.h copy /Y crypto\opensslconf_x86.h crypto\opensslconf.h @@ -220,6 +227,7 @@ <NMakeAssemblySearchPath Condition="'$(Configuration)|$(Platform)'=='PGUpdate|Win32'">$(NMakeAssemblySearchPath)</NMakeAssemblySearchPath> <NMakeForcedUsingAssemblies Condition="'$(Configuration)|$(Platform)'=='PGUpdate|Win32'">$(NMakeForcedUsingAssemblies)</NMakeForcedUsingAssemblies> <NMakeBuildCommandLine Condition="'$(Configuration)|$(Platform)'=='PGUpdate|x64'"> +path %PATH%;$(SolutionDir)$(nasmDir) cd "$(SolutionDir)$(opensslDir)" nasm -f win64 -DNEAR -Ox -g ms\\uptable.asm || echo nasm failed! && exit copy /Y crypto\buildinf_amd64.h crypto\buildinf.h -- Repository URL: https://hg.python.org/cpython
participants (1)
-
zach.ware