[PATCH] D62059: [ELF] Don't align PT_TLS's p_memsz
Fangrui Song via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Fri May 17 04:17:28 PDT 2019
MaskRay created this revision.
MaskRay added reviewers: peter.smith, ruiu, rprichard.
Herald added subscribers: llvm-commits, kristof.beyls, arichardson, javed.absar, emaste.
Herald added a reviewer: espindola.
Herald added a project: LLVM.
The code was added in r252352, probably to address some layout
issues. Actually PT_TLS's p_memsz doesn't need to be aligned. ld.bfd
doesn't do that.
In case of larger alignment (e.g. 64 for Android Bionic on AArch64, see
D62055 <https://reviews.llvm.org/D62055>), this may make the overhead much smaller.
Repository:
rLLD LLVM Linker
https://reviews.llvm.org/D62059
Files:
ELF/Writer.cpp
test/ELF/tls-align.s
Index: test/ELF/tls-align.s
===================================================================
--- test/ELF/tls-align.s
+++ /dev/null
@@ -1,21 +0,0 @@
-// REQUIRES: x86
-// RUN: llvm-mc -filetype=obj -triple=x86_64-unknown-linux %s -o %t
-// RUN: ld.lld %t -o %tout -shared
-// RUN: llvm-readobj -l %tout | FileCheck %s
-
- .section .tbss,"awT", at nobits
- .align 8
- .long 0
-
-// CHECK: ProgramHeader {
-// CHECK: Type: PT_TLS
-// CHECK-NEXT: Offset:
-// CHECK-NEXT: VirtualAddress:
-// CHECK-NEXT: PhysicalAddress:
-// CHECK-NEXT: FileSize: 0
-// CHECK-NEXT: MemSize: 8
-// CHECK-NEXT: Flags [
-// CHECK-NEXT: PF_R (0x4)
-// CHECK-NEXT: ]
-// CHECK-NEXT: Alignment: 8
-// CHECK-NEXT: }
Index: ELF/Writer.cpp
===================================================================
--- ELF/Writer.cpp
+++ ELF/Writer.cpp
@@ -2202,11 +2202,6 @@
// done on other operating systems.
P->p_align = std::max<uint64_t>(P->p_align, Config->Wordsize * 8);
}
-
- // The TLS pointer goes after PT_TLS for variant 2 targets. At least glibc
- // will align it, so round up the size to make sure the offsets are
- // correct.
- P->p_memsz = alignTo(P->p_memsz, P->p_align);
}
}
}
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D62059.200017.patch
Type: text/x-patch
Size: 1278 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20190517/f036ddd6/attachment.bin>
More information about the llvm-commits
mailing list