[PATCH] D49351: [LLD] [COFF] Sort .relocs before all other discardable sections
Martin Storsjö via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Wed Jul 18 21:34:44 PDT 2018
mstorsjo updated this revision to Diff 156209.
mstorsjo added a comment.
Applied @pcc's suggestion
https://reviews.llvm.org/D49351
Files:
COFF/Writer.cpp
test/COFF/sort-debug.test
Index: test/COFF/sort-debug.test
===================================================================
--- test/COFF/sort-debug.test
+++ test/COFF/sort-debug.test
@@ -9,20 +9,20 @@
# RUN: llvm-readobj -sections %t.exe | FileCheck -check-prefix=NODEBUG %s
# CHECK: Name: .text
+# CHECK: Name: .reloc
# CHECK: Name: .debug_abbrev
# CHECK: Name: .debug_info
# CHECK: Name: .debug_line
# CHECK: Name: .debug_pubnames
# CHECK: Name: .debug_pubtypes
-# CHECK: Name: .reloc
# NODEBUG: Name: .text
+# NODEBUG: Name: .reloc
# NODEBUG-NOT: Name: .debug_abbrev
# NODEBUG-NOT: Name: .debug_info
# NODEBUG-NOT: Name: .debug_line
# NODEBUG-NOT: Name: .debug_pubnames
# NODEBUG-NOT: Name: .debug_pubtypes
-# NODEBUG: Name: .reloc
--- !COFF
header:
Index: COFF/Writer.cpp
===================================================================
--- COFF/Writer.cpp
+++ COFF/Writer.cpp
@@ -468,12 +468,9 @@
// Finally, move some output sections to the end.
auto SectionOrder = [&](OutputSection *S) {
- // .reloc should come last of all since it refers to RVAs of data in the
- // previous sections.
- if (S == RelocSec)
- return 3;
// Move DISCARDABLE (or non-memory-mapped) sections to the end of file because
- // the loader cannot handle holes.
+ // the loader cannot handle holes. Stripping can remove other discardable ones
+ // than .reloc, which is first of them (created early).
if (S->Header.Characteristics & IMAGE_SCN_MEM_DISCARDABLE)
return 2;
// .rsrc should come at the end of the non-discardable sections because its
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D49351.156209.patch
Type: text/x-patch
Size: 1583 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20180719/90974c0b/attachment.bin>
More information about the llvm-commits
mailing list