Hello everybody.
I'm trying to build cryptopp 5.6.1 on Solaris 11 x86-64 system and it
fails. I also tried 5.5.2, it has same problem. I was able to solve
some easy problems, but not the final one. Does anyone know a recepie?
I'd like to find some way to compile with using stock compiler.
I have installed C compiler and binutils:
developer/gcc-45 4.5.2-0.175.0.0.0.2.537
developer/gnu-binutils 2.19-0.175.0.0.0.2.537
Of course, rest of components is installed too (Solaris 11 ships with
gnu coreutils, make and so on by default). I'm able to build various
software on this system with this toolchain.
This is core2-based system, so -march=native should work as -
march=core2, turning on MMX, SSE, SSE2, SSE3 and SSSE3.
First of all, supplied GNUmakefile doesn't work; it gives error like
$ make
g++ -DNDEBUG -g -O2 -march=native -Wa,--divide -pipe -c 3way.cpp
Assembler:
"", line 1 : Illegal flag (-)
make: *** [3way.o] Ошибка 2
It is fixed by removing or commenting
-ifeq ($(UNAME),SunOS)
-CXXFLAGS += -Wa,--divide # allow use of "/" operator
-endif
in makefile. GNU as doesn't like --divide flag at all.
I also add -m64 to CXXFLAGS because I need 64-bit library.
With these fixes, about 20 files compile correctly, then dll.cpp
fails:
g++ -DNDEBUG -g -O2 -m64 -march=native -pipe -c dll.cpp
Assembler: dll.cpp
"<stdin>", line 125848 : Internal: Out of symbol table
make: *** [dll.o] Ошибка 2
This is known error and is fixed by removing -pipe flag. After I
comment it in makefile, lots of files compile, then:
g++ -DNDEBUG -g -O2 -m64 -march=native -c gcm.cpp
Assembler: gcm.cpp
"/var/tmp//ccPaaWtn.s", line 3837 : Illegal mnemonic
Near line: " .intel_syntax noprefix;movdqa xmm0, [rsi];"
"/var/tmp//ccPaaWtn.s", line 3837 : Syntax error
Near line: " .intel_syntax noprefix;movdqa xmm0, [rsi];"
"/var/tmp//ccPaaWtn.s", line 3837 : Illegal mnemonic
Near line: " .intel_syntax noprefix;movdqa xmm0, [rsi];"
"/var/tmp//ccPaaWtn.s", line 3837 : Syntax error
Near line: " .intel_syntax noprefix;movdqa xmm0, [rsi];"
"/var/tmp//ccPaaWtn.s", line 3838 : Syntax error
"/var/tmp//ccPaaWtn.s", line 3838 : Syntax error
"/var/tmp//ccPaaWtn.s", line 3838 : Syntax error
"/var/tmp//ccPaaWtn.s", line 3838 : Syntax error
"/var/tmp//ccPaaWtn.s", line 3838 : Syntax error
"/var/tmp//ccPaaWtn.s", line 3838 : Syntax error
"/var/tmp//ccPaaWtn.s", line 3838 : Syntax error
"/var/tmp//ccPaaWtn.s", line 3838 : Syntax error
"/var/tmp//ccPaaWtn.s", line 3838 : Syntax error
"/var/tmp//ccPaaWtn.s", line 3838 : Syntax error
"/var/tmp//ccPaaWtn.s", line 3838 : Syntax error
"/var/tmp//ccPaaWtn.s", line 3838 : Syntax error
"/var/tmp//ccPaaWtn.s", line 3838 : Syntax error
"/var/tmp//ccPaaWtn.s", line 3838 : Syntax error
"/var/tmp//ccPaaWtn.s", line 3838 : Syntax error
"/var/tmp//ccPaaWtn.s", line 3838 : Syntax error
"/var/tmp//ccPaaWtn.s", line 3838 : Syntax error
"/var/tmp//ccPaaWtn.s", line 3838 : Syntax error
"/var/tmp//ccPaaWtn.s", line 3838 : Syntax error
"/var/tmp//ccPaaWtn.s", line 3838 : Syntax error
"/var/tmp//ccPaaWtn.s", line 3838 : Syntax error
"/var/tmp//ccPaaWtn.s", line 3838 : Syntax error
"/var/tmp//ccPaaWtn.s", line 3838 : Syntax error
"/var/tmp//ccPaaWtn.s", line 3838 : Syntax error
"/var/tmp//ccPaaWtn.s", line 3838 : Syntax error
"/var/tmp//ccPaaWtn.s", line 3838 : Syntax error
"/var/tmp//ccPaaWtn.s", line 3838 : Syntax error
Too many errors - Goodbye
make: *** [gcm.o] Ошибка 1
When moving gcm.cpp somewhere so it won't get compiled - or when
building 5.5.2 which doesn't have that file - eventually compiling
fails on file integer.cpp:
g++ -DNDEBUG -g -O2 -m64 -march=native -c integer.cpp
Assembler: integer.cpp
"/var/tmp//ccjKaiFn.s", line 20814 : Illegal mnemonic
Near line: " .intel_syntax;neg %rcx;jz 1f;mov %rax, [%rdx+8*
%rcx];add %rax, [%r8+8*%rcx];mov [%rsi+8*%rcx], %rax;"
"/var/tmp//ccjKaiFn.s", line 20814 : Syntax error
Near line: " .intel_syntax;neg %rcx;jz 1f;mov %rax, [%rdx+8*
%rcx];add %rax, [%r8+8*%rcx];mov [%rsi+8*%rcx], %rax;"
"/var/tmp//ccjKaiFn.s", line 20814 : Syntax error
Near line: " .intel_syntax;neg %rcx;jz 1f;mov %rax, [%rdx+8*
%rcx];add %rax, [%r8+8*%rcx];mov [%rsi+8*%rcx], %rax;"
"/var/tmp//ccjKaiFn.s", line 20814 : Syntax error
Near line: " .intel_syntax;neg %rcx;jz 1f;mov %rax, [%rdx+8*
%rcx];add %rax, [%r8+8*%rcx];mov [%rsi+8*%rcx], %rax;"
"/var/tmp//ccjKaiFn.s", line 20814 : Syntax error
Near line: " .intel_syntax;neg %rcx;jz 1f;mov %rax, [%rdx+8*
%rcx];add %rax, [%r8+8*%rcx];mov [%rsi+8*%rcx], %rax;"
"/var/tmp//ccjKaiFn.s", line 20815 : Syntax error
Near line: "0:mov %rax, [%rdx+8*%rcx+8];adc %rax, [%r8+8*%rcx
+8];mov [%rsi+8*%rcx+8], %rax;lea %rcx, [%rcx+2];jrcxz 1f;mov %rax,
[%rdx+8*%rcx];adc %rax, [%r8+8*%rcx];mov [%rsi+8*%rcx], %rax;jmp 0b;"
"/var/tmp//ccjKaiFn.s", line 20815 : Syntax error
Near line: "0:mov %rax, [%rdx+8*%rcx+8];adc %rax, [%r8+8*%rcx
+8];mov [%rsi+8*%rcx+8], %rax;lea %rcx, [%rcx+2];jrcxz 1f;mov %rax,
[%rdx+8*%rcx];adc %rax, [%r8+8*%rcx];mov [%rsi+8*%rcx], %rax;jmp 0b;"
"/var/tmp//ccjKaiFn.s", line 20815 : Syntax error
Near line: "0:mov %rax, [%rdx+8*%rcx+8];adc %rax, [%r8+8*%rcx
+8];mov [%rsi+8*%rcx+8], %rax;lea %rcx, [%rcx+2];jrcxz 1f;mov %rax,
[%rdx+8*%rcx];adc %rax, [%r8+8*%rcx];mov [%rsi+8*%rcx], %rax;jmp 0b;"
"/var/tmp//ccjKaiFn.s", line 20815 : Syntax error
Near line: "0:mov %rax, [%rdx+8*%rcx+8];adc %rax, [%r8+8*%rcx
+8];mov [%rsi+8*%rcx+8], %rax;lea %rcx, [%rcx+2];jrcxz 1f;mov %rax,
[%rdx+8*%rcx];adc %rax, [%r8+8*%rcx];mov [%rsi+8*%rcx], %rax;jmp 0b;"
"/var/tmp//ccjKaiFn.s", line 20815 : Syntax error
Near line: "0:mov %rax, [%rdx+8*%rcx+8];adc %rax, [%r8+8*%rcx
+8];mov [%rsi+8*%rcx+8], %rax;lea %rcx, [%rcx+2];jrcxz 1f;mov %rax,
[%rdx+8*%rcx];adc %rax, [%r8+8*%rcx];mov [%rsi+8*%rcx], %rax;jmp 0b;"
"/var/tmp//ccjKaiFn.s", line 20815 : Syntax error
Near line: "0:mov %rax, [%rdx+8*%rcx+8];adc %rax, [%r8+8*%rcx
+8];mov [%rsi+8*%rcx+8], %rax;lea %rcx, [%rcx+2];jrcxz 1f;mov %rax,
[%rdx+8*%rcx];adc %rax, [%r8+8*%rcx];mov [%rsi+8*%rcx], %rax;jmp 0b;"
"/var/tmp//ccjKaiFn.s", line 20815 : Syntax error
Near line: "0:mov %rax, [%rdx+8*%rcx+8];adc %rax, [%r8+8*%rcx
+8];mov [%rsi+8*%rcx+8], %rax;lea %rcx, [%rcx+2];jrcxz 1f;mov %rax,
[%rdx+8*%rcx];adc %rax, [%r8+8*%rcx];mov [%rsi+8*%rcx], %rax;jmp 0b;"
"/var/tmp//ccjKaiFn.s", line 20816 : Illegal mnemonic
Near line: "1:mov %rax, 0;adc %rax, %rax;.att_syntax;"
"/var/tmp//ccjKaiFn.s", line 20816 : Syntax error
Near line: "1:mov %rax, 0;adc %rax, %rax;.att_syntax;"
"/var/tmp//ccjKaiFn.s", line 20845 : Illegal mnemonic
Near line: " .intel_syntax;neg %rcx;jz 1f;mov %rax, [%rdx+8*
%rcx];sub %rax, [%r8+8*%rcx];mov [%rsi+8*%rcx], %rax;"
"/var/tmp//ccjKaiFn.s", line 20845 : Syntax error
Near line: " .intel_syntax;neg %rcx;jz 1f;mov %rax, [%rdx+8*
%rcx];sub %rax, [%r8+8*%rcx];mov [%rsi+8*%rcx], %rax;"
"/var/tmp//ccjKaiFn.s", line 20845 : Syntax error
Near line: " .intel_syntax;neg %rcx;jz 1f;mov %rax, [%rdx+8*
%rcx];sub %rax, [%r8+8*%rcx];mov [%rsi+8*%rcx], %rax;"
"/var/tmp//ccjKaiFn.s", line 20845 : Syntax error
Near line: " .intel_syntax;neg %rcx;jz 1f;mov %rax, [%rdx+8*
%rcx];sub %rax, [%r8+8*%rcx];mov [%rsi+8*%rcx], %rax;"
"/var/tmp//ccjKaiFn.s", line 20845 : Syntax error
Near line: " .intel_syntax;neg %rcx;jz 1f;mov %rax, [%rdx+8*
%rcx];sub %rax, [%r8+8*%rcx];mov [%rsi+8*%rcx], %rax;"
"/var/tmp//ccjKaiFn.s", line 20846 : Syntax error
Near line: "0:mov %rax, [%rdx+8*%rcx+8];sbb %rax, [%r8+8*%rcx
+8];mov [%rsi+8*%rcx+8], %rax;lea %rcx, [%rcx+2];jrcxz 1f;mov %rax,
[%rdx+8*%rcx];sbb %rax, [%r8+8*%rcx];mov [%rsi+8*%rcx], %rax;jmp 0b;"
"/var/tmp//ccjKaiFn.s", line 20846 : Syntax error
Near line: "0:mov %rax, [%rdx+8*%rcx+8];sbb %rax, [%r8+8*%rcx
+8];mov [%rsi+8*%rcx+8], %rax;lea %rcx, [%rcx+2];jrcxz 1f;mov %rax,
[%rdx+8*%rcx];sbb %rax, [%r8+8*%rcx];mov [%rsi+8*%rcx], %rax;jmp 0b;"
"/var/tmp//ccjKaiFn.s", line 20846 : Syntax error
Near line: "0:mov %rax, [%rdx+8*%rcx+8];sbb %rax, [%r8+8*%rcx
+8];mov [%rsi+8*%rcx+8], %rax;lea %rcx, [%rcx+2];jrcxz 1f;mov %rax,
[%rdx+8*%rcx];sbb %rax, [%r8+8*%rcx];mov [%rsi+8*%rcx], %rax;jmp 0b;"
"/var/tmp//ccjKaiFn.s", line 20846 : Syntax error
Near line: "0:mov %rax, [%rdx+8*%rcx+8];sbb %rax, [%r8+8*%rcx
+8];mov [%rsi+8*%rcx+8], %rax;lea %rcx, [%rcx+2];jrcxz 1f;mov %rax,
[%rdx+8*%rcx];sbb %rax, [%r8+8*%rcx];mov [%rsi+8*%rcx], %rax;jmp 0b;"
"/var/tmp//ccjKaiFn.s", line 20846 : Syntax error
Near line: "0:mov %rax, [%rdx+8*%rcx+8];sbb %rax, [%r8+8*%rcx
+8];mov [%rsi+8*%rcx+8], %rax;lea %rcx, [%rcx+2];jrcxz 1f;mov %rax,
[%rdx+8*%rcx];sbb %rax, [%r8+8*%rcx];mov [%rsi+8*%rcx], %rax;jmp 0b;"
"/var/tmp//ccjKaiFn.s", line 20846 : Syntax error
Near line: "0:mov %rax, [%rdx+8*%rcx+8];sbb %rax, [%r8+8*%rcx
+8];mov [%rsi+8*%rcx+8], %rax;lea %rcx, [%rcx+2];jrcxz 1f;mov %rax,
[%rdx+8*%rcx];sbb %rax, [%r8+8*%rcx];mov [%rsi+8*%rcx], %rax;jmp 0b;"
"/var/tmp//ccjKaiFn.s", line 20846 : Syntax error
Near line: "0:mov %rax, [%rdx+8*%rcx+8];sbb %rax, [%r8+8*%rcx
+8];mov [%rsi+8*%rcx+8], %rax;lea %rcx, [%rcx+2];jrcxz 1f;mov %rax,
[%rdx+8*%rcx];sbb %rax, [%r8+8*%rcx];mov [%rsi+8*%rcx], %rax;jmp 0b;"
"/var/tmp//ccjKaiFn.s", line 20847 : Illegal mnemonic
Near line: "1:mov %rax, 0;adc %rax, %rax;.att_syntax;"
"/var/tmp//ccjKaiFn.s", line 20847 : Syntax error
Near line: "1:mov %rax, 0;adc %rax, %rax;.att_syntax;"
make: *** [integer.o] Ошибка 1
The lines 3836-3839 in assembler code of gcm.cpp which compilation
fails at are:
/ 784 "gcm.cpp" 1
.intel_syntax noprefix;movdqa xmm0, [rsi];
1:movdqu xmm1, [rcx];pxor xmm1, xmm0;pxor xmm0, xmm0;movd eax,
xmm1;psrldq xmm1, 4;movzx edi, al;add rdi, rdi;pxor xmm0, [rsi + 32 +
(0*4+0)*256*16 + rdi*8];movzx edi, ah;add rdi, rdi;pxor xmm0, [rsi +
32 + (0*4+1)*256*16 + rdi*8];shr eax, 16;movzx edi, al;add rdi,
rdi;pxor xmm0, [rsi + 32 + (0*4+2)*256*16 + rdi*8];movzx edi, ah;add
rdi, rdi;pxor xmm0, [rsi + 32 + (0*4+3)*256*16 + rdi*8];movd eax,
xmm1;psrldq xmm1, 4;movzx edi, al;add rdi, rdi;pxor xmm0, [rsi + 32 +
(1*4+0)*256*16 + rdi*8];movzx edi, ah;add rdi, rdi;pxor xmm0, [rsi +
32 + (1*4+1)*256*16 + rdi*8];shr eax, 16;movzx edi, al;add rdi,
rdi;pxor xmm0, [rsi + 32 + (1*4+2)*256*16 + rdi*8];movzx edi, ah;add
rdi, rdi;pxor xmm0, [rsi + 32 + (1*4+3)*256*16 + rdi*8];movd eax,
xmm1;psrldq xmm1, 4;movzx edi, al;add rdi, rdi;pxor xmm0, [rsi + 32 +
(2*4+0)*256*16 + rdi*8];movzx edi, ah;add rdi, rdi;pxor xmm0, [rsi +
32 + (2*4+1)*256*16 + rdi*8];shr eax, 16;movzx edi, al;add rdi,
rdi;pxor xmm0, [rsi + 32 + (2*4+2)*256*16 + rdi*8];movzx edi, ah;add
rdi, rdi;pxor xmm0, [rsi + 32 + (2*4+3)*256*16 + rdi*8];movd eax,
xmm1;psrldq xmm1, 4;movzx edi, al;add rdi, rdi;pxor xmm0, [rsi + 32 +
(3*4+0)*256*16 + rdi*8];movzx edi, ah;add rdi, rdi;pxor xmm0, [rsi +
32 + (3*4+1)*256*16 + rdi*8];shr eax, 16;movzx edi, al;add rdi,
rdi;pxor xmm0, [rsi + 32 + (3*4+2)*256*16 + rdi*8];movzx edi, ah;add
rdi, rdi;pxor xmm0, [rsi + 32 + (3*4+3)*256*16 + rdi*8];add rcx,
16;sub rdx, 1;jnz 1b;movdqa [rsi], xmm0;.att_syntax prefix;
/ 0 "" 2
/NO_APP
System information:
$ uname -a
SunOS casper 5.11 11.0 i86pc i386 i86pc Solaris
$ isainfo -v
64-bit amd64 applications
sse4.1 ssse3 ahf cx16 sse3 sse2 sse fxsr mmx cmov amd_sysc cx8
tsc fpu
32-bit i386 applications
sse4.1 ssse3 ahf cx16 sse3 sse2 sse fxsr mmx cmov sep cx8 tsc
fpu
$ gcc -v
Using built-in specs.
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/usr/gcc/4.5/lib/gcc/i386-pc-solaris2.11/4.5.2/lto-
wrapper
Target: i386-pc-solaris2.11
Configured with: /builds/hudson/workspace/nightly/build/i386/
components/gcc45/gcc-4.5.2/configure CC=/ws/onnv-tools/SUNWspro/
sunstudio12.1/bin/cc CXX=/ws/onnv-tools/SUNWspro/sunstudio12.1/bin/CC
--prefix=/usr/gcc/4.5 --mandir=/usr/gcc/4.5/share/man --bindir=/usr/
gcc/4.5/bin --libdir=/usr/gcc/4.5/lib --sbindir=/usr/gcc/4.5/sbin --
enable-languages=c,c++,fortran,objc --enable-shared --with-gmp-
include=/usr/include/gmp --with-mpfr-include=/usr/include/mpfr --
prefix=/usr/gcc/4.5 --mandir=/usr/gcc/4.5/share/man --infodir=/usr/gcc/
4.5/share/info --libexecdir=/usr/gcc/4.5/lib CFLAGS='-g -O2 '
Thread model: posix
gcc version 4.5.2 (GCC)
$ as --version
GNU assembler (GNU Binutils) 2.19
Copyright 2007 Free Software Foundation, Inc.
This program is free software; you may redistribute it under the terms
of
the GNU General Public License version 3 or later.
This program has absolutely no warranty.
This assembler was configured for a target of `i386-pc-solaris2.11'.
$ cpp -v < /dev/null
Using built-in specs.
COLLECT_GCC=cpp
COLLECT_LTO_WRAPPER=/usr/gcc/4.5/lib/gcc/i386-pc-solaris2.11/4.5.2/lto-
wrapper
Target: i386-pc-solaris2.11
Configured with: /builds/hudson/workspace/nightly/build/i386/
components/gcc45/gcc-4.5.2/configure CC=/ws/onnv-tools/SUNWspro/
sunstudio12.1/bin/cc CXX=/ws/onnv-tools/SUNWspro/sunstudio12.1/bin/CC
--prefix=/usr/gcc/4.5 --mandir=/usr/gcc/4.5/share/man --bindir=/usr/
gcc/4.5/bin --libdir=/usr/gcc/4.5/lib --sbindir=/usr/gcc/4.5/sbin --
enable-languages=c,c++,fortran,objc --enable-shared --with-gmp-
include=/usr/include/gmp --with-mpfr-include=/usr/include/mpfr --
prefix=/usr/gcc/4.5 --mandir=/usr/gcc/4.5/share/man --infodir=/usr/gcc/
4.5/share/info --libexecdir=/usr/gcc/4.5/lib CFLAGS='-g -O2 '
Thread model: posix
gcc version 4.5.2 (GCC)
COLLECT_GCC_OPTIONS='-E' '-v' '-mtune=generic' '-march=pentium4'
/usr/gcc/4.5/lib/gcc/i386-pc-solaris2.11/4.5.2/cc1 -E -quiet -v - -
mtune=generic -march=pentium4
ignoring nonexistent directory "/usr/local/include"
ignoring nonexistent directory "/usr/gcc/4.5/lib/gcc/i386-pc-
solaris2.11/4.5.2/../../../../i386-pc-solaris2.11/include"
#include "..." search starts here:
#include <...> search starts here:
/usr/gcc/4.5/include
/usr/gcc/4.5/lib/gcc/i386-pc-solaris2.11/4.5.2/include
/usr/gcc/4.5/lib/gcc/i386-pc-solaris2.11/4.5.2/include-fixed
/usr/include
End of search list.
# 1 "<stdin>"
# 1 "<built-in>"
# 1 "<command-line>"
# 1 "<stdin>"
COMPILER_PATH=/usr/gcc/4.5/lib/gcc/i386-pc-solaris2.11/4.5.2/:/usr/gcc/
4.5/lib/gcc/i386-pc-solaris2.11/4.5.2/:/usr/gcc/4.5/lib/gcc/i386-pc-
solaris2.11/:/usr/gcc/4.5/lib/gcc/i386-pc-solaris2.11/4.5.2/:/usr/gcc/
4.5/lib/gcc/i386-pc-solaris2.11/:/usr/ccs/bin/
LIBRARY_PATH=/usr/gcc/4.5/lib/gcc/i386-pc-solaris2.11/4.5.2/:/usr/gcc/
4.5/lib/gcc/i386-pc-solaris2.11/4.5.2/../../../:/lib/:/usr/lib/
COLLECT_GCC_OPTIONS='-E' '-v' '-mtune=generic' '-march=pentium4'
--
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.