summaryrefslogtreecommitdiffstats
path: root/llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldELF.h
diff options
context:
space:
mode:
authorTim Northover <Tim.Northover@arm.com>2012-10-29 10:47:04 +0000
committerTim Northover <Tim.Northover@arm.com>2012-10-29 10:47:04 +0000
commit94bc73d3d1eb584bf5a8e715aac21a6cb1811500 (patch)
treed4af2d72bdc740d19fef73d65d339004a51a281f /llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldELF.h
parent4f223bf7c484c1cf84b43ecd39b4f5a0f2f41053 (diff)
downloadbcm5719-llvm-94bc73d3d1eb584bf5a8e715aac21a6cb1811500.tar.gz
bcm5719-llvm-94bc73d3d1eb584bf5a8e715aac21a6cb1811500.zip
Make use of common-symbol alignment info in ELF loader.
Patch by Amara Emerson. llvm-svn: 166919
Diffstat (limited to 'llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldELF.h')
-rw-r--r--llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldELF.h14
1 files changed, 13 insertions, 1 deletions
diff --git a/llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldELF.h b/llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldELF.h
index 6c31f0dc122..cbdc0dbc6b7 100644
--- a/llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldELF.h
+++ b/llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldELF.h
@@ -18,8 +18,18 @@
using namespace llvm;
-
namespace llvm {
+
+namespace {
+ // Helper for extensive error checking in debug builds.
+ error_code Check(error_code Err) {
+ if (Err) {
+ report_fatal_error(Err.message());
+ }
+ return Err;
+ }
+} // end anonymous namespace
+
class RuntimeDyldELF : public RuntimeDyldImpl {
protected:
void resolveX86_64Relocation(uint8_t *LocalAddress,
@@ -64,6 +74,8 @@ protected:
const SymbolTableMap &Symbols,
StubMap &Stubs);
+ unsigned getCommonSymbolAlignment(const SymbolRef &Sym);
+
virtual ObjectImage *createObjectImage(ObjectBuffer *InputBuffer);
uint64_t findPPC64TOC() const;
OpenPOWER on IntegriCloud