Fix the order of section that are not on an order file.

They were being placed before sections that were listed.

llvm-svn: 309391
This commit is contained in:
Rafael Espindola 2017-07-28 15:36:15 +00:00
parent 6b5851bb4a
commit d21ac10f6d
2 changed files with 22 additions and 1 deletions

View File

@ -291,7 +291,7 @@ bool OutputSection::classof(const BaseCommand *C) {
}
void OutputSection::sort(std::function<int(InputSectionBase *S)> Order) {
typedef std::pair<unsigned, InputSection *> Pair;
typedef std::pair<int, InputSection *> Pair;
auto Comp = [](const Pair &A, const Pair &B) { return A.first < B.first; };
std::vector<Pair> V;

View File

@ -0,0 +1,21 @@
# REQUIRES: x86
# RUN: llvm-mc -filetype=obj -triple=x86_64-pc-linux %s -o %t.o
# RUN: echo "bar" > %t.order
# RUN: ld.lld --symbol-ordering-file %t.order -shared %t.o -o %t.so
# RUN: llvm-nm %t.so | FileCheck %s
# CHECK: 0000000000002000 d _DYNAMIC
# CHECK-NEXT: 0000000000001000 T bar
# CHECK-NEXT: 0000000000001004 T foo
.section .text.foo,"ax",@progbits
.align 4
.global foo
foo:
retq
.section .text.bar,"ax",@progbits
.align 4
.global bar
bar:
retq