forked from OSchip/llvm-project
add alignment to .got/.got.plt/.plt sections & fix tests
llvm-svn: 174199
This commit is contained in:
parent
12d7800a9b
commit
d476528e3d
|
@ -134,6 +134,11 @@ public:
|
||||||
|
|
||||||
virtual ContentPermissions permissions() const { return permRW_; }
|
virtual ContentPermissions permissions() const { return permRW_; }
|
||||||
|
|
||||||
|
virtual Alignment alignment() const {
|
||||||
|
// Needs 8 byte alignment
|
||||||
|
return Alignment(3);
|
||||||
|
}
|
||||||
|
|
||||||
virtual ArrayRef<uint8_t> rawContent() const {
|
virtual ArrayRef<uint8_t> rawContent() const {
|
||||||
return ArrayRef<uint8_t>();
|
return ArrayRef<uint8_t>();
|
||||||
}
|
}
|
||||||
|
|
|
@ -48,6 +48,11 @@ public:
|
||||||
return ArrayRef<uint8_t>(_defaultContent, 8);
|
return ArrayRef<uint8_t>(_defaultContent, 8);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
virtual Alignment alignment() const {
|
||||||
|
// The alignment should be 8 byte aligned
|
||||||
|
return Alignment(3);
|
||||||
|
}
|
||||||
|
|
||||||
#ifndef NDEBUG
|
#ifndef NDEBUG
|
||||||
virtual StringRef name() const { return _name; }
|
virtual StringRef name() const { return _name; }
|
||||||
|
|
||||||
|
@ -84,6 +89,11 @@ public:
|
||||||
return ArrayRef<uint8_t>(_defaultContent, 16);
|
return ArrayRef<uint8_t>(_defaultContent, 16);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
virtual Alignment alignment() const {
|
||||||
|
// The alignment should be 4 byte aligned
|
||||||
|
return Alignment(2);
|
||||||
|
}
|
||||||
|
|
||||||
#ifndef NDEBUG
|
#ifndef NDEBUG
|
||||||
virtual StringRef name() const { return _name; }
|
virtual StringRef name() const { return _name; }
|
||||||
|
|
||||||
|
|
|
@ -5,7 +5,7 @@ RUN: lld -core -target x86_64-linux -emit-yaml -output=- %p/Inputs/ifunc.x86-64
|
||||||
RUN: %p/Inputs/ifunc.cpp.x86-64 | FileCheck %s --check-prefix=PLT
|
RUN: %p/Inputs/ifunc.cpp.x86-64 | FileCheck %s --check-prefix=PLT
|
||||||
|
|
||||||
RUN: lld -core -target x86_64-linux -output=%t %p/Inputs/ifunc.x86-64 \
|
RUN: lld -core -target x86_64-linux -output=%t %p/Inputs/ifunc.x86-64 \
|
||||||
RUN: %p/Inputs/ifunc.cpp.x86-64 && llvm-objdump -d %t| FileCheck %s \
|
RUN: -noinhibit-exec %p/Inputs/ifunc.cpp.x86-64 && llvm-objdump -d -s %t| FileCheck %s \
|
||||||
RUN: --check-prefix=BIN
|
RUN: --check-prefix=BIN
|
||||||
|
|
||||||
CHECK: name: hey
|
CHECK: name: hey
|
||||||
|
@ -33,6 +33,6 @@ PLT: kind: R_X86_64_PC32
|
||||||
|
|
||||||
// This is a horribly brittle test. We need a way to do arithmetic on captured
|
// This is a horribly brittle test. We need a way to do arithmetic on captured
|
||||||
// variables.
|
// variables.
|
||||||
BIN: 400136: ff 25 c4 0e 00 00 jumpq *3780(%rip)
|
BIN: 40011c: ff 25 de 0e 00 00 jmpq *3806(%rip)
|
||||||
BIN: .got.plt:
|
BIN: .got.plt:
|
||||||
BIN-NEXT: 401000 00000000 00000000
|
BIN-NEXT: 401000 00000000 00000000
|
||||||
|
|
Loading…
Reference in New Issue