--- /dev/null
+--- a/main/utils.c
++++ b/main/utils.c
+@@ -1632,7 +1632,7 @@ ast_string_field __ast_string_field_allo
+ }
+
+ result = (*pool_head)->base + (*pool_head)->used;
+-#ifdef __sparc__
++#if defined(__sparc__) || defined(__mips__) || defined(__arm__)
+ /* SPARC requires that the allocation field be aligned. */
+ if ((long) result % sizeof(ast_string_field_allocation)) {
+ result++;
+@@ -1713,7 +1713,7 @@ void __ast_string_field_ptr_build_va(str
+ }
+ } else {
+ target = (*pool_head)->base + (*pool_head)->used + sizeof(ast_string_field_allocation);
+-#ifdef __sparc__
++#if defined(__sparc__) || defined(__mips__) || defined(__arm__)
+ if ((long) target % sizeof(ast_string_field_allocation)) {
+ target++;
+ space--;