diff options
author | Rafael Espindola <rafael.espindola@gmail.com> | 2016-02-08 15:33:53 +0000 |
---|---|---|
committer | Rafael Espindola <rafael.espindola@gmail.com> | 2016-02-08 15:33:53 +0000 |
commit | a64f7d1148940ff55393298a3c61a651dea5b656 (patch) | |
tree | 19a0ebb948c0426e67dc5c2ce65200745f5a5a65 | |
parent | 529c27f4080e48f49b5c84281c3ab543867f7b66 (diff) | |
download | bcm5719-llvm-a64f7d1148940ff55393298a3c61a651dea5b656.tar.gz bcm5719-llvm-a64f7d1148940ff55393298a3c61a651dea5b656.zip |
Fix the alignment of PT_PHDR.
We were claiming it was aligned to 8 bytes even on 32 bit files, which
is not the case.
llvm-svn: 260102
-rw-r--r-- | lld/ELF/Writer.cpp | 3 | ||||
-rw-r--r-- | lld/test/ELF/basic-mips.s | 2 | ||||
-rw-r--r-- | lld/test/ELF/basic-ppc.s | 2 | ||||
-rw-r--r-- | lld/test/ELF/basic32.s | 2 |
4 files changed, 5 insertions, 4 deletions
diff --git a/lld/ELF/Writer.cpp b/lld/ELF/Writer.cpp index 2c362e7f428..71d774bb0e2 100644 --- a/lld/ELF/Writer.cpp +++ b/lld/ELF/Writer.cpp @@ -1187,7 +1187,8 @@ template <class ELFT> void Writer<ELFT>::assignAddresses() { size_t PhdrSize = sizeof(Elf_Phdr) * Phdrs.size(); // The first phdr entry is PT_PHDR which describes the program header itself. - setPhdr(&Phdrs[0], PT_PHDR, PF_R, FileOff, VA, PhdrSize, /*Align=*/8); + setPhdr(&Phdrs[0], PT_PHDR, PF_R, FileOff, VA, PhdrSize, + /*Align=*/sizeof(uintX_t)); FileOff += PhdrSize; VA += PhdrSize; diff --git a/lld/test/ELF/basic-mips.s b/lld/test/ELF/basic-mips.s index 7b2ef564f1c..75c44ef3da3 100644 --- a/lld/test/ELF/basic-mips.s +++ b/lld/test/ELF/basic-mips.s @@ -216,7 +216,7 @@ __start: # CHECK-NEXT: Flags [ (0x4) # CHECK-NEXT: PF_R (0x4) # CHECK-NEXT: ] -# CHECK-NEXT: Alignment: 8 +# CHECK-NEXT: Alignment: 4 # CHECK-NEXT: } # CHECK-NEXT: ProgramHeader { # CHECK-NEXT: Type: PT_LOAD (0x1) diff --git a/lld/test/ELF/basic-ppc.s b/lld/test/ELF/basic-ppc.s index 90acd8d8dda..1dc58227eaf 100644 --- a/lld/test/ELF/basic-ppc.s +++ b/lld/test/ELF/basic-ppc.s @@ -215,7 +215,7 @@ // CHECK-NEXT: Flags [ (0x4) // CHECK-NEXT: PF_R (0x4) // CHECK-NEXT: ] -// CHECK-NEXT: Alignment: 8 +// CHECK-NEXT: Alignment: 4 // CHECK-NEXT: } // CHECK-NEXT: ProgramHeader { // CHECK-NEXT: Type: PT_LOAD (0x1) diff --git a/lld/test/ELF/basic32.s b/lld/test/ELF/basic32.s index f4f9c410a04..0ec73eee966 100644 --- a/lld/test/ELF/basic32.s +++ b/lld/test/ELF/basic32.s @@ -120,7 +120,7 @@ _start: # CHECK-NEXT: Flags [ (0x4) # CHECK-NEXT: PF_R (0x4) # CHECK-NEXT: ] -# CHECK-NEXT: Alignment: 8 +# CHECK-NEXT: Alignment: 4 # CHECK-NEXT: } # CHECK-NEXT: ProgramHeader { # CHECK-NEXT: Type: PT_LOAD (0x1) |