--- ocaml-4.11.0/asmcomp/emitaux.ml
+++ ocaml-4.11.0/asmcomp/emitaux.ml
@@ -268,6 +268,7 @@
     match rdbg with
     | [] -> assert false
     | d :: rest -> emit rs d rest in
+  a.efa_align Arch.size_addr;
   a.efa_word (List.length !frame_descriptors);
   List.iter emit_frame !frame_descriptors;
   Label_table.iter emit_debuginfo debuginfos;
--- ocaml-4.08.0/runtime/power.S
+++ ocaml-4.08.0/runtime/power.S
@@ -642,6 +642,7 @@ caml_system__code_end:
 /* Frame table */
 
         .section ".data"
+        .align  wordalign
         .globl  caml_system__frametable
         .type   caml_system__frametable, @object
 caml_system__frametable:
--- ocaml-4.11.0/configure.ac
+++ ocaml-4.11.0/configure.ac
@@ -1006,7 +1006,7 @@ AS_IF([test $arch != "none" && $arch64 ],
 # e.g. Ubuntu >= 17.10 for i386, which uses the glibc dynamic loader.
 
 AS_CASE([$arch],
-  [amd64|s390x|none],
+  [amd64|s390x|power|none],
     # ocamlopt generates PIC code or doesn't generate code at all
     [],
   [AS_CASE([$host],
--- ocaml-4.11.0/configure
+++ ocaml-4.11.0/configure
@@ -13886,7 +13886,7 @@
 # e.g. Ubuntu >= 17.10 for i386, which uses the glibc dynamic loader.
 
 case $arch in #(
-  amd64|s390x|none) :
+  amd64|s390x|power|none) :
     # ocamlopt generates PIC code or doesn't generate code at all
      ;; #(
   *) :
