Gocryptfs fails to build on RISC-V
./build.bash
go: downloading golang.org/x/sys v0.0.0-20200501145240-bc7a7d42d5c3
go: downloading github.com/hanwen/go-fuse v1.0.0
go: downloading golang.org/x/crypto v0.0.0-20200429183012-4b2356b1ed79
go: downloading github.com/sabhiram/go-gitignore v0.0.0-20180611051255-d3107576ba94
go: downloading github.com/jacobsa/crypto v0.0.0-20190317225127-9f44e2d11115
go: downloading github.com/rfjakob/eme v1.1.1
go: downloading github.com/hanwen/go-fuse/v2 v2.1.1-0.20210508151621-62c5aa1919a7
# github.com/jacobsa/crypto/cmac
../../../../pkg/mod/github.com/jacobsa/crypto@v0.0.0-20190317225127-9f44e2d11115/cmac/hash.go:97:3: undefined: xorBlock
make: *** [Makefile:3: build] Error 2
Relevant function seems to be here, https://github.com/jacobsa/crypto/blob/master/cmac/hash_64bit.go#L16
https://stackoverflow.com/questions/64748879/risc-v-load-address-not-aligned-to-word-boundary talks a bit about what that function has in the comments:
The base ISA supports misaligned accesses, but these might run extremely slowly depending on the implementation. Furthermore, naturally aligned loads and stores are guaranteed to execute atomically, whereas misaligned loads and stores might not, and hence require additional synchronization to ensure atomicity."The base ISA supports misaligned accesses, but these might run extremely slowly depending on the implementation. Furthermore, naturally aligned loads and stores are guaranteed to execute atomically, whereas misaligned loads and stores might not, and hence require additional synchronization to ensure atomicity.