Record the alignment of the output sections.

llvm-svn: 244941
diff --git a/lld/ELF/Writer.cpp b/lld/ELF/Writer.cpp
index 7994d0c..8f167ad 100644
--- a/lld/ELF/Writer.cpp
+++ b/lld/ELF/Writer.cpp
@@ -120,8 +120,12 @@
 
 template <bool Is64Bits> void OutputSection<Is64Bits>::addChunk(Chunk *C) {
   Chunks.push_back(C);
+  uint32_t Align = C->getAlign();
+  if (Align > Header.sh_addralign)
+    Header.sh_addralign = Align;
+
   uintX_t Off = Header.sh_size;
-  Off = RoundUpToAlignment(Off, C->getAlign());
+  Off = RoundUpToAlignment(Off, Align);
   C->setOutputSectionOff(Off);
   Off += C->getSize();
   Header.sh_size = Off;