_______________________________________________Attempting to build Wireguard on a Raspberry Pi will result in an assembly error
Error: immediate expression requires a # prefix -- `moveq r5,1'
(the full build error log can be found here: https://pastebin.com/CKTXwGyG)
Appending # to the values and telling ARM to treat them as literals solves the issue.
I was able to test this patch out on my own Raspberry Pi 3B+ and can confirm the resulting build is successfully able to build, create the wg0 interface, generate a private key, connect to a peer, and send encrypted messages back and forth.
justw and revel assisted in providing the fix via the Wireguard irc channel.
curve25519: arm: Compile on Raspi diff --git a/src/crypto/curve25519-arm.S b/src/crypto/curve25519-arm.S index cb40c24..f9d50e9 100644 --- a/src/crypto/curve25519-arm.S +++ b/src/crypto/curve25519-arm.S @@ -1554,35 +1554,35 @@ ENTRY(curve25519_neon) movw r4, 0 movw r5, 2 cmp r1, #1 - moveq r5, 1 + moveq r5, #1 addeq r2, r3, #336 addeq r4, r3, #48 cmp r1, #2 - moveq r5, 1 + moveq r5, #1 addeq r2, r3, #48 cmp r1, #3 - moveq r5, 5 + moveq r5, #5 addeq r4, r3, #336 cmp r1, #4 - moveq r5, 10 + moveq r5, #10 cmp r1, #5 - moveq r5, 20 + moveq r5, #20 cmp r1, #6 - moveq r5, 10 + moveq r5, #10 addeq r2, r3, #336 addeq r4, r3, #336 cmp r1, #7 - moveq r5, 50 + moveq r5, #50 cmp r1, #8 - moveq r5, 100 + moveq r5, #100 cmp r1, #9 - moveq r5, 50 + moveq r5, #50 addeq r2, r3, #336 cmp r1, #10 - moveq r5, 5 + moveq r5, #5 addeq r2, r3, #48 cmp r1, #11 - moveq r5, 0 + moveq r5, #0 addeq r2, r3, #96 add r6, r3, #144 add r7, r3, #288
WireGuard mailing list
WireGuard@lists.zx2c4.com
https://lists.zx2c4.com/mailman/listinfo/wireguard