OpenSSL 1.0.0d for Freebsd HEAD
Anonymous
swell.k at gmail.com
Mon Feb 14 15:50:39 UTC 2011
Alexandre Martins <alexandre.martins at netasq.com> writes:
> For those interested in testing, you can find a patch that add OpenSSL 1.0d
> to head.
[...]
Hmm, doesn't build with ld(1) from /projects/binutils-2.17.
$ make -dl all
as -o rc4-amd64.o /usr/src/secure/lib/libcrypto/amd64/rc4-amd64.s
[ -z "ctfconvert" -o -n "1" ] || (echo ctfconvert -L VERSION rc4-amd64.o && ctfconvert -L VERSION rc4-amd64.o)
echo building static crypto library
building static crypto library
rm -f libcrypto.a
ar cq libcrypto.a `lorder ...`
ranlib libcrypto.a
as -o rc4-amd64.po /usr/src/secure/lib/libcrypto/amd64/rc4-amd64.s
[ -z "ctfconvert" -o -n "1" ] || (echo ctfconvert -L VERSION rc4-amd64.po && ctfconvert -L VERSION rc4-amd64.po)
echo building profiled crypto library
building profiled crypto library
rm -f libcrypto_p.a
ar cq libcrypto_p.a `lorder ...`
ranlib libcrypto_p.a
as -o rc4-amd64.So /usr/src/secure/lib/libcrypto/amd64/rc4-amd64.s
[ -z "ctfconvert" -o -n "1" ] || (echo ctfconvert -L VERSION rc4-amd64.So && ctfconvert -L VERSION rc4-amd64.So)
echo building shared library libcrypto.so.7
building shared library libcrypto.so.7
rm -f libcrypto.so.7 libcrypto.so
ln -fs libcrypto.so.7 libcrypto.so
cc -fstack-protector -shared -Wl,-x -o libcrypto.so.7 -Wl,-soname,libcrypto.so.7 `lorder ...`
/usr/bin/ld: rc4-amd64.So: relocation R_X86_64_PC32 against `OPENSSL_ia32cap_P' can not be used when making a shared object; recompile with -fPIC
/usr/bin/ld: final link failed: Bad value
*** Error code 1
Reverting back to binutils-2.15 makes build fail with another error.
libcrypto builds fine but linking against it always fails
$ cc foo.c -lcrypto
/usr/lib/libcrypto.so: undefined reference to `_x86_64_Camellia_decrypt'
/usr/lib/libcrypto.so: undefined reference to `.Ldloop'
Indeed, some parts are missing
%% diff against output from cmll-x86_64.pl
--- secure/lib/libcrypto/amd64/cmll_amd64.s
+++ crypto/openssl/crypto/camellia/asm/cmll-x86_64.pl.out
@@ -312,6 +312,170 @@ Camellia_DecryptBlock_Rounds:
call _x86_64_Camellia_decrypt
+ bswapl %r8d
+ bswapl %r9d
+ bswapl %r10d
+ movl %r8d,0(%r13)
+ bswapl %r11d
+ movl %r9d,4(%r13)
+ movl %r10d,8(%r13)
+ movl %r11d,12(%r13)
+
+ movq 0(%rsp),%r15
+ movq 8(%rsp),%r14
+ movq 16(%rsp),%r13
+ movq 24(%rsp),%rbp
+ movq 32(%rsp),%rbx
+ leaq 40(%rsp),%rsp
+.Ldec_epilogue:
+ .byte 0xf3,0xc3
+.size Camellia_DecryptBlock_Rounds,.-Camellia_DecryptBlock_Rounds
+
+.type _x86_64_Camellia_decrypt, at function
+.align 16
+_x86_64_Camellia_decrypt:
+ xorl 0(%r14),%r9d
+ xorl 4(%r14),%r8d
+ xorl 8(%r14),%r11d
+ xorl 12(%r14),%r10d
+.align 16
+.Ldloop:
+ movl -8(%r14),%ebx
+ movl -4(%r14),%eax
+
+ xorl %r8d,%eax
+ xorl %r9d,%ebx
+ movzbl %ah,%esi
+ movzbl %bl,%edi
+ movl 2052(%rbp,%rsi,8),%edx
+ movl 0(%rbp,%rdi,8),%ecx
+ movzbl %al,%esi
+ shrl $16,%eax
+ movzbl %bh,%edi
+ xorl 4(%rbp,%rsi,8),%edx
+ shrl $16,%ebx
+ xorl 4(%rbp,%rdi,8),%ecx
+ movzbl %ah,%esi
+ movzbl %bl,%edi
+ xorl 0(%rbp,%rsi,8),%edx
+ xorl 2052(%rbp,%rdi,8),%ecx
+ movzbl %al,%esi
+ movzbl %bh,%edi
+ xorl 2048(%rbp,%rsi,8),%edx
+ xorl 2048(%rbp,%rdi,8),%ecx
+ movl -16(%r14),%ebx
+ movl -12(%r14),%eax
+ xorl %edx,%ecx
+ rorl $8,%edx
+ xorl %ecx,%r10d
+ xorl %ecx,%r11d
+ xorl %edx,%r11d
+ xorl %r10d,%eax
+ xorl %r11d,%ebx
+ movzbl %ah,%esi
+ movzbl %bl,%edi
+ movl 2052(%rbp,%rsi,8),%edx
+ movl 0(%rbp,%rdi,8),%ecx
+ movzbl %al,%esi
+ shrl $16,%eax
+ movzbl %bh,%edi
+ xorl 4(%rbp,%rsi,8),%edx
+ shrl $16,%ebx
+ xorl 4(%rbp,%rdi,8),%ecx
+ movzbl %ah,%esi
+ movzbl %bl,%edi
+ xorl 0(%rbp,%rsi,8),%edx
+ xorl 2052(%rbp,%rdi,8),%ecx
+ movzbl %al,%esi
+ movzbl %bh,%edi
+ xorl 2048(%rbp,%rsi,8),%edx
+ xorl 2048(%rbp,%rdi,8),%ecx
+ movl -24(%r14),%ebx
+ movl -20(%r14),%eax
+ xorl %edx,%ecx
+ rorl $8,%edx
+ xorl %ecx,%r8d
+ xorl %ecx,%r9d
+ xorl %edx,%r9d
+ xorl %r8d,%eax
+ xorl %r9d,%ebx
+ movzbl %ah,%esi
+ movzbl %bl,%edi
+ movl 2052(%rbp,%rsi,8),%edx
+ movl 0(%rbp,%rdi,8),%ecx
+ movzbl %al,%esi
+ shrl $16,%eax
+ movzbl %bh,%edi
+ xorl 4(%rbp,%rsi,8),%edx
+ shrl $16,%ebx
+ xorl 4(%rbp,%rdi,8),%ecx
+ movzbl %ah,%esi
+ movzbl %bl,%edi
+ xorl 0(%rbp,%rsi,8),%edx
+ xorl 2052(%rbp,%rdi,8),%ecx
+ movzbl %al,%esi
+ movzbl %bh,%edi
+ xorl 2048(%rbp,%rsi,8),%edx
+ xorl 2048(%rbp,%rdi,8),%ecx
+ movl -32(%r14),%ebx
+ movl -28(%r14),%eax
+ xorl %edx,%ecx
+ rorl $8,%edx
+ xorl %ecx,%r10d
+ xorl %ecx,%r11d
+ xorl %edx,%r11d
+ xorl %r10d,%eax
+ xorl %r11d,%ebx
+ movzbl %ah,%esi
+ movzbl %bl,%edi
+ movl 2052(%rbp,%rsi,8),%edx
+ movl 0(%rbp,%rdi,8),%ecx
+ movzbl %al,%esi
+ shrl $16,%eax
+ movzbl %bh,%edi
+ xorl 4(%rbp,%rsi,8),%edx
+ shrl $16,%ebx
+ xorl 4(%rbp,%rdi,8),%ecx
+ movzbl %ah,%esi
+ movzbl %bl,%edi
+ xorl 0(%rbp,%rsi,8),%edx
+ xorl 2052(%rbp,%rdi,8),%ecx
+ movzbl %al,%esi
+ movzbl %bh,%edi
+ xorl 2048(%rbp,%rsi,8),%edx
+ xorl 2048(%rbp,%rdi,8),%ecx
+ movl -40(%r14),%ebx
+ movl -36(%r14),%eax
+ xorl %edx,%ecx
+ rorl $8,%edx
+ xorl %ecx,%r8d
+ xorl %ecx,%r9d
+ xorl %edx,%r9d
+ xorl %r8d,%eax
+ xorl %r9d,%ebx
+ movzbl %ah,%esi
+ movzbl %bl,%edi
+ movl 2052(%rbp,%rsi,8),%edx
+ movl 0(%rbp,%rdi,8),%ecx
+ movzbl %al,%esi
+ shrl $16,%eax
+ movzbl %bh,%edi
+ xorl 4(%rbp,%rsi,8),%edx
+ shrl $16,%ebx
+ xorl 4(%rbp,%rdi,8),%ecx
+ movzbl %ah,%esi
+ movzbl %bl,%edi
+ xorl 0(%rbp,%rsi,8),%edx
+ xorl 2052(%rbp,%rdi,8),%ecx
+ movzbl %al,%esi
+ movzbl %bh,%edi
+ xorl 2048(%rbp,%rsi,8),%edx
+ xorl 2048(%rbp,%rdi,8),%ecx
+ movl -48(%r14),%ebx
+ movl -44(%r14),%eax
+ xorl %edx,%ecx
+ rorl $8,%edx
+ xorl %ecx,%r10d
xorl %ecx,%r11d
xorl %edx,%r11d
xorl %r10d,%eax
%%
More information about the freebsd-current
mailing list