2016-09-21 63 views
0

我有在埃尔卡皮坦编译Veracrypt问题问题在Mac OS X埃尔卡皮坦编译Veracrypt 10.11.5

这是错误我得到:

../Crypto/Whirlpool.c:511:3: error: unknown token in expression 
       KSH(2, 3, 2, 1, 0, 7) 
       ^
../Crypto/Whirlpool.c:452:2: note: expanded from macro 'KSH' 
     KSH##op(b, [AS_REG_6+2*2048+8*WORD_REG(di)])\ 
     ^
<scratch space>:264:1: note: expanded from here 
KSH2 
^ 
../Crypto/Whirlpool.c:445:2: note: expanded from macro 'KSH2' 
     AS2(movq  [SSE2_workspace+8*a], mm##a) 
     ^
/Users/whatnots/Desktop/veracrypt/src/Crypto/cpu.h:149:23: note: expanded from macro 'AS2' 
    #define AS2(x, y) GNU_AS2(x, y) 
        ^
/Users/whatnots/Desktop/veracrypt/src/Crypto/cpu.h:144:27: note: expanded from macro 'GNU_AS2' 
    #define GNU_AS2(x, y) #x ", " #y ";" NEW_LINE 
         ^
<scratch space>:270:2: note: expanded from here 
"movq [%3+8*1]" 
^ 
<inline asm>:162:7: note: instantiated into assembly here 
movq [%r10+8*1], mm1; 
    ^
fatal error: too many errors emitted, stopping now [-ferror-limit=] 
20 errors generated. 

这里是我的gcc信息:

Configured with: --prefix=/Library/Developer/CommandLineTools/usr --with-gxx-include-dir=/usr/include/c++/4.2.1 
Apple LLVM version 7.3.0 (clang-703.0.31) 
Target: x86_64-apple-darwin15.5.0 
Thread model: posix 
InstalledDir: /Library/Developer/CommandLineTools/usr/bin 

这个编译好的Ubuntu 16.04。不知道我需要做什么。我已经安装了所有必需的软件,甚至还尝试了两个更高版本的gcc。

+0

根据^所在的位置,%r10是“未知令牌”?这似乎是可能的,如果(不知何故)你编译为32位。或者,或者脱字符号在错误的地方,它不能识别的mm1? –

回答

0

nasm汇编程序的内联代码未正确展开,另请参阅此 issue in veracrypt repository。肇事者位于cpu.h(在1.19版本中,第259行至第263行)。你可以尝试用

#define GNU_AS1(x) #x ";" 
#define GNU_AS2(x, y) #x ", " #y ";" 
#define GNU_AS3(x, y, z) #x ", " #y ", " #z ";" 
#define GNU_ASL(x) "\n\t#x:" 
#define GNU_ASJ(x, y, z) #x " " #y #z ";" 

来代替这些,但它可能是在加密的最后测试,你会得到一个错误的TestPkcs5。

附录2017-06-08:veracrypt的最新git克隆编译没有问题,漩涡散列函数中的内联汇编现在被禁用。

相关问题