<html>
  <head>

    <meta http-equiv="content-type" content="text/html; charset=utf-8">
  </head>
  <body text="#000000" bgcolor="#FFFFFF">
    <p>Attempting to build Wireguard on a Raspberry Pi will result in an
      assembly error <br>
    </p>
    <p>    Error: immediate expression requires a # prefix -- `moveq
      r5,1'</p>
    <p>(the full build error log can be found here:
      <a class="moz-txt-link-freetext" href="https://pastebin.com/CKTXwGyG">https://pastebin.com/CKTXwGyG</a>)<br>
    </p>
    <p>Appending # to the values and telling ARM to treat them as
      literals solves the issue.</p>
    <p>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.</p>
    <p>justw and revel assisted in providing the fix via the Wireguard
      irc channel.<br>
    </p>
    <p><br>
    </p>
    <pre style="color: rgb(0, 0, 0); font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-style: initial; text-decoration-color: initial;">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</pre>
  </body>
</html>