musllibc: workaround -Os breaks memcpy on riscv32

When memcpy is built with -Os the use of __may_alias__ does not work
as intended; expressions like

typedef uint32_t __attribute__((__may_alias__)) u32;
x = *(u32 *)(s+2);

emit code that does the equivalent of: x = *(u32 *)(s+0);

This results in unaligned accesses that crash capdl-loader (when built
with ZF_LOG enabled). Workaround this by forcing CFLAGS_MEMOPS to include
-O3. This has minimal effect on the memory footprint:

$ diff /tmp/libc-sizes /tmp/libc-sizes-with-change
962,963c962,963
<      38             0       0      38      26 memcmp.o (ex libc.a)
<     866             0       0     866     362 memcpy.o (ex libc.a)

Change-Id: I012b30f90a85d73e919438ce3afde8f12616e630
---
>      36             0       0      36      24 memcmp.o (ex libc.a)
>    1008             0       0    1008     3f0 memcpy.o (ex libc.a)
965c965
<     238             0       0     238      ee memmove.o (ex libc.a)
---
>     396             0       0     396     18c memmove.o (ex libc.a)
968c968
<     186             0       0     186      ba memset.o (ex libc.a)
---
>     198             0       0     198      c6 memset.o (ex libc.a)

Change-Id: Ic47a075b830b0b2d0f66d8904f2cb461b904c5aa
diff --git a/configure b/configure
index 2373557..c1e7354 100755
--- a/configure
+++ b/configure
@@ -386,6 +386,11 @@
 #
 tryflag CFLAGS_MEMOPS -fno-tree-loop-distribute-patterns
 
+# HACK workaround for bug compiling memcpy with -Os (__may_alias__ has
+# no effect on rval's), override any -Os in CFLAGS_AUTO (we assume
+# CFLAGS_MEMOPS is last in the CFLAGS when building memcpy.o
+tryflag CFLAGS_MEMOPS -O3
+
 #
 # Enable debugging if requessted.
 #