Another thing - it pays to explicitly add "-maes -mpclmul" to CFLAGS and/or 
CXXFLAGS.

On Apr 26, 2014, at 16:42 , Frank Rehwinkel <[email protected]> wrote:
> On Saturday, April 26, 2014 2:24:12 PM UTC-4, Jeffrey Walton wrote:
> On Thursday, April 24, 2014 5:10:09 PM UTC-4, Frank Rehwinkel wrote:
> Hi.  I'm trying to get cryptopp562 built with the AES-NI instructions used in 
> rijndael.cpp on FreeBSD with either the 3.3 version of clang that comes with 
> FreeBSD 10.0 or with the 3.4 version built from ports but even just getting 
> the rijndael.cpp asm to compile with clang's internal assembler is a problem.
> 
> The file compiles, and the entire test suite passes, when asm is disabled.  
> And a disabled asm is the default for now when CXX points to clang because 
> the GNUmakefile tries to read the assembler version by passing -v to it, but 
> the clang internal assembler doesn't accept -v as an option.  So all three 
> version checks fail, and the three variables are set to 0.
> 
> By adding -no-integrated-as to CXXFLAGS and also to the compiler lines that 
> test for the version number with EGREP, I'm able to get GAS210_OR_LATER and 
> GAS217_OR_LATER set to 1, but GAS219_OR_LATER is still 0 because the version 
> info returned by the external linker is
> 
> GNU assembler version 2.17.50 [FreeBSD] 2007-07-03 (x86_64-unknown-freebsd) 
> using BFD version 2.17.50 [FreeBSD] 2007-07-03
> 
>  
> and it is this last version check that should pass, else AESNI is disabled as 
> I guess 2.19 of the assembler is needed.
> 
> So I don't have an external assembler new enough.  But I thought the clang 
> internal assembler should be new enough, so I hardwired the version test 
> variables to be true and let clang use its internal assembler....
> 
> It sounds like you are still using the old assembler.
> 
> Open GNUmakefile, and add a line for AS. AS is a standard make variable (see 
> implicit variables at 
> https://www.gnu.org/software/make/manual/html_node/Implicit-Variables.html), 
> so GNU make should use your new assembler.
> 
> Jeff 
> Thanks Jeff,
> 
> That was it.  FreeBSD 10.0 doesn't come with gcc nor a recent binutils.  I 
> don't know a lot about the FreeBSD dependencies so I can't speak to why an 
> old version of 'as' was still in /usr/bin.  But the most recent binutils 
> could still be built from ports and so after building it and once 
> /usr/local/bin was first in my PATH, I didn't even have to override AS in the 
> GNUmakefile.
> 
> I did have to hack the makefile to get clang to use the external assembler 
> and config.h to get the build to follow the ASENI intrinsics path but after 
> that, it compiled and the selftest completely passed.  And with objdump, it 
> looks like the aesni instructions made it into the binary.
> 
> Thanks again.
> 
> -- 
> -- 
> You received this message because you are subscribed to the "Crypto++ Users" 
> Google Group.
> To unsubscribe, send an email to [email protected].
> More information about Crypto++ and this group is available 
> athttp://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 [email protected].
> 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 [email protected].
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 [email protected].
For more options, visit https://groups.google.com/d/optout.

Reply via email to