linker: align allocated blocks to 16 bytes

C/C++ requires the result of malloc/new to be
aligned for any primitive type.

Change-Id: I715b7679e738f34b3b409993fb3ef242e1321b7f
diff --git a/linker/linker_allocator.cpp b/linker/linker_allocator.cpp
index 1b16cf1..76ec970 100644
--- a/linker/linker_allocator.cpp
+++ b/linker/linker_allocator.cpp
@@ -189,6 +189,8 @@
 }
 
 void LinkerSmallObjectAllocator::alloc_page() {
+  static_assert(sizeof(page_info) % 16 == 0,
+                "sizeof(page_info) is not multiple of 16");
   void* map_ptr = mmap(nullptr, PAGE_SIZE,
       PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, 0, 0);
   if (map_ptr == MAP_FAILED) {