Re: Building Crypto++ using MinGW under Windows 10

2017-07-28 Thread Marcel Raad
Ah, that's probably because you're building from a DOS box without unix
tools? Try the MSYS2 version of MinGW-w64 (www.msys2.org). With this one, I
can build Crypto++ fine by just typing "make" in the shell in all 3
variants (MinGW32, MinGW64, MSYS - you probably want one of the first two
depending on target architecture).

Marcel

Am 28.07.2017 8:08 vorm. schrieb "Daniel Karcz" :

Hello Marcel,

thanks for your reply, I'm using original version from mingw.org, but since
your post I've decided to try MinGW-w64. I tried both POSIX and win32
versions, with both I'm getting the same output after: (after mingw32-make):

process_begin: CreateProcess(NULL, uname, ...) failed.
mingw32-make: GNUmakefile:16: pipe: No error
'uname' is not recognized as an internal or external command,
operable program or batch file.
'uname' is not recognized as an internal or external command,
operable program or batch file.
'uname' is not recognized as an internal or external command,
operable program or batch file.
'uname' is not recognized as an internal or external command,
operable program or batch file.
'uname' is not recognized as an internal or external command,
operable program or batch file.
'uname' is not recognized as an internal or external command,
operable program or batch file.
'egrep' is not recognized as an internal or external command,
operable program or batch file.
'egrep' is not recognized as an internal or external command,
operable program or batch file.
'egrep' is not recognized as an internal or external command,
operable program or batch file.
'egrep' is not recognized as an internal or external command,
operable program or batch file.
'egrep' is not recognized as an internal or external command,
operable program or batch file.
'egrep' is not recognized as an internal or external command,
operable program or batch file.
'egrep' is not recognized as an internal or external command,
operable program or batch file.
'egrep' is not recognized as an internal or external command,
operable program or batch file.
'egrep' is not recognized as an internal or external command,
operable program or batch file.
'egrep' is not recognized as an internal or external command,
operable program or batch file.
'egrep' is not recognized as an internal or external command,
operable program or batch file.
'egrep' is not recognized as an internal or external command,
operable program or batch file.
'egrep' is not recognized as an internal or external command,
operable program or batch file.
'egrep' is not recognized as an internal or external command,
operable program or batch file.
'egrep' is not recognized as an internal or external command,
operable program or batch file.
'egrep' is not recognized as an internal or external command,
operable program or batch file.
'egrep' is not recognized as an internal or external command,
operable program or batch file.
'egrep' is not recognized as an internal or external command,
operable program or batch file.
'egrep' is not recognized as an internal or external command,
operable program or batch file.
'egrep' is not recognized as an internal or external command,
operable program or batch file.
'egrep' is not recognized as an internal or external command,
operable program or batch file.
'egrep' is not recognized as an internal or external command,
operable program or batch file.
'egrep' is not recognized as an internal or external command,
operable program or batch file.
The system cannot find the path specified.
'egrep' is not recognized as an internal or external command,
operable program or batch file.
'egrep' is not recognized as an internal or external command,
operable program or batch file.
'cut' is not recognized as an internal or external command,
operable program or batch file.
'cut' is not recognized as an internal or external command,
operable program or batch file.
'cut' is not recognized as an internal or external command,
operable program or batch file.
'egrep' is not recognized as an internal or external command,
operable program or batch file.
process_begin: CreateProcess(NULL, cat Filelist.txt, ...) failed.
mingw32-make: GNUmakefile:672: pipe: No such file or directory
g++ -DNDEBUG -g2 -O2 -march=native -wd68 -wd186 -wd279 -wd327 -wd161
-wd3180 -mbnu210 -native -KPIC -template=no%extdef
-DCRYPTOPP_INCLUDE_VECTOR_CC -c cryptlib.cpp
g++: error: unrecognized command line option '-wd68'
g++: error: unrecognized command line option '-wd186'
g++: error: unrecognized command line option '-wd279'
g++: error: unrecognized command line option '-wd327'
g++: error: unrecognized command line option '-wd161'
g++: error: unrecognized command line option '-wd3180'
g++: error: unrecognized command line option '-mbnu210'
g++: error: unrecognized command line option '-native'; did you mean
'--time'?
g++: error: unrecognized command line option '-KPIC'; did you mean '-fPIC'?
g++: error: unrecognized command line option '-template=no%extdef'; did you
mean '-ftemplate-depth-'?
mingw32-make: ***

CRC feature support changes

2017-07-28 Thread Jeffrey Walton
Hi Everyone,

We are experiencing some pain points trying to support SSE4, AVX and BMI 
instruction sets under the compilations models we support. We experimented 
with a few different ways to move forward, and we think we found a good one 
that involves splitting source files. The test project is located at 
https://github.com/noloader/CRC-Test.

There's nothing revolutionary about splitting source files, but its kind of 
new for us. Under the CRC test, we want to:

  1. Split CRC sources into C++ and SIMD implementations
  2. C++ in crc.cpp file
  3. SSE4.2 in crc-simd.cpp file
  4. ARMv8 in crc-simd.cpp file
  5. crc.cpp gets any flags you want, from none to -march=native
  6. crc-simd.cpp gets either -msse4.2 or -march=armv8-a+crc

As a first step, I want to cut-in the changes for CRC only. The changes are 
at https://github.com/noloader/CRC-Test.

Are there any comments or objections?

Jeff

-- 
-- 
You received this message because you are subscribed to the "Crypto++ Users" 
Google Group.
To unsubscribe, send an email to cryptopp-users-unsubscr...@googlegroups.com.
More information about Crypto++ and this group is available at 
http://www.cryptopp.com.
--- 
You received this message because you are subscribed to the Google Groups 
"Crypto++ Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to cryptopp-users+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


Re: CRC feature support changes

2017-07-28 Thread Jeffrey Walton


On Friday, July 28, 2017 at 9:30:36 PM UTC-4, Jeffrey Walton wrote:
>
> ...
> We are experiencing some pain points trying to support SSE4, AVX and BMI 
> instruction sets under the compilations models we support. We experimented 
> with a few different ways to move forward, and we think we found a good one 
> that involves splitting source files. The test project is located at 
> https://github.com/noloader/CRC-Test...
>

Changes to the library were checked-in on my testing branch at 
https://github.com/noloader/cryptopp/. The check-in of interest is 
https://github.com/noloader/cryptopp/commit/fe9e21dd.

If interested, here's the CRC gear in the new configuration:

  * https://github.com/noloader/cryptopp/blob/master/crc.cpp
  * https://github.com/noloader/cryptopp/blob/master/crc-simd.cpp

Things look good on first pass. Linux x86_64 tested good on old and new 
machines. Linux and ARMv8 also tested good. Windows x64 tested good with 
VS2012. Travis and AppVeyor also produced expected results (both have some 
expected failures, like Travis and the old Xcode compiler that can't handle 
UBsan).

cpu.cpp is going to need some tweaking. I think we need to move function 
bodies, like HasCRC32(), into the appropriate source file so some code 
paths get activated as expected.

Benchmarks are showing a 0.1 cpb drop on Linux. It looks like its due to 
Stack Clash remediations, and not freestanding functions like 
CRC32C_Update_SSE42.

Jeff

-- 
-- 
You received this message because you are subscribed to the "Crypto++ Users" 
Google Group.
To unsubscribe, send an email to cryptopp-users-unsubscr...@googlegroups.com.
More information about Crypto++ and this group is available at 
http://www.cryptopp.com.
--- 
You received this message because you are subscribed to the Google Groups 
"Crypto++ Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to cryptopp-users+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.