Am 25.10.2015 um 12:33 schrieb Jeffrey Walton: > It looks like the GCC compiler is broken for RDSEED on Cygwin and > MinGW (RDRAND gear is fine). Here's a test under Cygwin-X86. > Cygwin-X64 produced a similar error > > g++ -DNDEBUG -g2 -O3 -maes -msse4 -msse3 -msse2 -mrdrnd -mrdseed > -Wall -march=native -c rdrand.cpp > rdrand.cpp: In function ‘int > CryptoPP::GCC_RSI_GenerateBlock(byte*, size_t, unsigned int)’: > rdrand.cpp:616:51: error: ‘__builtin_ia32_rdseed32_step’ was not > declared in this scope > if (__builtin_ia32_rdseed32_step((word32*)output)) > ^ > rdrand.cpp:634:40: error: ‘__builtin_ia32_rdseed32_step’ was not > declared in this scope > if (__builtin_ia32_rdseed32_step(&val)) > ^ > GNUmakefile:414: recipe for target 'rdrand.o' failed > make: *** [rdrand.o] Error 1 > > As far as I know, __builtin_ia32_rdseed{16|32|64}_step are the only > functions semi-documented by GCC. Confer, > https://gcc.gnu.org/onlinedocs/gcc/x86-Built-in-Functions.html. > Everything else is undocumented (counter examples are welcomed). > > JPM wanted RDSEED, and I think we should provide it. We have to decide > what to do here. > > I think the options are: > > (1) Remove RDSEED completely until GCC provides full support > (2) Disable RDSEED for the Unix on Windows gear until GCC provides > full support > (3) Provide an ASM implementation that always "just works" > > What is the course of action we should take? My "vote":
I'd vote for (3) if we can't make the intrinsics work. This will also enable us to provide RDSEED ( / RDRAND) for older compiler versions (pre- 4.6 and pre- 4.8) If this is too much work, (2) may be an option. We should avoid (1) if anyhow possible. BR JPM > > 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 > <mailto:cryptopp-users+unsubscr...@googlegroups.com>. > For more options, visit https://groups.google.com/d/optout. -- -- 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.