svn commit: r366344 - in head: lib/libmd sys/crypto/skein/amd64
Kyle Evans
self at kyle-evans.net
Fri Oct 2 01:18:24 UTC 2020
On Thu, Oct 1, 2020 at 4:06 PM Ed Maste <emaste at freebsd.org> wrote:
>
> Author: emaste
> Date: Thu Oct 1 21:05:50 2020
> New Revision: 366344
> URL: https://svnweb.freebsd.org/changeset/base/366344
>
> Log:
> libmd: fix assembly optimized skein implementation
>
> The assembly implementation incorrectly used logical AND instead of
> bitwise AND. Fix, and re-enable in libmd.
>
> Submitted by: Yang Zhong <yzhong at freebsdfoundation.org>
> Reviewed by: cem (earlier)
> Sponsored by: The FreeBSD Foundation
> Differential Revision: https://reviews.freebsd.org/D26614
>
> Modified:
> head/lib/libmd/Makefile
> head/sys/crypto/skein/amd64/skein_block_asm.S
>
> Modified: head/lib/libmd/Makefile
> ==============================================================================
> --- head/lib/libmd/Makefile Thu Oct 1 20:08:27 2020 (r366343)
> +++ head/lib/libmd/Makefile Thu Oct 1 21:05:50 2020 (r366344)
> @@ -116,12 +116,12 @@ CFLAGS+= -DSHA1_ASM
> SRCS+= rmd160.S
> CFLAGS+= -DRMD160_ASM
> .endif
> -#.if exists(${MACHINE_ARCH}/skein_block_asm.S)
> -## Fully unroll all loops in the assembly optimized version
> -#ACFLAGS+= -DSKEIN_LOOP=0
> -#SRCS+= skein_block_asm.S
> -#CFLAGS+= -DSKEIN_ASM -DSKEIN_USE_ASM=1792 # list of block functions to replace with assembly: 256+512+1024 = 1792
> -#.endif
> +.if exists(${MACHINE_ARCH}/skein_block_asm.S)
> +# Fully unroll all loops in the assembly optimized version
> +ACFLAGS+= -DSKEIN_LOOP=0
> +SRCS+= skein_block_asm.S
> +CFLAGS+= -DSKEIN_ASM -DSKEIN_USE_ASM=1792 # list of block functions to replace with assembly: 256+512+1024 = 1792
> +.endif
> .if exists(${MACHINE_ARCH}/sha.S) || exists(${MACHINE_ARCH}/rmd160.S) || exists(${MACHINE_ARCH}/skein_block_asm.S)
> ACFLAGS+= -DELF -Wa,--noexecstack
> .endif
>
We need some kind of magic to walk across this for -DNO_CLEAN builds
-- skein_block.c has no reason to get rebuilt, but we need it to
because we're now defining SKEIN_USE_ASM=1792, which will strip out
some symbols.
I haven't had time to look into what kind of magic we can apply here,
kind of needed to skip ahead to get this build finished for some other
testing.
Thanks,
Kyle Evans
More information about the svn-src-all
mailing list