X-Git-Url: http://git.efficios.com/?a=blobdiff_plain;f=elfcpp%2Fx86_64.h;h=a6ced0ed35d7adb7986cbdd9abd27cf32462dd5a;hb=338435ef105ff51e967571ad073830ec1eb5a4ab;hp=fe2d1d6ce0356ed7fe845372a761ed38887776de;hpb=6cb15b7f89d59fb61780b01ad3de2340f33c3728;p=deliverable%2Fbinutils-gdb.git diff --git a/elfcpp/x86_64.h b/elfcpp/x86_64.h index fe2d1d6ce0..a6ced0ed35 100644 --- a/elfcpp/x86_64.h +++ b/elfcpp/x86_64.h @@ -1,7 +1,7 @@ // x86-64.h -- ELF definitions specific to EM_X86_64 -*- C++ -*- -// Copyright 2006, 2007, Free Software Foundation, Inc. -// Written by Andrew Chatham . +// Copyright (C) 2006-2016 Free Software Foundation, Inc. +// Written by Andrew Chatham. // This file is part of elfcpp. @@ -35,7 +35,13 @@ namespace elfcpp { -// Taken from http://www.x86-64.org/documentation/abi-0.98.pdf and elf.h +// Documentation is taken from +// http://www.x86-64.org/documentation/abi-0.98.pdf +// elf.h +// Documentation for the TLS relocs is taken from +// http://people.redhat.com/drepper/tls.pdf +// http://www.lsd.ic.unicamp.br/~oliva/writeups/TLS/RFC-TLSDESC-x86.txt + enum { R_X86_64_NONE = 0, // No reloc @@ -84,9 +90,17 @@ enum R_X86_64_GOTPC32_TLSDESC = 34, // 32-bit PC relative to TLS descriptor in GOT R_X86_64_TLSDESC_CALL = 35, // Relaxable call through TLS descriptor R_X86_64_TLSDESC = 36, // 2 by 64-bit TLS descriptor + R_X86_64_IRELATIVE = 37, // Adjust indirectly by program base + R_X86_64_RELATIVE64 = 38, // 64-bit adjust by program base + R_X86_64_PC32_BND = 39, // PC relative 32 bit signed with BND prefix + R_X86_64_PLT32_BND = 40, // 32 bit PLT address with BND prefix + R_X86_64_GOTPCRELX = 41, // 32 bit signed PC relative offset to GOT + // without REX prefix, relaxable. + R_X86_64_REX_GOTPCRELX = 42, // 32 bit signed PC relative offset to GOT + // with REX prefix, relaxable. // GNU vtable garbage collection extensions. - R_386_GNU_VTINHERIT = 250, - R_386_GNU_VTENTRY = 251 + R_X86_64_GNU_VTINHERIT = 250, + R_X86_64_GNU_VTENTRY = 251 }; } // End namespace elfcpp.