diff --git a/libc/arch-common/bionic/asm_multiarch.h b/libc/arch-common/bionic/asm_multiarch.h
index 32c7e5b..85e1b57 100644
--- a/libc/arch-common/bionic/asm_multiarch.h
+++ b/libc/arch-common/bionic/asm_multiarch.h
@@ -28,9 +28,9 @@
 
 #ifdef __LP64__
 # define ASM_PTR_SIZE(x) .quad x
-# define ASM_ALIGN(x)    .align 4
+# define ASM_ALIGN(x)
 #else
 # define ASM_PTR_SIZE(x) .long x
-# define ASM_ALIGN(x)
+# define ASM_ALIGN(x)    .align x
 #endif
 
diff --git a/libc/bionic/__fgets_chk.cpp b/libc/bionic/__fgets_chk.cpp
index 429eda5..32b608e 100644
--- a/libc/bionic/__fgets_chk.cpp
+++ b/libc/bionic/__fgets_chk.cpp
@@ -49,7 +49,7 @@
     }
 
     if (((size_t) supplied_size) > dest_len_from_compiler) {
-        __fortify_chk_fail("fgets buffer overflow", 0);
+        __fortify_chk_fail("fgets buffer overflow prevented", 0);
     }
 
     return fgets(dest, supplied_size, stream);
diff --git a/libc/bionic/__memcpy_chk.cpp b/libc/bionic/__memcpy_chk.cpp
index a3d744c..b95a0d7 100644
--- a/libc/bionic/__memcpy_chk.cpp
+++ b/libc/bionic/__memcpy_chk.cpp
@@ -46,7 +46,7 @@
               size_t copy_amount, size_t dest_len)
 {
     if (__predict_false(copy_amount > dest_len)) {
-        __fortify_chk_fail("memcpy buffer overflow",
+        __fortify_chk_fail("memcpy buffer overflow prevented",
                              BIONIC_EVENT_MEMCPY_BUFFER_OVERFLOW);
     }
 
diff --git a/libc/bionic/__memmove_chk.cpp b/libc/bionic/__memmove_chk.cpp
index 49a0597..5f51139 100644
--- a/libc/bionic/__memmove_chk.cpp
+++ b/libc/bionic/__memmove_chk.cpp
@@ -45,7 +45,7 @@
               size_t len, size_t dest_len)
 {
     if (__predict_false(len > dest_len)) {
-        __fortify_chk_fail("memmove buffer overflow",
+        __fortify_chk_fail("memmove buffer overflow prevented",
                              BIONIC_EVENT_MEMMOVE_BUFFER_OVERFLOW);
     }
 
diff --git a/libc/bionic/__memset_chk.cpp b/libc/bionic/__memset_chk.cpp
index f7a5f24..04c772b 100644
--- a/libc/bionic/__memset_chk.cpp
+++ b/libc/bionic/__memset_chk.cpp
@@ -43,7 +43,7 @@
  */
 extern "C" void *__memset_chk (void *dest, int c, size_t n, size_t dest_len) {
     if (__predict_false(n > dest_len)) {
-        __fortify_chk_fail("memset buffer overflow",
+        __fortify_chk_fail("memset buffer overflow prevented",
                              BIONIC_EVENT_MEMSET_BUFFER_OVERFLOW);
     }
 
diff --git a/libc/bionic/__recvfrom_chk.cpp b/libc/bionic/__recvfrom_chk.cpp
index 10a4263..3a9dab6 100644
--- a/libc/bionic/__recvfrom_chk.cpp
+++ b/libc/bionic/__recvfrom_chk.cpp
@@ -37,7 +37,7 @@
         const struct sockaddr* src_addr, socklen_t* addrlen)
 {
   if (__predict_false(len > buflen)) {
-    __fortify_chk_fail("recvfrom overflow", 0);
+    __fortify_chk_fail("recvfrom buffer overflow prevented", 0);
   }
 
   return recvfrom(socket, buf, len, flags, src_addr, addrlen);
diff --git a/libc/bionic/__strcat_chk.cpp b/libc/bionic/__strcat_chk.cpp
index e0b3259..37ecfe6 100644
--- a/libc/bionic/__strcat_chk.cpp
+++ b/libc/bionic/__strcat_chk.cpp
@@ -55,7 +55,7 @@
     while ((*dest++ = *src++) != '\0') {
         dest_buf_size--;
         if (__predict_false(dest_buf_size == 0)) {
-            __fortify_chk_fail("strcat buffer overflow",
+            __fortify_chk_fail("strcat buffer overflow prevented",
                                BIONIC_EVENT_STRCAT_BUFFER_OVERFLOW);
         }
     }
diff --git a/libc/bionic/__strchr_chk.cpp b/libc/bionic/__strchr_chk.cpp
index 72559bc..87d8893 100644
--- a/libc/bionic/__strchr_chk.cpp
+++ b/libc/bionic/__strchr_chk.cpp
@@ -33,7 +33,7 @@
 extern "C" char* __strchr_chk(const char* p, int ch, size_t s_len) {
   for (;; ++p, s_len--) {
     if (__predict_false(s_len == 0)) {
-      __fortify_chk_fail("read beyond buffer", 0);
+      __fortify_chk_fail("strchr buffer overrun prevented", 0);
     }
     if (*p == static_cast<char>(ch)) {
       return const_cast<char*>(p);
diff --git a/libc/bionic/__strcpy_chk.cpp b/libc/bionic/__strcpy_chk.cpp
index 5aa0e93..e92e539 100644
--- a/libc/bionic/__strcpy_chk.cpp
+++ b/libc/bionic/__strcpy_chk.cpp
@@ -45,7 +45,7 @@
     // TODO: optimize so we don't scan src twice.
     size_t src_len = strlen(src) + 1;
     if (__predict_false(src_len > dest_len)) {
-        __fortify_chk_fail("strcpy buffer overflow",
+        __fortify_chk_fail("strcpy buffer overflow prevented",
                              BIONIC_EVENT_STRCPY_BUFFER_OVERFLOW);
     }
 
diff --git a/libc/bionic/__strlcat_chk.cpp b/libc/bionic/__strlcat_chk.cpp
index 25c67ad..5f97093 100644
--- a/libc/bionic/__strlcat_chk.cpp
+++ b/libc/bionic/__strlcat_chk.cpp
@@ -46,7 +46,7 @@
               size_t supplied_size, size_t dest_len_from_compiler)
 {
     if (__predict_false(supplied_size > dest_len_from_compiler)) {
-        __fortify_chk_fail("strlcat buffer overflow", 0);
+        __fortify_chk_fail("strlcat buffer overflow prevented", 0);
     }
 
     return strlcat(dest, src, supplied_size);
diff --git a/libc/bionic/__strlcpy_chk.cpp b/libc/bionic/__strlcpy_chk.cpp
index f6b11fc..a6877eb 100644
--- a/libc/bionic/__strlcpy_chk.cpp
+++ b/libc/bionic/__strlcpy_chk.cpp
@@ -46,7 +46,7 @@
               size_t supplied_size, size_t dest_len_from_compiler)
 {
     if (__predict_false(supplied_size > dest_len_from_compiler)) {
-        __fortify_chk_fail("strlcpy buffer overflow", 0);
+        __fortify_chk_fail("strlcpy buffer overflow prevented", 0);
     }
 
     return strlcpy(dest, src, supplied_size);
diff --git a/libc/bionic/__strlen_chk.cpp b/libc/bionic/__strlen_chk.cpp
index 151a497..87be0e6 100644
--- a/libc/bionic/__strlen_chk.cpp
+++ b/libc/bionic/__strlen_chk.cpp
@@ -57,7 +57,7 @@
     size_t ret = strlen(s);
 
     if (__predict_false(ret >= s_len)) {
-        __fortify_chk_fail("strlen read overflow", 0);
+        __fortify_chk_fail("strlen buffer overrun prevented", 0);
     }
 
     return ret;
diff --git a/libc/bionic/__strncat_chk.cpp b/libc/bionic/__strncat_chk.cpp
index f54d838..4f4b327 100644
--- a/libc/bionic/__strncat_chk.cpp
+++ b/libc/bionic/__strncat_chk.cpp
@@ -59,7 +59,7 @@
         len--; dest_buf_size--;
 
         if (__predict_false(dest_buf_size == 0)) {
-            __fortify_chk_fail("strncat buffer overflow",
+            __fortify_chk_fail("strncat buffer overflow prevented",
                                BIONIC_EVENT_STRNCAT_BUFFER_OVERFLOW);
         }
 
diff --git a/libc/bionic/__strncpy_chk.cpp b/libc/bionic/__strncpy_chk.cpp
index 6b1a3c7..d362b34 100644
--- a/libc/bionic/__strncpy_chk.cpp
+++ b/libc/bionic/__strncpy_chk.cpp
@@ -45,7 +45,7 @@
               size_t len, size_t dest_len)
 {
   if (__predict_false(len > dest_len)) {
-    __fortify_chk_fail("strncpy dest buffer overflow",
+    __fortify_chk_fail("strncpy dest buffer overflow prevented",
                        BIONIC_EVENT_STRNCPY_BUFFER_OVERFLOW);
   }
 
@@ -64,7 +64,7 @@
               size_t n, size_t dest_len, size_t src_len)
 {
   if (__predict_false(n > dest_len)) {
-    __fortify_chk_fail("strncpy dest buffer overflow",
+    __fortify_chk_fail("strncpy dest buffer overflow prevented",
                        BIONIC_EVENT_STRNCPY_BUFFER_OVERFLOW);
   }
   if (n != 0) {
@@ -83,7 +83,7 @@
 
     size_t s_copy_len = static_cast<size_t>(s - src);
     if (__predict_false(s_copy_len > src_len)) {
-      __fortify_chk_fail("strncpy read beyond end of src buffer", 0);
+      __fortify_chk_fail("strncpy buffer overrun prevented", 0);
     }
   }
 
diff --git a/libc/bionic/__strrchr_chk.cpp b/libc/bionic/__strrchr_chk.cpp
index 14100f7..2bdf36a 100644
--- a/libc/bionic/__strrchr_chk.cpp
+++ b/libc/bionic/__strrchr_chk.cpp
@@ -37,7 +37,7 @@
 
     for (save = NULL;; ++p, s_len--) {
         if (s_len == 0)
-            __fortify_chk_fail("strrchr read beyond buffer", 0);
+            __fortify_chk_fail("strrchr read overrun prevented", 0);
         if (*p == (char) ch)
             save = (char *)p;
         if (!*p)
diff --git a/libc/bionic/__vsnprintf_chk.cpp b/libc/bionic/__vsnprintf_chk.cpp
index 2d3a81e..731f9c5 100644
--- a/libc/bionic/__vsnprintf_chk.cpp
+++ b/libc/bionic/__vsnprintf_chk.cpp
@@ -51,7 +51,7 @@
         va_list va)
 {
     if (__predict_false(supplied_size > dest_len_from_compiler)) {
-        __fortify_chk_fail("vsnprintf buffer overflow", 0);
+        __fortify_chk_fail("vsnprintf buffer overflow prevented", 0);
     }
 
     return vsnprintf(dest, supplied_size, format, va);
diff --git a/libc/bionic/__vsprintf_chk.cpp b/libc/bionic/__vsprintf_chk.cpp
index 12b0ca6..560f12e 100644
--- a/libc/bionic/__vsprintf_chk.cpp
+++ b/libc/bionic/__vsprintf_chk.cpp
@@ -52,7 +52,7 @@
     int ret = vsnprintf(dest, dest_len_from_compiler, format, va);
 
     if ((size_t) ret >= dest_len_from_compiler) {
-        __fortify_chk_fail("vsprintf buffer overflow", 0);
+        __fortify_chk_fail("vsprintf buffer overflow prevented", 0);
     }
 
     return ret;
