add alignment to .got/.got.plt/.plt sections & fix tests
authorShankar Easwaran <shankare@codeaurora.org>
Fri, 1 Feb 2013 18:03:32 +0000 (18:03 +0000)
committerShankar Easwaran <shankare@codeaurora.org>
Fri, 1 Feb 2013 18:03:32 +0000 (18:03 +0000)
llvm-svn: 174199

lld/lib/ReaderWriter/ELF/X86_64/X86_64TargetHandler.cpp
lld/lib/ReaderWriter/ELF/X86_64/X86_64TargetInfo.cpp
lld/test/elf/ifunc.test

index b6a57bc..f1debcc 100644 (file)
@@ -134,6 +134,11 @@ public:
 
   virtual ContentPermissions permissions() const { return permRW_; }
 
+  virtual Alignment alignment() const {
+    // Needs 8 byte alignment
+    return Alignment(3);
+  }
+
   virtual ArrayRef<uint8_t> rawContent() const {
     return ArrayRef<uint8_t>();
   }
index ead1277..7a3e0ca 100644 (file)
@@ -48,6 +48,11 @@ public:
     return ArrayRef<uint8_t>(_defaultContent, 8);
   }
 
+  virtual Alignment alignment() const {
+    // The alignment should be 8 byte aligned
+    return Alignment(3);
+  }
+
 #ifndef NDEBUG
   virtual StringRef name() const { return _name; }
 
@@ -84,6 +89,11 @@ public:
     return ArrayRef<uint8_t>(_defaultContent, 16);
   }
 
+  virtual Alignment alignment() const {
+    // The alignment should be 4 byte aligned
+    return Alignment(2);
+  }
+
 #ifndef NDEBUG
   virtual StringRef name() const { return _name; }
 
index e1a5d7b..a53a5b5 100644 (file)
@@ -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: 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
 
 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
 // 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-NEXT: 401000 00000000 00000000