Add accelerated arm64 sha512 to libmdAs with sha256 add support for accelerated sha512 support to libmd onarm64. This depends on clang 13+ to build as this is the first releasewith the needed int
Add accelerated arm64 sha512 to libmdAs with sha256 add support for accelerated sha512 support to libmd onarm64. This depends on clang 13+ to build as this is the first releasewith the needed intrinsics. Gcc should also support them, however froma currently unknown release.Reviewed by: cemSponsored by: The FreeBSD FoundationDifferential Revision: https://reviews.freebsd.org/D33373(cherry picked from commit 71bf1c4cc5b21e7e5740514c1bc6ad751f312eea)
show more ...
Use arm64 sha256 intrinsics in libmdSummary:When running on a CPU that supports the arm64 sha256 intrinsics use themto improve perfromance of sha256 calculations.With this changethe following i
Use arm64 sha256 intrinsics in libmdSummary:When running on a CPU that supports the arm64 sha256 intrinsics use themto improve perfromance of sha256 calculations.With this changethe following improvement has been seen on an Apple M1with FreeBS running under Parallels, with similar results on aNeoverse-N1 r3p1.x sha256.orig+ sha256.arm64+--------------------------------------------------------------------+|++ x x||+++ xxx|||A |A||+--------------------------------------------------------------------+ N Min Max Median Avg Stddevx 5 3.41 3.5 3.46 3.458 0.042661458+ 5 0.47 0.54 0.5 0.504 0.027018512Difference at 95.0% confidence -2.954 +/- 0.0520768 -85.4251% +/- 0.826831% (Student's t, pooled s = 0.0357071)Reviewed by: cemSponsored by: The FreeBSD FoundationDifferential Revision: https://reviews.freebsd.org/D31284(cherry picked from commit 69d8dc20be6ca10cf87c98223121c4121aff42cc)
Fix a few mandoc issues- skipping paragraph macro: Pp after Sh- sections out of conventional order: Sh EXAMPLES- whitespace at end of input line- normalizing date format
libmd: add dependency workaround for r366344r366344 fixed and reenabled the assembly optimized skein implementation,but skein_block objects were not being rebuilt in no-clean builds. Thisresulted
libmd: add dependency workaround for r366344r366344 fixed and reenabled the assembly optimized skein implementation,but skein_block objects were not being rebuilt in no-clean builds. Thisresulted in failing no-clean builds. SKEIN_USE_ASM controls whichroutines come from C vs assembly, and with no explicit dependencyr366344's change to SKEIN_USE_ASM did not cause skein_block.{o,pico}to be rebuilt.Add a dependency on this Makefile for the skein_block objects. Thisdependency is broader in scope than absolutely required (that is, theskein_block objects will now be rebuilt on any change to this Makefile).There are ways this could be addressed, but it is probably not worth theadditional effort or testing time to pursue them.PR: 248221Reported by: kevans, Jeremy FaulknerDiscussed with: kevansSponsored by: The FreeBSD Foundation
libmd: fix assembly optimized skein implementationThe assembly implementation incorrectly used logical AND instead ofbitwise AND. Fix, and re-enable in libmd.Submitted by: Yang Zhong <yzhong@fre
libmd: fix assembly optimized skein implementationThe assembly implementation incorrectly used logical AND instead ofbitwise AND. Fix, and re-enable in libmd.Submitted by: Yang Zhong <[email protected]>Reviewed by: cem (earlier)Sponsored by: The FreeBSD FoundationDifferential Revision: https://reviews.freebsd.org/D26614
libmd: temporarily disable optimized assembly skein1024 implementationIt is apparently broken when assembled by contemporary GNU as as well asClang IAS (which is used in the default configuration)
libmd: temporarily disable optimized assembly skein1024 implementationIt is apparently broken when assembled by contemporary GNU as as well asClang IAS (which is used in the default configuration).PR: 248221Reported by: pizzamigSponsored by: The FreeBSD Foundation
Remove warning that is no longer accurate after r361853We now build the skein assembly with clangs integrated assembler.Reviewed By: emasteDifferential Revision: https://reviews.freebsd.org/D256
Remove warning that is no longer accurate after r361853We now build the skein assembly with clangs integrated assembler.Reviewed By: emasteDifferential Revision: https://reviews.freebsd.org/D25664
Rename skein_block_asm.s to .S and assemble using Clang IASComparing the object files produced by GNU as 2.17.50 and Clang IASshows many immaterial changes in strtab etc., and one material change
Rename skein_block_asm.s to .S and assemble using Clang IASComparing the object files produced by GNU as 2.17.50 and Clang IASshows many immaterial changes in strtab etc., and one material changein .text: 1bac: 4c 8b 4f 18 mov 0x18(%rdi),%r9 1bb0: eb 0e jmp 1bc0 <Skein1024_block_loop>- 1bb2: 66 66 2e 0f 1f 84 00 data16 nopw %cs:0x0(%rax,%rax,1)- 1bb9: 00 00 00 00- 1bbd: 0f 1f 00 nopl (%rax)+ 1bb2: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1)+ 1bb9: 00 00 00+ 1bbc: 0f 1f 40 00 nopl 0x0(%rax) 0000000000001bc0 <Skein1024_block_loop>: Skein1024_block_loop(): 1bc0: 4c 8b 47 10 mov 0x10(%rdi),%r8 1bc4: 4c 03 85 c0 00 00 00 add 0xc0(%rbp),%r8That is, GNU as and Clang's integrated assembler use different multi-byte NOPs for alignment (GNU as emits an 11 byte NOP + a 3 byte NOP,while Clang IAS emits a 10 byte NOP + a 4 byte NOP).Dependency cleanup hacks are not required, because we do not create.depend files from GNU as.Reviewed by: allanjude, arichardson, cem, tsoomeSponsored by: The FreeBSD FoundationDifferential Revision: https://reviews.freebsd.org/D8434
Also pass SKEIN_USE_ASM to the assembler, via AFLAGS
Apply C SKEIN_LOOP setting only to skein_block.cOtherwise if assembling skein_block_asm.s with Clang's integrated assemblerwe can pass conflicting SKEIN_LOOP settings (via CFLAGS and ACFLAGS).
ANSIfy and KNF function arg definitions in libmd/md4.cReported by: bde, in 2017
Update Makefile.depend filesUpdate a bunch of Makefile.depend files asa result of adding Makefile.depend.options filesReviewed by: bdreweryMFC after: 1 weekSponsored by: Juniper NetworksDi
Update Makefile.depend filesUpdate a bunch of Makefile.depend files asa result of adding Makefile.depend.options filesReviewed by: bdreweryMFC after: 1 weekSponsored by: Juniper NetworksDifferential Revision: https://reviews.freebsd.org/D22494
pkgbase: Put a lot of binaries and lib in FreeBSD-runtimeAll of them are needed to be able to boot to single user and be ableto repair a existing FreeBSD installation so put them directly intoFre
pkgbase: Put a lot of binaries and lib in FreeBSD-runtimeAll of them are needed to be able to boot to single user and be ableto repair a existing FreeBSD installation so put them directly intoFreeBSD-runtime.Reviewed by: bapt, gjbDifferential Revision: https://reviews.freebsd.org/D21503
sha.3: clarify admonition against use in NEW signature schemesReported by: cem, cperciva (grammar)
Add admonitions against using MD5 and SHA1 to the API man pages
Add missing errors section to md[2-5], ripemd160, sha*, and skein* manpagesPR: 148987Submitted by: Dan Lukes <[email protected]> (original version)MFC after: 1 weekSponsored by: Klara SystemsEvent
Add missing errors section to md[2-5], ripemd160, sha*, and skein* manpagesPR: 148987Submitted by: Dan Lukes <[email protected]> (original version)MFC after: 1 weekSponsored by: Klara SystemsEvent: Waterloo Hackathon 2019
r338270 had the side effect of no longer installing libmd.so into /lib.For users who have a seperate zfs mount of /usr or /usr/lib, this willcause dynamic loading failures when attempting to execut
r338270 had the side effect of no longer installing libmd.so into /lib.For users who have a seperate zfs mount of /usr or /usr/lib, this willcause dynamic loading failures when attempting to execute zfs mount onbootup. E.g. the system won't boot.Including <src.opts.mk> sets SHLIBDIR, so SHLIBDIR?= has noeffect. The other lib/ Makefiles solve this problem by moving theSHLIBDIR assignment to before .include <src.opts.mk>.Submitted by: jillesReviewed by: allanjudeApproved by: re (rgrimes)Differential Revision: https://reviews.freebsd.org/D16910
Don't build skein_block_asm.s if we don't have an as binaryThis fixes building libmd on MacOS/Linux. The real fix is probably tobuild it as a .S file with $CC instead. It might also be better to j
Don't build skein_block_asm.s if we don't have an as binaryThis fixes building libmd on MacOS/Linux. The real fix is probably tobuild it as a .S file with $CC instead. It might also be better to justcompile the C file in userspace since the compiler can the use SSE/AVX.Reviewed By: emaste, brooksApproved By: jhb (mentor)Differential Revision: https://reviews.freebsd.org/D16844
Allow bootstrapping libmd on MacOSThe assembly files use directives that only work for ELF targets so skipthem when bootstrapping on MacOS.Reviewed By: impApproved By: jhb (mentor)Differential
Allow bootstrapping libmd on MacOSThe assembly files use directives that only work for ELF targets so skipthem when bootstrapping on MacOS.Reviewed By: impApproved By: jhb (mentor)Differential Revision: https://reviews.freebsd.org/D14247
libmd: Always erase context in _Final method, and when doingit, consistently use explicit_bzero().Update manual pages to match the behavior.Reviewed by: pfg, allanjude, jmgMFC after: 1 monthDi
libmd: Always erase context in _Final method, and when doingit, consistently use explicit_bzero().Update manual pages to match the behavior.Reviewed by: pfg, allanjude, jmgMFC after: 1 monthDifferential Revision: https://reviews.freebsd.org/D16316
Integrate SHA2-224 with userspace componentsThe double compilation of the kernel sources in libmd and libcrypt isbaffling, but add yet another define hack to prevent duplicate symbols.Add docume
Integrate SHA2-224 with userspace componentsThe double compilation of the kernel sources in libmd and libcrypt isbaffling, but add yet another define hack to prevent duplicate symbols.Add documentation and SHA2-224 test cases to libmd.Integrate with the md5(1) command, document, and add more test cases;self-tests pass.
Revert r334090.It causes the 32bit compat build of libmd to fail with:libmd/rmd160c.c:86:9: error: 'ripemd160_block' macro redefined#define ripemd160_block ripemd160_block_x86 ^libmd/ri
Revert r334090.It causes the 32bit compat build of libmd to fail with:libmd/rmd160c.c:86:9: error: 'ripemd160_block' macro redefined#define ripemd160_block ripemd160_block_x86 ^libmd/ripemd.h:122:9: note: previous definition is here#define ripemd160_block _libmd_ripemd160_block
libmd: build with WARNS=1- build with WARNS=1. This works without any changes- remove two unused variables noticed at WARNS=2
libmd: Remove trailing whitespace from mdXhl.cNo functional change.Reported by: me, in a CR from three years ago todaySponsored by: Dell EMC Isilon
Fix formatting errors that resulted in apropos(1) output looking weird.MFC after: 2 weeks
1234567