Merge "Fix race in malloc debug option free_track."
diff --git a/libc/arch-mips/string/memset.S b/libc/arch-mips/string/memset.S
index dd94f3b..6344af1 100644
--- a/libc/arch-mips/string/memset.S
+++ b/libc/arch-mips/string/memset.S
@@ -208,7 +208,10 @@
 #else
 LEAF(__memset_chk)
 #endif
+	.set	noreorder
   bgtu   a2, a3, __memset_chk_fail
+  la     t9, __memset_chk_fail
+	.set	reorder
 
   // Fall through to memset...
 END(__memset_chk)
diff --git a/libm/Android.bp b/libm/Android.bp
index fb0e583..52249c9 100644
--- a/libm/Android.bp
+++ b/libm/Android.bp
@@ -172,6 +172,30 @@
     "upstream-freebsd/lib/msun/src/w_cabsl.c",
     "upstream-freebsd/lib/msun/src/w_drem.c",
     "upstream-freebsd/lib/msun/src/w_dremf.c",
+
+    // The FreeBSD complex functions appear to be better, but they're incomplete.
+    // We take the FreeBSD implementations when they exist, but fill out the rest
+    // of <complex.h> from NetBSD...
+    "upstream-netbsd/lib/libm/complex/cacoshl.c",
+    "upstream-netbsd/lib/libm/complex/cacosl.c",
+    "upstream-netbsd/lib/libm/complex/casinhl.c",
+    "upstream-netbsd/lib/libm/complex/casinl.c",
+    "upstream-netbsd/lib/libm/complex/catanhl.c",
+    "upstream-netbsd/lib/libm/complex/catanl.c",
+    "upstream-netbsd/lib/libm/complex/ccoshl.c",
+    "upstream-netbsd/lib/libm/complex/ccosl.c",
+    "upstream-netbsd/lib/libm/complex/cephes_subrl.c",
+    "upstream-netbsd/lib/libm/complex/cexpl.c",
+    "upstream-netbsd/lib/libm/complex/clog.c",
+    "upstream-netbsd/lib/libm/complex/clogf.c",
+    "upstream-netbsd/lib/libm/complex/clogl.c",
+    "upstream-netbsd/lib/libm/complex/cpow.c",
+    "upstream-netbsd/lib/libm/complex/cpowf.c",
+    "upstream-netbsd/lib/libm/complex/cpowl.c",
+    "upstream-netbsd/lib/libm/complex/csinhl.c",
+    "upstream-netbsd/lib/libm/complex/csinl.c",
+    "upstream-netbsd/lib/libm/complex/ctanhl.c",
+    "upstream-netbsd/lib/libm/complex/ctanl.c",
 ]
 
 libm_common_src_files += [
@@ -283,6 +307,7 @@
     name: "libm",
 
     cflags: libm_common_cflags,
+    conlyflags: ["-std=gnu11"],
     include_dirs: ["bionic/libc"],
     local_include_dirs: libm_common_local_includes,
     srcs: libm_common_src_files,