pyqtdeploy: Unable to compile openssl in Windows when attempting to build sysroot

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
3 messages Options
Reply | Threaded
Open this post in threaded view
|

pyqtdeploy: Unable to compile openssl in Windows when attempting to build sysroot

Neil Jansen
Apologies if this has been posted before.  I'm usually very self-sufficient with these sort of things, but I'm positively stuck at this point, and Google hasn't turned up much.

I'm trying to get the demo pyqtdeploy project working, but I'm stuck on the step where it's trying to compile openssl as a part of building sysroot.  The instructions / tutorials are VERY vague and leave a lot of interpretation up to the reader.  I'm not even 100% sure I'm using the right versions as there is no documentation on which dependency version(s) have been confirmed to work together.  I've posted a few snippets of the build window below.  I've struggled to get even this far, but now that it's to the point of failing with syntax errors in assembly language, I'm bailing out and need help at this point.   

Can anyone tell me if this is an easy fix?

Build machine:
------------------
OS: Windows 7 Enterprise 64-bit
Architecture: Intel Core i7-4790
Memory: 16 GB

Build tools:
----------------
Python version: Python 3.5.1
Perl version: ActivePerl 5.6.1 Build 631
Compiler suite: VS2015 x64, via 'VisualCppBuildTools_Full.exe' as obtained from http://landinghub.visualstudio.com/visual-cpp-build-tools
pyqtdeploy version: 2.1 from pypi, per the instructions on this page: https://www.riverbankcomputing.com/software/pyqtdeploy/download

Dependencies:
---------------------
pyqt5 source version: PyQt5_gpl-5.10.tar.gz
openssl source version: openssl-1.0.2n.tar.gz, which I downloaded from the official site.


--------------------------
        cl /Fotmp32\fips_ers.obj  -Iinc32 -Itmp32 /MT /Ox -DOPENSSL_THREADS  -DDSO_W
IN32 -W3 -Gs0 -Gy -nologo -DOPENSSL_SYSNAME_WIN32 -DWIN32_LEAN_AND_MEAN -DL_ENDIAN -
DUNICODE -D_UNICODE -D_CRT_SECURE_NO_DEPRECATE -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_
MONT -DOPENSSL_BN_ASM_MONT5 -DOPENSSL_BN_ASM_GF2m -DRC4_ASM -DSHA1_ASM -DSHA256_ASM
-DSHA512_ASM -DMD5_ASM -DAES_ASM -DVPAES_ASM -DBSAES_ASM -DWHIRLPOOL_ASM -DGHASH_ASM
 -DECP_NISTZ256_ASM -DOPENSSL_NO_IDEA -DOPENSSL_NO_RC5 -DOPENSSL_NO_MD2 -DOPENSSL_NO
_MDC2 -DOPENSSL_NO_SSL2 -DOPENSSL_NO_SSL3 -DOPENSSL_NO_KRB5 -DOPENSSL_NO_JPAKE -DOPE
NSSL_NO_WEAK_SSL_CIPHERS -DOPENSSL_NO_DYNAMIC_ENGINE /Zl /Zi /Fdtmp32/lib -c .\crypt
o\fips_ers.c
fips_ers.c
        set ASM=ml64 /c /Cp /Cx /Zi
        perl crypto\x86_64cpuid.pl tmp32\x86_64cpuid.asm
        ml64 /c /Cp /Cx /Zi /Fotmp32\x86_64cpuid.obj tmp32\x86_64cpuid.asm
Microsoft (R) Macro Assembler (x64) Version 14.00.24210.0
Copyright (C) Microsoft Corporation.  All rights reserved.

 Assembling: tmp32\x86_64cpuid.asm
tmp32\x86_64cpuid.asm(43) : error A2009:syntax error in expression
tmp32\x86_64cpuid.asm(44) : error A2009:syntax error in expression
tmp32\x86_64cpuid.asm(190) : error A2009:syntax error in expression
tmp32\x86_64cpuid.asm(191) : error A2009:syntax error in expression
NMAKE : fatal error U1077: '"C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\
BIN\amd64\ml64.EXE"' : return code '0x1'
Stop.
Traceback (most recent call last):
  File "c:\python35\lib\runpy.py", line 170, in _run_module_as_main
    "__main__", mod_spec)
  File "c:\python35\lib\runpy.py", line 85, in _run_code
    exec(code, run_globals)
  File "C:\Python35\Scripts\pyqtdeploy-sysroot.exe\__main__.py", line 9, in <module>

  File "c:\python35\lib\site-packages\pyqtdeploy\pyqtdeploysysroot_main.py", line 83
, in main
    sysroot.build_components(args.component, args.no_clean)
  File "c:\python35\lib\site-packages\pyqtdeploy\sysroot\sysroot.py", line 103, in b
uild_components
    component.build(self)
  File "c:\python35\lib\site-packages\pyqtdeploy\sysroot\plugins\openssl.py", line 9
6, in build
    self._build_win(sysroot, common_options)
  File "c:\python35\lib\site-packages\pyqtdeploy\sysroot\plugins\openssl.py", line 2
27, in _build_win
    sysroot.run(sysroot.host_make, '-f', 'ms\\nt.mak')
  File "c:\python35\lib\site-packages\pyqtdeploy\sysroot\sysroot.py", line 562, in r
un
    subprocess.check_call(args)
  File "c:\python35\lib\subprocess.py", line 584, in check_call
    raise CalledProcessError(retcode, cmd)
subprocess.CalledProcessError: Command '('nmake', '-f', 'ms\\nt.mak')' returned non-
zero exit status 2


Any help would be greatly appreciated.

_______________________________________________
PyQt mailing list    [hidden email]
https://www.riverbankcomputing.com/mailman/listinfo/pyqt
Reply | Threaded
Open this post in threaded view
|

Re: pyqtdeploy: Unable to compile openssl in Windows when attempting to build sysroot

Neil Jansen
'nvm fixed it', lol.

Seems to work OK if I manually edit the openssl.py in Python35\Lib\site-packages\pyqtdeploy\sysroot\plugins\openssl.py to include 'no-asm' in the common_options.  

Which leads me to another question that should hopefully be a little easier to answer.  Exactly what does the openssl dependency actually get used in?  How much slower would my final application be if I'm purposely skipping the assembly optimizations?  An answer on stackoverflow seems to indicate 2-4x slower performance when crunching openssl algorithms, but exactly how much of Qt5, PyQt5, python stdlib modules, and/or common third-party modules (requests et.al.) actually utilizes openssl?  Sorry if this is a dumb question but seems important, as it's the difference between this being a valid workaround, and it being a hack that will be detrimental in the long run.






On Wed, Feb 7, 2018 at 10:56 AM, Neil Jansen <[hidden email]> wrote:
Apologies if this has been posted before.  I'm usually very self-sufficient with these sort of things, but I'm positively stuck at this point, and Google hasn't turned up much.

I'm trying to get the demo pyqtdeploy project working, but I'm stuck on the step where it's trying to compile openssl as a part of building sysroot.  The instructions / tutorials are VERY vague and leave a lot of interpretation up to the reader.  I'm not even 100% sure I'm using the right versions as there is no documentation on which dependency version(s) have been confirmed to work together.  I've posted a few snippets of the build window below.  I've struggled to get even this far, but now that it's to the point of failing with syntax errors in assembly language, I'm bailing out and need help at this point.   

Can anyone tell me if this is an easy fix?

Build machine:
------------------
OS: Windows 7 Enterprise 64-bit
Architecture: Intel Core i7-4790
Memory: 16 GB

Build tools:
----------------
Python version: Python 3.5.1
Perl version: ActivePerl 5.6.1 Build 631
Compiler suite: VS2015 x64, via 'VisualCppBuildTools_Full.exe' as obtained from http://landinghub.visualstudio.com/visual-cpp-build-tools
pyqtdeploy version: 2.1 from pypi, per the instructions on this page: https://www.riverbankcomputing.com/software/pyqtdeploy/download

Dependencies:
---------------------
pyqt5 source version: PyQt5_gpl-5.10.tar.gz
openssl source version: openssl-1.0.2n.tar.gz, which I downloaded from the official site.


--------------------------
        cl /Fotmp32\fips_ers.obj  -Iinc32 -Itmp32 /MT /Ox -DOPENSSL_THREADS  -DDSO_W
IN32 -W3 -Gs0 -Gy -nologo -DOPENSSL_SYSNAME_WIN32 -DWIN32_LEAN_AND_MEAN -DL_ENDIAN -
DUNICODE -D_UNICODE -D_CRT_SECURE_NO_DEPRECATE -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_
MONT -DOPENSSL_BN_ASM_MONT5 -DOPENSSL_BN_ASM_GF2m -DRC4_ASM -DSHA1_ASM -DSHA256_ASM
-DSHA512_ASM -DMD5_ASM -DAES_ASM -DVPAES_ASM -DBSAES_ASM -DWHIRLPOOL_ASM -DGHASH_ASM
 -DECP_NISTZ256_ASM -DOPENSSL_NO_IDEA -DOPENSSL_NO_RC5 -DOPENSSL_NO_MD2 -DOPENSSL_NO
_MDC2 -DOPENSSL_NO_SSL2 -DOPENSSL_NO_SSL3 -DOPENSSL_NO_KRB5 -DOPENSSL_NO_JPAKE -DOPE
NSSL_NO_WEAK_SSL_CIPHERS -DOPENSSL_NO_DYNAMIC_ENGINE /Zl /Zi /Fdtmp32/lib -c .\crypt
o\fips_ers.c
fips_ers.c
        set ASM=ml64 /c /Cp /Cx /Zi
        perl crypto\x86_64cpuid.pl tmp32\x86_64cpuid.asm
        ml64 /c /Cp /Cx /Zi /Fotmp32\x86_64cpuid.obj tmp32\x86_64cpuid.asm
Microsoft (R) Macro Assembler (x64) Version 14.00.24210.0
Copyright (C) Microsoft Corporation.  All rights reserved.

 Assembling: tmp32\x86_64cpuid.asm
tmp32\x86_64cpuid.asm(43) : error A2009:syntax error in expression
tmp32\x86_64cpuid.asm(44) : error A2009:syntax error in expression
tmp32\x86_64cpuid.asm(190) : error A2009:syntax error in expression
tmp32\x86_64cpuid.asm(191) : error A2009:syntax error in expression
NMAKE : fatal error U1077: '"C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\
BIN\amd64\ml64.EXE"' : return code '0x1'
Stop.
Traceback (most recent call last):
  File "c:\python35\lib\runpy.py", line 170, in _run_module_as_main
    "__main__", mod_spec)
  File "c:\python35\lib\runpy.py", line 85, in _run_code
    exec(code, run_globals)
  File "C:\Python35\Scripts\pyqtdeploy-sysroot.exe\__main__.py", line 9, in <module>

  File "c:\python35\lib\site-packages\pyqtdeploy\pyqtdeploysysroot_main.py", line 83
, in main
    sysroot.build_components(args.component, args.no_clean)
  File "c:\python35\lib\site-packages\pyqtdeploy\sysroot\sysroot.py", line 103, in b
uild_components
    component.build(self)
  File "c:\python35\lib\site-packages\pyqtdeploy\sysroot\plugins\openssl.py", line 9
6, in build
    self._build_win(sysroot, common_options)
  File "c:\python35\lib\site-packages\pyqtdeploy\sysroot\plugins\openssl.py", line 2
27, in _build_win
    sysroot.run(sysroot.host_make, '-f', 'ms\\nt.mak')
  File "c:\python35\lib\site-packages\pyqtdeploy\sysroot\sysroot.py", line 562, in r
un
    subprocess.check_call(args)
  File "c:\python35\lib\subprocess.py", line 584, in check_call
    raise CalledProcessError(retcode, cmd)
subprocess.CalledProcessError: Command '('nmake', '-f', 'ms\\nt.mak')' returned non-
zero exit status 2


Any help would be greatly appreciated.


_______________________________________________
PyQt mailing list    [hidden email]
https://www.riverbankcomputing.com/mailman/listinfo/pyqt
Reply | Threaded
Open this post in threaded view
|

Re: pyqtdeploy: Unable to compile openssl in Windows when attempting to build sysroot

Phil Thompson-5
In reply to this post by Neil Jansen
On 7 Feb 2018, at 3:56 pm, Neil Jansen <[hidden email]> wrote:

>
> Apologies if this has been posted before.  I'm usually very self-sufficient with these sort of things, but I'm positively stuck at this point, and Google hasn't turned up much.
>
> I'm trying to get the demo pyqtdeploy project working, but I'm stuck on the step where it's trying to compile openssl as a part of building sysroot.  The instructions / tutorials are VERY vague and leave a lot of interpretation up to the reader.  I'm not even 100% sure I'm using the right versions as there is no documentation on which dependency version(s) have been confirmed to work together.  I've posted a few snippets of the build window below.  I've struggled to get even this far, but now that it's to the point of failing with syntax errors in assembly language, I'm bailing out and need help at this point.  
>
> Can anyone tell me if this is an easy fix?
>
> Build machine:
> ------------------
> OS: Windows 7 Enterprise 64-bit
> Architecture: Intel Core i7-4790
> Memory: 16 GB
>
> Build tools:
> ----------------
> Python version: Python 3.5.1
> Perl version: ActivePerl 5.6.1 Build 631
> Compiler suite: VS2015 x64, via 'VisualCppBuildTools_Full.exe' as obtained from http://landinghub.visualstudio.com/visual-cpp-build-tools
> pyqtdeploy version: 2.1 from pypi, per the instructions on this page: https://www.riverbankcomputing.com/software/pyqtdeploy/download
>
> Dependencies:
> ---------------------
> pyqt5 source version: PyQt5_gpl-5.10.tar.gz
> openssl source version: openssl-1.0.2n.tar.gz, which I downloaded from the official site.
>
>
> --------------------------
>         cl /Fotmp32\fips_ers.obj  -Iinc32 -Itmp32 /MT /Ox -DOPENSSL_THREADS  -DDSO_W
> IN32 -W3 -Gs0 -Gy -nologo -DOPENSSL_SYSNAME_WIN32 -DWIN32_LEAN_AND_MEAN -DL_ENDIAN -
> DUNICODE -D_UNICODE -D_CRT_SECURE_NO_DEPRECATE -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_
> MONT -DOPENSSL_BN_ASM_MONT5 -DOPENSSL_BN_ASM_GF2m -DRC4_ASM -DSHA1_ASM -DSHA256_ASM
> -DSHA512_ASM -DMD5_ASM -DAES_ASM -DVPAES_ASM -DBSAES_ASM -DWHIRLPOOL_ASM -DGHASH_ASM
>  -DECP_NISTZ256_ASM -DOPENSSL_NO_IDEA -DOPENSSL_NO_RC5 -DOPENSSL_NO_MD2 -DOPENSSL_NO
> _MDC2 -DOPENSSL_NO_SSL2 -DOPENSSL_NO_SSL3 -DOPENSSL_NO_KRB5 -DOPENSSL_NO_JPAKE -DOPE
> NSSL_NO_WEAK_SSL_CIPHERS -DOPENSSL_NO_DYNAMIC_ENGINE /Zl /Zi /Fdtmp32/lib -c .\crypt
> o\fips_ers.c
> fips_ers.c
>         set ASM=ml64 /c /Cp /Cx /Zi
>         perl crypto\x86_64cpuid.pl tmp32\x86_64cpuid.asm
>         ml64 /c /Cp /Cx /Zi /Fotmp32\x86_64cpuid.obj tmp32\x86_64cpuid.asm
> Microsoft (R) Macro Assembler (x64) Version 14.00.24210.0
> Copyright (C) Microsoft Corporation.  All rights reserved.
>
>  Assembling: tmp32\x86_64cpuid.asm
> tmp32\x86_64cpuid.asm(43) : error A2009:syntax error in expression
> tmp32\x86_64cpuid.asm(44) : error A2009:syntax error in expression
> tmp32\x86_64cpuid.asm(190) : error A2009:syntax error in expression
> tmp32\x86_64cpuid.asm(191) : error A2009:syntax error in expression
> NMAKE : fatal error U1077: '"C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\
> BIN\amd64\ml64.EXE"' : return code '0x1'
> Stop.
> Traceback (most recent call last):
>   File "c:\python35\lib\runpy.py", line 170, in _run_module_as_main
>     "__main__", mod_spec)
>   File "c:\python35\lib\runpy.py", line 85, in _run_code
>     exec(code, run_globals)
>   File "C:\Python35\Scripts\pyqtdeploy-sysroot.exe\__main__.py", line 9, in <module>
>
>   File "c:\python35\lib\site-packages\pyqtdeploy\pyqtdeploysysroot_main.py", line 83
> , in main
>     sysroot.build_components(args.component, args.no_clean)
>   File "c:\python35\lib\site-packages\pyqtdeploy\sysroot\sysroot.py", line 103, in b
> uild_components
>     component.build(self)
>   File "c:\python35\lib\site-packages\pyqtdeploy\sysroot\plugins\openssl.py", line 9
> 6, in build
>     self._build_win(sysroot, common_options)
>   File "c:\python35\lib\site-packages\pyqtdeploy\sysroot\plugins\openssl.py", line 2
> 27, in _build_win
>     sysroot.run(sysroot.host_make, '-f', 'ms\\nt.mak')
>   File "c:\python35\lib\site-packages\pyqtdeploy\sysroot\sysroot.py", line 562, in r
> un
>     subprocess.check_call(args)
>   File "c:\python35\lib\subprocess.py", line 584, in check_call
>     raise CalledProcessError(retcode, cmd)
> subprocess.CalledProcessError: Command '('nmake', '-f', 'ms\\nt.mak')' returned non-
> zero exit status 2
>
>
> Any help would be greatly appreciated.

I can't reproduce this either with nasm or with ml64. However I have added a 'no_asm' configuration option.

Phil

_______________________________________________
PyQt mailing list    [hidden email]
https://www.riverbankcomputing.com/mailman/listinfo/pyqt