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.

Reply via email to