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