Changeset 32783


Ignore:
Timestamp:
2012-07-20T14:28:50+02:00 (6 years ago)
Author:
nbd
Message:

kernel: fix portability issues on the x86 specific relocs host tool, fixes build on mac os x

Location:
trunk
Files:
1 added
2 edited
1 copied

Legend:

Unmodified
Added
Removed
  • trunk/include/kernel-defaults.mk

    r32423 r32783  
    77 
    88KERNEL_MAKEOPTS := -C $(LINUX_DIR) \ 
     9        HOSTCFLAGS="$(HOST_CFLAGS) -Wall -Wmissing-prototypes -Wstrict-prototypes" \ 
    910        CROSS_COMPILE="$(KERNEL_CROSS)" \ 
    1011        ARCH="$(LINUX_KARCH)" \ 
  • trunk/toolchain/kernel-headers/Makefile

    r31697 r32783  
    3737 
    3838KMAKE := $(MAKE) -C $(HOST_BUILD_DIR) \ 
     39        HOSTCFLAGS="$(HOST_CFLAGS) -Wall -Wmissing-prototypes -Wstrict-prototypes" \ 
    3940        ARCH=$(LINUX_KARCH) \ 
    4041        CC="$(KERNEL_CC)" \ 
  • trunk/tools/include/elf.h

    r32782 r32783  
    11/* This file defines standard ELF types, structures, and macros. 
    2    Copyright (C) 1995-2003, 2004 Free Software Foundation, Inc. 
     2   Copyright (C) 1995-2012 Free Software Foundation, Inc. 
    33   This file is part of the GNU C Library. 
    44 
     
    1414 
    1515   You should have received a copy of the GNU Lesser General Public 
    16    License along with the GNU C Library; if not, write to the Free 
    17    Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 
    18    02111-1307 USA.  */ 
     16   License along with the GNU C Library; if not, see 
     17   <http://www.gnu.org/licenses/>.  */ 
    1918 
    2019#ifndef _ELF_H 
    2120#define _ELF_H 1 
    22  
    23 __BEGIN_DECLS 
    2421 
    2522/* Standard ELF types.  */ 
     
    140137#define ELFOSABI_HPUX           1       /* HP-UX */ 
    141138#define ELFOSABI_NETBSD         2       /* NetBSD.  */ 
    142 #define ELFOSABI_LINUX          3       /* Linux.  */ 
     139#define ELFOSABI_GNU            3       /* Object uses GNU ELF extensions.  */ 
     140#define ELFOSABI_LINUX          ELFOSABI_GNU /* Compatibility alias.  */ 
    143141#define ELFOSABI_SOLARIS        6       /* Sun Solaris.  */ 
    144142#define ELFOSABI_AIX            7       /* IBM AIX.  */ 
     
    148146#define ELFOSABI_MODESTO        11      /* Novell Modesto.  */ 
    149147#define ELFOSABI_OPENBSD        12      /* OpenBSD.  */ 
     148#define ELFOSABI_ARM_AEABI      64      /* ARM EABI */ 
    150149#define ELFOSABI_ARM            97      /* ARM */ 
    151150#define ELFOSABI_STANDALONE     255     /* Standalone (embedded) application */ 
     
    247246#define EM_ARC_A5       93              /* ARC Cores Tangent-A5 */ 
    248247#define EM_XTENSA       94              /* Tensilica Xtensa Architecture */ 
    249 #define EM_NUM          95 
     248#define EM_TILEPRO      188             /* Tilera TILEPro */ 
     249#define EM_TILEGX       191             /* Tilera TILE-Gx */ 
     250#define EM_NUM          192 
    250251 
    251252/* If it is necessary to assign new unofficial EM_* values, please 
     
    328329#define SHT_SYMTAB_SHNDX  18            /* Extended section indeces */ 
    329330#define SHT_NUM           19            /* Number of defined types.  */ 
    330 #define SHT_LOOS          0x60000000    /* Start OS-specific */ 
     331#define SHT_LOOS          0x60000000    /* Start OS-specific.  */ 
     332#define SHT_GNU_ATTRIBUTES 0x6ffffff5   /* Object attributes.  */ 
     333#define SHT_GNU_HASH      0x6ffffff6    /* GNU-style hash table.  */ 
    331334#define SHT_GNU_LIBLIST   0x6ffffff7    /* Prelink library list */ 
    332335#define SHT_CHECKSUM      0x6ffffff8    /* Checksum for DSO content.  */ 
     
    440443#define STB_NUM         3               /* Number of defined types.  */ 
    441444#define STB_LOOS        10              /* Start of OS-specific */ 
     445#define STB_GNU_UNIQUE  10              /* Unique symbol.  */ 
    442446#define STB_HIOS        12              /* End of OS-specific */ 
    443447#define STB_LOPROC      13              /* Start of processor-specific */ 
     
    455459#define STT_NUM         7               /* Number of defined types.  */ 
    456460#define STT_LOOS        10              /* Start of OS-specific */ 
     461#define STT_GNU_IFUNC   10              /* Symbol is indirect code object */ 
    457462#define STT_HIOS        12              /* End of OS-specific */ 
    458463#define STT_LOPROC      13              /* Start of processor-specific */ 
     
    551556  Elf64_Xword   p_align;                /* Segment alignment */ 
    552557} Elf64_Phdr; 
     558 
     559/* Special value for e_phnum.  This indicates that the real number of 
     560   program headers is too large to fit into e_phnum.  Instead the real 
     561   value is in the field sh_info of section 0.  */ 
     562 
     563#define PN_XNUM         0xffff 
    553564 
    554565/* Legal values for p_type (segment type).  */ 
     
    600611#define NT_LWPSTATUS    16              /* Contains copy of lwpstatus struct */ 
    601612#define NT_LWPSINFO     17              /* Contains copy of lwpinfo struct */ 
    602 #define NT_PRFPXREG     20              /* Contains copy of fprxregset struct*/ 
     613#define NT_PRFPXREG     20              /* Contains copy of fprxregset struct */ 
     614#define NT_PRXFPREG     0x46e62b7f      /* Contains copy of user_fxsr_struct */ 
     615#define NT_PPC_VMX      0x100           /* PowerPC Altivec/VMX registers */ 
     616#define NT_PPC_SPE      0x101           /* PowerPC SPE/EVR registers */ 
     617#define NT_PPC_VSX      0x102           /* PowerPC VSX registers */ 
     618#define NT_386_TLS      0x200           /* i386 TLS slots (struct user_desc) */ 
     619#define NT_386_IOPERM   0x201           /* x86 io permission bitmap (1=deny) */ 
     620#define NT_X86_XSTATE   0x202           /* x86 extended state using xsave */ 
    603621 
    604622/* Legal values for the note segment descriptor types for object files.  */ 
     
    698716   built these entries will need to be adjusted.  */ 
    699717#define DT_ADDRRNGLO    0x6ffffe00 
     718#define DT_GNU_HASH     0x6ffffef5      /* GNU-style hash table.  */ 
     719#define DT_TLSDESC_PLT  0x6ffffef6 
     720#define DT_TLSDESC_GOT  0x6ffffef7 
    700721#define DT_GNU_CONFLICT 0x6ffffef8      /* Start of conflict section */ 
    701722#define DT_GNU_LIBLIST  0x6ffffef9      /* Library list */ 
     
    708729#define DT_ADDRRNGHI    0x6ffffeff 
    709730#define DT_ADDRTAGIDX(tag)      (DT_ADDRRNGHI - (tag))  /* Reverse order! */ 
    710 #define DT_ADDRNUM 10 
     731#define DT_ADDRNUM 11 
    711732 
    712733/* The versioning entry types.  The next are defined as part of the 
     
    898919typedef struct 
    899920{ 
    900   int a_type;                   /* Entry type */ 
     921  uint32_t a_type;              /* Entry type */ 
    901922  union 
    902923    { 
    903       long int a_val;           /* Integer value */ 
    904       void *a_ptr;              /* Pointer value */ 
    905       void (*a_fcn) (void);     /* Function pointer value */ 
     924      uint32_t a_val;           /* Integer value */ 
     925      /* We use to have pointer elements added here.  We cannot do that, 
     926         though, since it does not work when using 32-bit definitions 
     927         on 64-bit platforms and vice versa.  */ 
    906928    } a_un; 
    907929} Elf32_auxv_t; 
     
    909931typedef struct 
    910932{ 
    911   long int a_type;              /* Entry type */ 
     933  uint64_t a_type;              /* Entry type */ 
    912934  union 
    913935    { 
    914       long int a_val;           /* Integer value */ 
    915       void *a_ptr;              /* Pointer value */ 
    916       void (*a_fcn) (void);     /* Function pointer value */ 
     936      uint64_t a_val;           /* Integer value */ 
     937      /* We use to have pointer elements added here.  We cannot do that, 
     938         though, since it does not work when using 32-bit definitions 
     939         on 64-bit platforms and vice versa.  */ 
    917940    } a_un; 
    918941} Elf64_auxv_t; 
     
    957980#define AT_SECURE       23              /* Boolean, was exec setuid-like?  */ 
    958981 
     982#define AT_BASE_PLATFORM 24             /* String identifying real platforms.*/ 
     983 
     984#define AT_RANDOM       25              /* Address of 16 random bytes.  */ 
     985 
     986#define AT_EXECFN       31              /* Filename of executable.  */ 
     987 
    959988/* Pointer to the global system page used for system calls and other 
    960989   nice things.  */ 
     
    10091038   word 3: subminor version of the ABI 
    10101039*/ 
    1011 #define ELF_NOTE_ABI            1 
    1012  
    1013 /* Known OSes.  These value can appear in word 0 of an ELF_NOTE_ABI 
    1014    note section entry.  */ 
     1040#define NT_GNU_ABI_TAG  1 
     1041#define ELF_NOTE_ABI    NT_GNU_ABI_TAG /* Old name.  */ 
     1042 
     1043/* Known OSes.  These values can appear in word 0 of an 
     1044   NT_GNU_ABI_TAG note section entry.  */ 
    10151045#define ELF_NOTE_OS_LINUX       0 
    10161046#define ELF_NOTE_OS_GNU         1 
    10171047#define ELF_NOTE_OS_SOLARIS2    2 
    10181048#define ELF_NOTE_OS_FREEBSD     3 
     1049 
     1050/* Synthetic hwcap information.  The descriptor begins with two words: 
     1051   word 0: number of entries 
     1052   word 1: bitmask of enabled entries 
     1053   Then follow variable-length entries, one byte followed by a 
     1054   '\0'-terminated hwcap name string.  The byte gives the bit 
     1055   number to test if enabled, (1U << bit) & bitmask.  */ 
     1056#define NT_GNU_HWCAP    2 
     1057 
     1058/* Build ID bits as generated by ld --build-id. 
     1059   The descriptor consists of any nonzero number of bytes.  */ 
     1060#define NT_GNU_BUILD_ID 3 
     1061 
     1062/* Version note generated by GNU gold containing a version string.  */ 
     1063#define NT_GNU_GOLD_VERSION     4 
    10191064 
    10201065 
     
    10781123#define R_68K_JMP_SLOT  21              /* Create PLT entry */ 
    10791124#define R_68K_RELATIVE  22              /* Adjust by program base */ 
     1125#define R_68K_TLS_GD32      25          /* 32 bit GOT offset for GD */ 
     1126#define R_68K_TLS_GD16      26          /* 16 bit GOT offset for GD */ 
     1127#define R_68K_TLS_GD8       27          /* 8 bit GOT offset for GD */ 
     1128#define R_68K_TLS_LDM32     28          /* 32 bit GOT offset for LDM */ 
     1129#define R_68K_TLS_LDM16     29          /* 16 bit GOT offset for LDM */ 
     1130#define R_68K_TLS_LDM8      30          /* 8 bit GOT offset for LDM */ 
     1131#define R_68K_TLS_LDO32     31          /* 32 bit module-relative offset */ 
     1132#define R_68K_TLS_LDO16     32          /* 16 bit module-relative offset */ 
     1133#define R_68K_TLS_LDO8      33          /* 8 bit module-relative offset */ 
     1134#define R_68K_TLS_IE32      34          /* 32 bit GOT offset for IE */ 
     1135#define R_68K_TLS_IE16      35          /* 16 bit GOT offset for IE */ 
     1136#define R_68K_TLS_IE8       36          /* 8 bit GOT offset for IE */ 
     1137#define R_68K_TLS_LE32      37          /* 32 bit offset relative to 
     1138                                           static TLS block */ 
     1139#define R_68K_TLS_LE16      38          /* 16 bit offset relative to 
     1140                                           static TLS block */ 
     1141#define R_68K_TLS_LE8       39          /* 8 bit offset relative to 
     1142                                           static TLS block */ 
     1143#define R_68K_TLS_DTPMOD32  40          /* 32 bit module number */ 
     1144#define R_68K_TLS_DTPREL32  41          /* 32 bit module-relative offset */ 
     1145#define R_68K_TLS_TPREL32   42          /* 32 bit TP-relative offset */ 
    10801146/* Keep this the last entry.  */ 
    1081 #define R_68K_NUM       23 
     1147#define R_68K_NUM       43 
    10821148 
    10831149/* Intel 80386 specific definitions.  */ 
     
    11331199#define R_386_TLS_DTPOFF32 36           /* Offset in TLS block */ 
    11341200#define R_386_TLS_TPOFF32  37           /* Negated offset in static TLS block */ 
     1201/* 38? */ 
     1202#define R_386_TLS_GOTDESC  39           /* GOT offset for TLS descriptor.  */ 
     1203#define R_386_TLS_DESC_CALL 40          /* Marker of call through TLS 
     1204                                           descriptor for 
     1205                                           relaxation.  */ 
     1206#define R_386_TLS_DESC     41           /* TLS descriptor containing 
     1207                                           pointer to code and to 
     1208                                           argument, returning the TLS 
     1209                                           offset for the symbol.  */ 
     1210#define R_386_IRELATIVE    42           /* Adjust indirectly by program base */ 
    11351211/* Keep this the last entry.  */ 
    1136 #define R_386_NUM          38 
     1212#define R_386_NUM          43 
    11371213 
    11381214/* SUN SPARC specific definitions.  */ 
     
    12021278#define R_SPARC_WDISP16         40      /* PC relative 16 bit shifted */ 
    12031279#define R_SPARC_WDISP19         41      /* PC relative 19 bit shifted */ 
     1280#define R_SPARC_GLOB_JMP        42      /* was part of v9 ABI but was removed */ 
    12041281#define R_SPARC_7               43      /* Direct 7 bit */ 
    12051282#define R_SPARC_5               44      /* Direct 5 bit */ 
     
    12391316#define R_SPARC_TLS_TPOFF32     78 
    12401317#define R_SPARC_TLS_TPOFF64     79 
     1318#define R_SPARC_GOTDATA_HIX22   80 
     1319#define R_SPARC_GOTDATA_LOX10   81 
     1320#define R_SPARC_GOTDATA_OP_HIX22        82 
     1321#define R_SPARC_GOTDATA_OP_LOX10        83 
     1322#define R_SPARC_GOTDATA_OP      84 
     1323#define R_SPARC_H34             85 
     1324#define R_SPARC_SIZE32          86 
     1325#define R_SPARC_SIZE64          87 
     1326#define R_SPARC_WDISP10         88 
     1327#define R_SPARC_JMP_IREL        248 
     1328#define R_SPARC_IRELATIVE       249 
     1329#define R_SPARC_GNU_VTINHERIT   250 
     1330#define R_SPARC_GNU_VTENTRY     251 
     1331#define R_SPARC_REV32           252 
    12411332/* Keep this the last entry.  */ 
    1242 #define R_SPARC_NUM             80 
     1333#define R_SPARC_NUM             253 
    12431334 
    12441335/* For Sparc64, legal values for d_tag of Elf64_Dyn.  */ 
     
    12461337#define DT_SPARC_REGISTER 0x70000001 
    12471338#define DT_SPARC_NUM    2 
    1248  
    1249 /* Bits present in AT_HWCAP, primarily for Sparc32.  */ 
    1250  
    1251 #define HWCAP_SPARC_FLUSH       1       /* The cpu supports flush insn.  */ 
    1252 #define HWCAP_SPARC_STBAR       2 
    1253 #define HWCAP_SPARC_SWAP        4 
    1254 #define HWCAP_SPARC_MULDIV      8 
    1255 #define HWCAP_SPARC_V9          16      /* The cpu is v9, so v8plus is ok.  */ 
    1256 #define HWCAP_SPARC_ULTRA3      32 
    12571339 
    12581340/* MIPS R3000 specific definitions.  */ 
     
    13581440#define STO_MIPS_HIDDEN                 0x2 
    13591441#define STO_MIPS_PROTECTED              0x3 
     1442#define STO_MIPS_PLT                    0x8 
    13601443#define STO_MIPS_SC_ALIGN_UNUSED        0xff 
    13611444 
     
    14901573#define R_MIPS_RELGOT           36 
    14911574#define R_MIPS_JALR             37 
     1575#define R_MIPS_TLS_DTPMOD32     38      /* Module number 32 bit */ 
     1576#define R_MIPS_TLS_DTPREL32     39      /* Module-relative offset 32 bit */ 
     1577#define R_MIPS_TLS_DTPMOD64     40      /* Module number 64 bit */ 
     1578#define R_MIPS_TLS_DTPREL64     41      /* Module-relative offset 64 bit */ 
     1579#define R_MIPS_TLS_GD           42      /* 16 bit GOT offset for GD */ 
     1580#define R_MIPS_TLS_LDM          43      /* 16 bit GOT offset for LDM */ 
     1581#define R_MIPS_TLS_DTPREL_HI16  44      /* Module-relative offset, high 16 bits */ 
     1582#define R_MIPS_TLS_DTPREL_LO16  45      /* Module-relative offset, low 16 bits */ 
     1583#define R_MIPS_TLS_GOTTPREL     46      /* 16 bit GOT offset for IE */ 
     1584#define R_MIPS_TLS_TPREL32      47      /* TP-relative offset, 32 bit */ 
     1585#define R_MIPS_TLS_TPREL64      48      /* TP-relative offset, 64 bit */ 
     1586#define R_MIPS_TLS_TPREL_HI16   49      /* TP-relative offset, high 16 bits */ 
     1587#define R_MIPS_TLS_TPREL_LO16   50      /* TP-relative offset, low 16 bits */ 
     1588#define R_MIPS_GLOB_DAT         51 
     1589#define R_MIPS_COPY             126 
     1590#define R_MIPS_JUMP_SLOT        127 
    14921591/* Keep this the last entry.  */ 
    1493 #define R_MIPS_NUM              38 
     1592#define R_MIPS_NUM              128 
    14941593 
    14951594/* Legal values for p_type field of Elf32_Phdr.  */ 
     
    15571656#define DT_MIPS_GP_VALUE     0x70000030 /* GP value for aux GOTs.  */ 
    15581657#define DT_MIPS_AUX_DYNAMIC  0x70000031 /* Address of aux .dynamic.  */ 
    1559 #define DT_MIPS_NUM          0x32 
     1658/* The address of .got.plt in an executable using the new non-PIC ABI.  */ 
     1659#define DT_MIPS_PLTGOT       0x70000032 
     1660/* The base of the PLT in an executable using the new non-PIC ABI if that 
     1661   PLT is writable.  For a non-writable PLT, this is omitted or has a zero 
     1662   value.  */ 
     1663#define DT_MIPS_RWPLT        0x70000034 
     1664#define DT_MIPS_NUM          0x35 
    15601665 
    15611666/* Legal values for DT_MIPS_FLAGS Elf32_Dyn entry.  */ 
     
    16871792#define R_PARISC_FPTR64         64      /* 64 bits function address.  */ 
    16881793#define R_PARISC_PLABEL32       65      /* 32 bits function address.  */ 
    1689 #define R_PARISC_PLABEL21L      66      /* Left 21 bits of fct ptr.  */ 
    1690 #define R_PARISC_PLABEL14R      70      /* Left 21 bits of fct ptr.  */ 
     1794#define R_PARISC_PLABEL21L      66      /* Left 21 bits of fdesc address.  */ 
     1795#define R_PARISC_PLABEL14R      70      /* Right 14 bits of fdesc address.  */ 
    16911796#define R_PARISC_PCREL64        72      /* 64 bits PC-rel. address.  */ 
    16921797#define R_PARISC_PCREL22F       74      /* 22 bits PC-rel. address.  */ 
     
    17491854#define R_PARISC_LTOFF_TP16WF   230     /* 16 bits LT-TP-rel. address.  */ 
    17501855#define R_PARISC_LTOFF_TP16DF   231     /* 16 bits LT-TP-rel. address.  */ 
     1856#define R_PARISC_GNU_VTENTRY    232 
     1857#define R_PARISC_GNU_VTINHERIT  233 
     1858#define R_PARISC_TLS_GD21L      234     /* GD 21-bit left.  */ 
     1859#define R_PARISC_TLS_GD14R      235     /* GD 14-bit right.  */ 
     1860#define R_PARISC_TLS_GDCALL     236     /* GD call to __t_g_a.  */ 
     1861#define R_PARISC_TLS_LDM21L     237     /* LD module 21-bit left.  */ 
     1862#define R_PARISC_TLS_LDM14R     238     /* LD module 14-bit right.  */ 
     1863#define R_PARISC_TLS_LDMCALL    239     /* LD module call to __t_g_a.  */ 
     1864#define R_PARISC_TLS_LDO21L     240     /* LD offset 21-bit left.  */ 
     1865#define R_PARISC_TLS_LDO14R     241     /* LD offset 14-bit right.  */ 
     1866#define R_PARISC_TLS_DTPMOD32   242     /* DTP module 32-bit.  */ 
     1867#define R_PARISC_TLS_DTPMOD64   243     /* DTP module 64-bit.  */ 
     1868#define R_PARISC_TLS_DTPOFF32   244     /* DTP offset 32-bit.  */ 
     1869#define R_PARISC_TLS_DTPOFF64   245     /* DTP offset 32-bit.  */ 
     1870#define R_PARISC_TLS_LE21L      R_PARISC_TPREL21L 
     1871#define R_PARISC_TLS_LE14R      R_PARISC_TPREL14R 
     1872#define R_PARISC_TLS_IE21L      R_PARISC_LTOFF_TP21L 
     1873#define R_PARISC_TLS_IE14R      R_PARISC_LTOFF_TP14R 
     1874#define R_PARISC_TLS_TPREL32    R_PARISC_TPREL32 
     1875#define R_PARISC_TLS_TPREL64    R_PARISC_TPREL64 
    17511876#define R_PARISC_HIRESERVE      255 
    17521877 
     
    18521977#define LITUSE_ALPHA_TLS_LDM    5 
    18531978 
     1979/* Legal values for d_tag of Elf64_Dyn.  */ 
     1980#define DT_ALPHA_PLTRO          (DT_LOPROC + 0) 
     1981#define DT_ALPHA_NUM            1 
    18541982 
    18551983/* PowerPC specific declarations */ 
     
    19322060#define R_PPC_GOT_DTPREL16_HA   94 /* half16*   (sym+add)@got@dtprel@ha */ 
    19332061 
    1934 /* Keep this the last entry.  */ 
    1935 #define R_PPC_NUM               95 
    1936  
    19372062/* The remaining relocs are from the Embedded ELF ABI, and are not 
    19382063   in the SVR4 ELF ABI.  */ 
     
    19622087#define R_PPC_DIAB_RELSDA_HA    185     /* like EMB_RELSDA, adjusted high 16 */ 
    19632088 
     2089/* GNU extension to support local ifunc.  */ 
     2090#define R_PPC_IRELATIVE         248 
     2091 
     2092/* GNU relocs used in PIC code sequences.  */ 
     2093#define R_PPC_REL16             249     /* half16   (sym+add-.) */ 
     2094#define R_PPC_REL16_LO          250     /* half16   (sym+add-.)@l */ 
     2095#define R_PPC_REL16_HI          251     /* half16   (sym+add-.)@h */ 
     2096#define R_PPC_REL16_HA          252     /* half16   (sym+add-.)@ha */ 
     2097 
    19642098/* This is a phony reloc to handle any old fashioned TOC16 references 
    19652099   that may still be in object files.  */ 
    19662100#define R_PPC_TOC16             255 
    19672101 
     2102/* PowerPC specific values for the Dyn d_tag field.  */ 
     2103#define DT_PPC_GOT              (DT_LOPROC + 0) 
     2104#define DT_PPC_NUM              1 
    19682105 
    19692106/* PowerPC64 relocations defined by the ABIs */ 
     
    20792216#define R_PPC64_DTPREL16_HIGHESTA 106 /* half16 (sym+add)@dtprel@highesta */ 
    20802217 
    2081 /* Keep this the last entry.  */ 
    2082 #define R_PPC64_NUM             107 
     2218/* GNU extension to support local ifunc.  */ 
     2219#define R_PPC64_JMP_IREL        247 
     2220#define R_PPC64_IRELATIVE       248 
     2221#define R_PPC64_REL16           249     /* half16   (sym+add-.) */ 
     2222#define R_PPC64_REL16_LO        250     /* half16   (sym+add-.)@l */ 
     2223#define R_PPC64_REL16_HI        251     /* half16   (sym+add-.)@h */ 
     2224#define R_PPC64_REL16_HA        252     /* half16   (sym+add-.)@ha */ 
    20832225 
    20842226/* PowerPC64 specific values for the Dyn d_tag field.  */ 
     
    20922234 
    20932235/* Processor specific flags for the ELF header e_flags field.  */ 
    2094 #define EF_ARM_RELEXEC     0x01 
    2095 #define EF_ARM_HASENTRY    0x02 
    2096 #define EF_ARM_INTERWORK   0x04 
    2097 #define EF_ARM_APCS_26     0x08 
    2098 #define EF_ARM_APCS_FLOAT  0x10 
    2099 #define EF_ARM_PIC         0x20 
    2100 #define EF_ARM_ALIGN8      0x40         /* 8-bit structure alignment is in use */ 
    2101 #define EF_ARM_NEW_ABI     0x80 
    2102 #define EF_ARM_OLD_ABI     0x100 
     2236#define EF_ARM_RELEXEC          0x01 
     2237#define EF_ARM_HASENTRY         0x02 
     2238#define EF_ARM_INTERWORK        0x04 
     2239#define EF_ARM_APCS_26          0x08 
     2240#define EF_ARM_APCS_FLOAT       0x10 
     2241#define EF_ARM_PIC              0x20 
     2242#define EF_ARM_ALIGN8           0x40 /* 8-bit structure alignment is in use */ 
     2243#define EF_ARM_NEW_ABI          0x80 
     2244#define EF_ARM_OLD_ABI          0x100 
     2245#define EF_ARM_SOFT_FLOAT       0x200 
     2246#define EF_ARM_VFP_FLOAT        0x400 
     2247#define EF_ARM_MAVERICK_FLOAT   0x800 
     2248 
    21032249 
    21042250/* Other constants defined in the ARM ELF spec. version B-01.  */ 
    21052251/* NB. These conflict with values defined above.  */ 
    21062252#define EF_ARM_SYMSARESORTED    0x04 
    2107 #define EF_ARM_DYNSYMSUSESEGIDX 0x08 
     2253#define EF_ARM_DYNSYMSUSESEGIDX 0x08 
    21082254#define EF_ARM_MAPSYMSFIRST     0x10 
    21092255#define EF_ARM_EABIMASK         0XFF000000 
    21102256 
    2111 #define EF_ARM_EABI_VERSION(flags) ((flags) & EF_ARM_EABIMASK) 
    2112 #define EF_ARM_EABI_UNKNOWN  0x00000000 
    2113 #define EF_ARM_EABI_VER1     0x01000000 
    2114 #define EF_ARM_EABI_VER2     0x02000000 
    2115  
    2116 /* Additional symbol types for Thumb */ 
    2117 #define STT_ARM_TFUNC      0xd 
     2257/* Constants defined in AAELF.  */ 
     2258#define EF_ARM_BE8          0x00800000 
     2259#define EF_ARM_LE8          0x00400000 
     2260 
     2261#define EF_ARM_EABI_VERSION(flags)      ((flags) & EF_ARM_EABIMASK) 
     2262#define EF_ARM_EABI_UNKNOWN     0x00000000 
     2263#define EF_ARM_EABI_VER1        0x01000000 
     2264#define EF_ARM_EABI_VER2        0x02000000 
     2265#define EF_ARM_EABI_VER3        0x03000000 
     2266#define EF_ARM_EABI_VER4        0x04000000 
     2267#define EF_ARM_EABI_VER5        0x05000000 
     2268 
     2269/* Additional symbol types for Thumb.  */ 
     2270#define STT_ARM_TFUNC           STT_LOPROC /* A Thumb function.  */ 
     2271#define STT_ARM_16BIT           STT_HIPROC /* A Thumb label.  */ 
    21182272 
    21192273/* ARM-specific values for sh_flags */ 
    2120 #define SHF_ARM_ENTRYSECT  0x10000000  /* Section contains an entry point */ 
    2121 #define SHF_ARM_COMDEF     0x80000000  /* Section may be multiply defined 
    2122                                            in the input to a link step */ 
     2274#define SHF_ARM_ENTRYSECT       0x10000000 /* Section contains an entry point */ 
     2275#define SHF_ARM_COMDEF          0x80000000 /* Section may be multiply defined 
     2276                                              in the input to a link step. */ 
    21232277 
    21242278/* ARM-specific program header flags */ 
    2125 #define PF_ARM_SB          0x10000000   /* Segment contains the location 
    2126                                            addressed by the static base */ 
     2279#define PF_ARM_SB               0x10000000 /* Segment contains the location 
     2280                                              addressed by the static base. */ 
     2281#define PF_ARM_PI               0x20000000 /* Position-independent segment.  */ 
     2282#define PF_ARM_ABS              0x40000000 /* Absolute segment.  */ 
     2283 
     2284/* Processor specific values for the Phdr p_type field.  */ 
     2285#define PT_ARM_EXIDX            (PT_LOPROC + 1) /* ARM unwind segment.  */ 
     2286 
     2287/* Processor specific values for the Shdr sh_type field.  */ 
     2288#define SHT_ARM_EXIDX           (SHT_LOPROC + 1) /* ARM unwind section.  */ 
     2289#define SHT_ARM_PREEMPTMAP      (SHT_LOPROC + 2) /* Preemption details.  */ 
     2290#define SHT_ARM_ATTRIBUTES      (SHT_LOPROC + 3) /* ARM attributes section.  */ 
     2291 
    21272292 
    21282293/* ARM relocs.  */ 
     2294 
    21292295#define R_ARM_NONE              0       /* No reloc */ 
    21302296#define R_ARM_PC24              1       /* PC relative 26 bit branch */ 
     
    21402306#define R_ARM_THM_PC8           11 
    21412307#define R_ARM_AMP_VCALL9        12 
    2142 #define R_ARM_SWI24             13 
     2308#define R_ARM_SWI24             13      /* Obsolete static relocation.  */ 
     2309#define R_ARM_TLS_DESC          13      /* Dynamic relocation.  */ 
    21432310#define R_ARM_THM_SWI8          14 
    21442311#define R_ARM_XPC25             15 
    21452312#define R_ARM_THM_XPC22         16 
     2313#define R_ARM_TLS_DTPMOD32      17      /* ID of module containing symbol */ 
     2314#define R_ARM_TLS_DTPOFF32      18      /* Offset in TLS block */ 
     2315#define R_ARM_TLS_TPOFF32       19      /* Offset in static TLS block */ 
    21462316#define R_ARM_COPY              20      /* Copy symbol at runtime */ 
    21472317#define R_ARM_GLOB_DAT          21      /* Create GOT entry */ 
     
    21582328#define R_ARM_ALU_SBREL_19_12   36 
    21592329#define R_ARM_ALU_SBREL_27_20   37 
     2330#define R_ARM_TLS_GOTDESC       90 
     2331#define R_ARM_TLS_CALL          91 
     2332#define R_ARM_TLS_DESCSEQ       92 
     2333#define R_ARM_THM_TLS_CALL      93 
    21602334#define R_ARM_GNU_VTENTRY       100 
    21612335#define R_ARM_GNU_VTINHERIT     101 
    21622336#define R_ARM_THM_PC11          102     /* thumb unconditional branch */ 
    21632337#define R_ARM_THM_PC9           103     /* thumb conditional branch */ 
     2338#define R_ARM_TLS_GD32          104     /* PC-rel 32 bit for global dynamic 
     2339                                           thread local data */ 
     2340#define R_ARM_TLS_LDM32         105     /* PC-rel 32 bit for local dynamic 
     2341                                           thread local data */ 
     2342#define R_ARM_TLS_LDO32         106     /* 32 bit offset relative to TLS 
     2343                                           block */ 
     2344#define R_ARM_TLS_IE32          107     /* PC-rel 32 bit for GOT entry of 
     2345                                           static TLS block offset */ 
     2346#define R_ARM_TLS_LE32          108     /* 32 bit offset relative to static 
     2347                                           TLS block */ 
     2348#define R_ARM_THM_TLS_DESCSEQ   129 
     2349#define R_ARM_IRELATIVE         160 
    21642350#define R_ARM_RXPC25            249 
    21652351#define R_ARM_RSBREL32          250 
     
    22862472/* SH specific declarations */ 
    22872473 
     2474/* Processor specific flags for the ELF header e_flags field.  */ 
     2475#define EF_SH_MACH_MASK         0x1f 
     2476#define EF_SH_UNKNOWN           0x0 
     2477#define EF_SH1                  0x1 
     2478#define EF_SH2                  0x2 
     2479#define EF_SH3                  0x3 
     2480#define EF_SH_DSP               0x4 
     2481#define EF_SH3_DSP              0x5 
     2482#define EF_SH4AL_DSP            0x6 
     2483#define EF_SH3E                 0x8 
     2484#define EF_SH4                  0x9 
     2485#define EF_SH2E                 0xb 
     2486#define EF_SH4A                 0xc 
     2487#define EF_SH2A                 0xd 
     2488#define EF_SH4_NOFPU            0x10 
     2489#define EF_SH4A_NOFPU           0x11 
     2490#define EF_SH4_NOMMU_NOFPU      0x12 
     2491#define EF_SH2A_NOFPU           0x13 
     2492#define EF_SH3_NOMMU            0x14 
     2493#define EF_SH2A_SH4_NOFPU       0x15 
     2494#define EF_SH2A_SH3_NOFPU       0x16 
     2495#define EF_SH2A_SH4             0x17 
     2496#define EF_SH2A_SH3E            0x18 
     2497 
    22882498/* SH relocs.  */ 
    22892499#define R_SH_NONE               0 
     
    23262536/* Keep this the last entry.  */ 
    23272537#define R_SH_NUM                256 
     2538 
     2539/* S/390 specific definitions.  */ 
     2540 
     2541/* Valid values for the e_flags field.  */ 
     2542 
     2543#define EF_S390_HIGH_GPRS    0x00000001  /* High GPRs kernel facility needed.  */ 
    23282544 
    23292545/* Additional s390 relocs */ 
     
    24082624#define R_390_TLS_GOTIE20       60      /* 20 bit GOT offset for static TLS 
    24092625                                           block offset.  */ 
     2626#define R_390_IRELATIVE         61      /* STT_GNU_IFUNC relocation.  */ 
    24102627/* Keep this the last entry.  */ 
    2411 #define R_390_NUM               61 
     2628#define R_390_NUM               62 
    24122629 
    24132630 
     
    24662683                                           to GOT entry for IE symbol */ 
    24672684#define R_X86_64_TPOFF32        23      /* Offset in initial TLS block */ 
    2468  
    2469 #define R_X86_64_NUM            24 
     2685#define R_X86_64_PC64           24      /* PC relative 64 bit */ 
     2686#define R_X86_64_GOTOFF64       25      /* 64 bit offset to GOT */ 
     2687#define R_X86_64_GOTPC32        26      /* 32 bit signed pc relative 
     2688                                           offset to GOT */ 
     2689#define R_X86_64_GOT64          27      /* 64-bit GOT entry offset */ 
     2690#define R_X86_64_GOTPCREL64     28      /* 64-bit PC relative offset 
     2691                                           to GOT entry */ 
     2692#define R_X86_64_GOTPC64        29      /* 64-bit PC relative offset to GOT */ 
     2693#define R_X86_64_GOTPLT64       30      /* like GOT64, says PLT entry needed */ 
     2694#define R_X86_64_PLTOFF64       31      /* 64-bit GOT relative offset 
     2695                                           to PLT entry */ 
     2696#define R_X86_64_SIZE32         32      /* Size of symbol plus 32-bit addend */ 
     2697#define R_X86_64_SIZE64         33      /* Size of symbol plus 64-bit addend */ 
     2698#define R_X86_64_GOTPC32_TLSDESC 34     /* GOT offset for TLS descriptor.  */ 
     2699#define R_X86_64_TLSDESC_CALL   35      /* Marker for call through TLS 
     2700                                           descriptor.  */ 
     2701#define R_X86_64_TLSDESC        36      /* TLS descriptor.  */ 
     2702#define R_X86_64_IRELATIVE      37      /* Adjust indirectly by program base */ 
     2703#define R_X86_64_RELATIVE64     38      /* 64-bit adjust by program base */ 
     2704 
     2705#define R_X86_64_NUM            39 
    24702706 
    24712707 
     
    25262762#define R_M32R_RELA_GNU_VTINHERIT       43 
    25272763#define R_M32R_RELA_GNU_VTENTRY 44 
    2528 #define R_M32R_REL32            45      /* PC relative 32 bit */ 
     2764#define R_M32R_REL32            45      /* PC relative 32 bit. */ 
    25292765 
    25302766#define R_M32R_GOT24            48      /* 24 bit GOT entry */ 
     
    25552791 
    25562792 
    2557 __END_DECLS 
     2793/* TILEPro relocations.  */ 
     2794#define R_TILEPRO_NONE          0       /* No reloc */ 
     2795#define R_TILEPRO_32            1       /* Direct 32 bit */ 
     2796#define R_TILEPRO_16            2       /* Direct 16 bit */ 
     2797#define R_TILEPRO_8             3       /* Direct 8 bit */ 
     2798#define R_TILEPRO_32_PCREL      4       /* PC relative 32 bit */ 
     2799#define R_TILEPRO_16_PCREL      5       /* PC relative 16 bit */ 
     2800#define R_TILEPRO_8_PCREL       6       /* PC relative 8 bit */ 
     2801#define R_TILEPRO_LO16          7       /* Low 16 bit */ 
     2802#define R_TILEPRO_HI16          8       /* High 16 bit */ 
     2803#define R_TILEPRO_HA16          9       /* High 16 bit, adjusted */ 
     2804#define R_TILEPRO_COPY          10      /* Copy relocation */ 
     2805#define R_TILEPRO_GLOB_DAT      11      /* Create GOT entry */ 
     2806#define R_TILEPRO_JMP_SLOT      12      /* Create PLT entry */ 
     2807#define R_TILEPRO_RELATIVE      13      /* Adjust by program base */ 
     2808#define R_TILEPRO_BROFF_X1      14      /* X1 pipe branch offset */ 
     2809#define R_TILEPRO_JOFFLONG_X1   15      /* X1 pipe jump offset */ 
     2810#define R_TILEPRO_JOFFLONG_X1_PLT 16    /* X1 pipe jump offset to PLT */ 
     2811#define R_TILEPRO_IMM8_X0       17      /* X0 pipe 8-bit */ 
     2812#define R_TILEPRO_IMM8_Y0       18      /* Y0 pipe 8-bit */ 
     2813#define R_TILEPRO_IMM8_X1       19      /* X1 pipe 8-bit */ 
     2814#define R_TILEPRO_IMM8_Y1       20      /* Y1 pipe 8-bit */ 
     2815#define R_TILEPRO_MT_IMM15_X1   21      /* X1 pipe mtspr */ 
     2816#define R_TILEPRO_MF_IMM15_X1   22      /* X1 pipe mfspr */ 
     2817#define R_TILEPRO_IMM16_X0      23      /* X0 pipe 16-bit */ 
     2818#define R_TILEPRO_IMM16_X1      24      /* X1 pipe 16-bit */ 
     2819#define R_TILEPRO_IMM16_X0_LO   25      /* X0 pipe low 16-bit */ 
     2820#define R_TILEPRO_IMM16_X1_LO   26      /* X1 pipe low 16-bit */ 
     2821#define R_TILEPRO_IMM16_X0_HI   27      /* X0 pipe high 16-bit */ 
     2822#define R_TILEPRO_IMM16_X1_HI   28      /* X1 pipe high 16-bit */ 
     2823#define R_TILEPRO_IMM16_X0_HA   29      /* X0 pipe high 16-bit, adjusted */ 
     2824#define R_TILEPRO_IMM16_X1_HA   30      /* X1 pipe high 16-bit, adjusted */ 
     2825#define R_TILEPRO_IMM16_X0_PCREL 31     /* X0 pipe PC relative 16 bit */ 
     2826#define R_TILEPRO_IMM16_X1_PCREL 32     /* X1 pipe PC relative 16 bit */ 
     2827#define R_TILEPRO_IMM16_X0_LO_PCREL 33  /* X0 pipe PC relative low 16 bit */ 
     2828#define R_TILEPRO_IMM16_X1_LO_PCREL 34  /* X1 pipe PC relative low 16 bit */ 
     2829#define R_TILEPRO_IMM16_X0_HI_PCREL 35  /* X0 pipe PC relative high 16 bit */ 
     2830#define R_TILEPRO_IMM16_X1_HI_PCREL 36  /* X1 pipe PC relative high 16 bit */ 
     2831#define R_TILEPRO_IMM16_X0_HA_PCREL 37  /* X0 pipe PC relative ha() 16 bit */ 
     2832#define R_TILEPRO_IMM16_X1_HA_PCREL 38  /* X1 pipe PC relative ha() 16 bit */ 
     2833#define R_TILEPRO_IMM16_X0_GOT  39      /* X0 pipe 16-bit GOT offset */ 
     2834#define R_TILEPRO_IMM16_X1_GOT  40      /* X1 pipe 16-bit GOT offset */ 
     2835#define R_TILEPRO_IMM16_X0_GOT_LO 41    /* X0 pipe low 16-bit GOT offset */ 
     2836#define R_TILEPRO_IMM16_X1_GOT_LO 42    /* X1 pipe low 16-bit GOT offset */ 
     2837#define R_TILEPRO_IMM16_X0_GOT_HI 43    /* X0 pipe high 16-bit GOT offset */ 
     2838#define R_TILEPRO_IMM16_X1_GOT_HI 44    /* X1 pipe high 16-bit GOT offset */ 
     2839#define R_TILEPRO_IMM16_X0_GOT_HA 45    /* X0 pipe ha() 16-bit GOT offset */ 
     2840#define R_TILEPRO_IMM16_X1_GOT_HA 46    /* X1 pipe ha() 16-bit GOT offset */ 
     2841#define R_TILEPRO_MMSTART_X0    47      /* X0 pipe mm "start" */ 
     2842#define R_TILEPRO_MMEND_X0      48      /* X0 pipe mm "end" */ 
     2843#define R_TILEPRO_MMSTART_X1    49      /* X1 pipe mm "start" */ 
     2844#define R_TILEPRO_MMEND_X1      50      /* X1 pipe mm "end" */ 
     2845#define R_TILEPRO_SHAMT_X0      51      /* X0 pipe shift amount */ 
     2846#define R_TILEPRO_SHAMT_X1      52      /* X1 pipe shift amount */ 
     2847#define R_TILEPRO_SHAMT_Y0      53      /* Y0 pipe shift amount */ 
     2848#define R_TILEPRO_SHAMT_Y1      54      /* Y1 pipe shift amount */ 
     2849#define R_TILEPRO_DEST_IMM8_X1  55      /* X1 pipe destination 8-bit */ 
     2850/* Relocs 56-59 are currently not defined.  */ 
     2851#define R_TILEPRO_TLS_GD_CALL   60      /* "jal" for TLS GD */ 
     2852#define R_TILEPRO_IMM8_X0_TLS_GD_ADD 61 /* X0 pipe "addi" for TLS GD */ 
     2853#define R_TILEPRO_IMM8_X1_TLS_GD_ADD 62 /* X1 pipe "addi" for TLS GD */ 
     2854#define R_TILEPRO_IMM8_Y0_TLS_GD_ADD 63 /* Y0 pipe "addi" for TLS GD */ 
     2855#define R_TILEPRO_IMM8_Y1_TLS_GD_ADD 64 /* Y1 pipe "addi" for TLS GD */ 
     2856#define R_TILEPRO_TLS_IE_LOAD   65      /* "lw_tls" for TLS IE */ 
     2857#define R_TILEPRO_IMM16_X0_TLS_GD 66    /* X0 pipe 16-bit TLS GD offset */ 
     2858#define R_TILEPRO_IMM16_X1_TLS_GD 67    /* X1 pipe 16-bit TLS GD offset */ 
     2859#define R_TILEPRO_IMM16_X0_TLS_GD_LO 68 /* X0 pipe low 16-bit TLS GD offset */ 
     2860#define R_TILEPRO_IMM16_X1_TLS_GD_LO 69 /* X1 pipe low 16-bit TLS GD offset */ 
     2861#define R_TILEPRO_IMM16_X0_TLS_GD_HI 70 /* X0 pipe high 16-bit TLS GD offset */ 
     2862#define R_TILEPRO_IMM16_X1_TLS_GD_HI 71 /* X1 pipe high 16-bit TLS GD offset */ 
     2863#define R_TILEPRO_IMM16_X0_TLS_GD_HA 72 /* X0 pipe ha() 16-bit TLS GD offset */ 
     2864#define R_TILEPRO_IMM16_X1_TLS_GD_HA 73 /* X1 pipe ha() 16-bit TLS GD offset */ 
     2865#define R_TILEPRO_IMM16_X0_TLS_IE 74    /* X0 pipe 16-bit TLS IE offset */ 
     2866#define R_TILEPRO_IMM16_X1_TLS_IE 75    /* X1 pipe 16-bit TLS IE offset */ 
     2867#define R_TILEPRO_IMM16_X0_TLS_IE_LO 76 /* X0 pipe low 16-bit TLS IE offset */ 
     2868#define R_TILEPRO_IMM16_X1_TLS_IE_LO 77 /* X1 pipe low 16-bit TLS IE offset */ 
     2869#define R_TILEPRO_IMM16_X0_TLS_IE_HI 78 /* X0 pipe high 16-bit TLS IE offset */ 
     2870#define R_TILEPRO_IMM16_X1_TLS_IE_HI 79 /* X1 pipe high 16-bit TLS IE offset */ 
     2871#define R_TILEPRO_IMM16_X0_TLS_IE_HA 80 /* X0 pipe ha() 16-bit TLS IE offset */ 
     2872#define R_TILEPRO_IMM16_X1_TLS_IE_HA 81 /* X1 pipe ha() 16-bit TLS IE offset */ 
     2873#define R_TILEPRO_TLS_DTPMOD32  82      /* ID of module containing symbol */ 
     2874#define R_TILEPRO_TLS_DTPOFF32  83      /* Offset in TLS block */ 
     2875#define R_TILEPRO_TLS_TPOFF32   84      /* Offset in static TLS block */ 
     2876#define R_TILEPRO_IMM16_X0_TLS_LE 85    /* X0 pipe 16-bit TLS LE offset */ 
     2877#define R_TILEPRO_IMM16_X1_TLS_LE 86    /* X1 pipe 16-bit TLS LE offset */ 
     2878#define R_TILEPRO_IMM16_X0_TLS_LE_LO 87 /* X0 pipe low 16-bit TLS LE offset */ 
     2879#define R_TILEPRO_IMM16_X1_TLS_LE_LO 88 /* X1 pipe low 16-bit TLS LE offset */ 
     2880#define R_TILEPRO_IMM16_X0_TLS_LE_HI 89 /* X0 pipe high 16-bit TLS LE offset */ 
     2881#define R_TILEPRO_IMM16_X1_TLS_LE_HI 90 /* X1 pipe high 16-bit TLS LE offset */ 
     2882#define R_TILEPRO_IMM16_X0_TLS_LE_HA 91 /* X0 pipe ha() 16-bit TLS LE offset */ 
     2883#define R_TILEPRO_IMM16_X1_TLS_LE_HA 92 /* X1 pipe ha() 16-bit TLS LE offset */ 
     2884 
     2885#define R_TILEPRO_GNU_VTINHERIT 128     /* GNU C++ vtable hierarchy */ 
     2886#define R_TILEPRO_GNU_VTENTRY   129     /* GNU C++ vtable member usage */ 
     2887 
     2888#define R_TILEPRO_NUM           130 
     2889 
     2890 
     2891/* TILE-Gx relocations.  */ 
     2892#define R_TILEGX_NONE           0       /* No reloc */ 
     2893#define R_TILEGX_64             1       /* Direct 64 bit */ 
     2894#define R_TILEGX_32             2       /* Direct 32 bit */ 
     2895#define R_TILEGX_16             3       /* Direct 16 bit */ 
     2896#define R_TILEGX_8              4       /* Direct 8 bit */ 
     2897#define R_TILEGX_64_PCREL       5       /* PC relative 64 bit */ 
     2898#define R_TILEGX_32_PCREL       6       /* PC relative 32 bit */ 
     2899#define R_TILEGX_16_PCREL       7       /* PC relative 16 bit */ 
     2900#define R_TILEGX_8_PCREL        8       /* PC relative 8 bit */ 
     2901#define R_TILEGX_HW0            9       /* hword 0 16-bit */ 
     2902#define R_TILEGX_HW1            10      /* hword 1 16-bit */ 
     2903#define R_TILEGX_HW2            11      /* hword 2 16-bit */ 
     2904#define R_TILEGX_HW3            12      /* hword 3 16-bit */ 
     2905#define R_TILEGX_HW0_LAST       13      /* last hword 0 16-bit */ 
     2906#define R_TILEGX_HW1_LAST       14      /* last hword 1 16-bit */ 
     2907#define R_TILEGX_HW2_LAST       15      /* last hword 2 16-bit */ 
     2908#define R_TILEGX_COPY           16      /* Copy relocation */ 
     2909#define R_TILEGX_GLOB_DAT       17      /* Create GOT entry */ 
     2910#define R_TILEGX_JMP_SLOT       18      /* Create PLT entry */ 
     2911#define R_TILEGX_RELATIVE       19      /* Adjust by program base */ 
     2912#define R_TILEGX_BROFF_X1       20      /* X1 pipe branch offset */ 
     2913#define R_TILEGX_JUMPOFF_X1     21      /* X1 pipe jump offset */ 
     2914#define R_TILEGX_JUMPOFF_X1_PLT 22      /* X1 pipe jump offset to PLT */ 
     2915#define R_TILEGX_IMM8_X0        23      /* X0 pipe 8-bit */ 
     2916#define R_TILEGX_IMM8_Y0        24      /* Y0 pipe 8-bit */ 
     2917#define R_TILEGX_IMM8_X1        25      /* X1 pipe 8-bit */ 
     2918#define R_TILEGX_IMM8_Y1        26      /* Y1 pipe 8-bit */ 
     2919#define R_TILEGX_DEST_IMM8_X1   27      /* X1 pipe destination 8-bit */ 
     2920#define R_TILEGX_MT_IMM14_X1    28      /* X1 pipe mtspr */ 
     2921#define R_TILEGX_MF_IMM14_X1    29      /* X1 pipe mfspr */ 
     2922#define R_TILEGX_MMSTART_X0     30      /* X0 pipe mm "start" */ 
     2923#define R_TILEGX_MMEND_X0       31      /* X0 pipe mm "end" */ 
     2924#define R_TILEGX_SHAMT_X0       32      /* X0 pipe shift amount */ 
     2925#define R_TILEGX_SHAMT_X1       33      /* X1 pipe shift amount */ 
     2926#define R_TILEGX_SHAMT_Y0       34      /* Y0 pipe shift amount */ 
     2927#define R_TILEGX_SHAMT_Y1       35      /* Y1 pipe shift amount */ 
     2928#define R_TILEGX_IMM16_X0_HW0   36      /* X0 pipe hword 0 */ 
     2929#define R_TILEGX_IMM16_X1_HW0   37      /* X1 pipe hword 0 */ 
     2930#define R_TILEGX_IMM16_X0_HW1   38      /* X0 pipe hword 1 */ 
     2931#define R_TILEGX_IMM16_X1_HW1   39      /* X1 pipe hword 1 */ 
     2932#define R_TILEGX_IMM16_X0_HW2   40      /* X0 pipe hword 2 */ 
     2933#define R_TILEGX_IMM16_X1_HW2   41      /* X1 pipe hword 2 */ 
     2934#define R_TILEGX_IMM16_X0_HW3   42      /* X0 pipe hword 3 */ 
     2935#define R_TILEGX_IMM16_X1_HW3   43      /* X1 pipe hword 3 */ 
     2936#define R_TILEGX_IMM16_X0_HW0_LAST 44   /* X0 pipe last hword 0 */ 
     2937#define R_TILEGX_IMM16_X1_HW0_LAST 45   /* X1 pipe last hword 0 */ 
     2938#define R_TILEGX_IMM16_X0_HW1_LAST 46   /* X0 pipe last hword 1 */ 
     2939#define R_TILEGX_IMM16_X1_HW1_LAST 47   /* X1 pipe last hword 1 */ 
     2940#define R_TILEGX_IMM16_X0_HW2_LAST 48   /* X0 pipe last hword 2 */ 
     2941#define R_TILEGX_IMM16_X1_HW2_LAST 49   /* X1 pipe last hword 2 */ 
     2942#define R_TILEGX_IMM16_X0_HW0_PCREL 50  /* X0 pipe PC relative hword 0 */ 
     2943#define R_TILEGX_IMM16_X1_HW0_PCREL 51  /* X1 pipe PC relative hword 0 */ 
     2944#define R_TILEGX_IMM16_X0_HW1_PCREL 52  /* X0 pipe PC relative hword 1 */ 
     2945#define R_TILEGX_IMM16_X1_HW1_PCREL 53  /* X1 pipe PC relative hword 1 */ 
     2946#define R_TILEGX_IMM16_X0_HW2_PCREL 54  /* X0 pipe PC relative hword 2 */ 
     2947#define R_TILEGX_IMM16_X1_HW2_PCREL 55  /* X1 pipe PC relative hword 2 */ 
     2948#define R_TILEGX_IMM16_X0_HW3_PCREL 56  /* X0 pipe PC relative hword 3 */ 
     2949#define R_TILEGX_IMM16_X1_HW3_PCREL 57  /* X1 pipe PC relative hword 3 */ 
     2950#define R_TILEGX_IMM16_X0_HW0_LAST_PCREL 58 /* X0 pipe PC-rel last hword 0 */ 
     2951#define R_TILEGX_IMM16_X1_HW0_LAST_PCREL 59 /* X1 pipe PC-rel last hword 0 */ 
     2952#define R_TILEGX_IMM16_X0_HW1_LAST_PCREL 60 /* X0 pipe PC-rel last hword 1 */ 
     2953#define R_TILEGX_IMM16_X1_HW1_LAST_PCREL 61 /* X1 pipe PC-rel last hword 1 */ 
     2954#define R_TILEGX_IMM16_X0_HW2_LAST_PCREL 62 /* X0 pipe PC-rel last hword 2 */ 
     2955#define R_TILEGX_IMM16_X1_HW2_LAST_PCREL 63 /* X1 pipe PC-rel last hword 2 */ 
     2956#define R_TILEGX_IMM16_X0_HW0_GOT 64    /* X0 pipe hword 0 GOT offset */ 
     2957#define R_TILEGX_IMM16_X1_HW0_GOT 65    /* X1 pipe hword 0 GOT offset */ 
     2958/* Relocs 66-71 are currently not defined.  */ 
     2959#define R_TILEGX_IMM16_X0_HW0_LAST_GOT 72 /* X0 pipe last hword 0 GOT offset */ 
     2960#define R_TILEGX_IMM16_X1_HW0_LAST_GOT 73 /* X1 pipe last hword 0 GOT offset */ 
     2961#define R_TILEGX_IMM16_X0_HW1_LAST_GOT 74 /* X0 pipe last hword 1 GOT offset */ 
     2962#define R_TILEGX_IMM16_X1_HW1_LAST_GOT 75 /* X1 pipe last hword 1 GOT offset */ 
     2963/* Relocs 76-77 are currently not defined.  */ 
     2964#define R_TILEGX_IMM16_X0_HW0_TLS_GD 78 /* X0 pipe hword 0 TLS GD offset */ 
     2965#define R_TILEGX_IMM16_X1_HW0_TLS_GD 79 /* X1 pipe hword 0 TLS GD offset */ 
     2966#define R_TILEGX_IMM16_X0_HW0_TLS_LE 80 /* X0 pipe hword 0 TLS LE offset */ 
     2967#define R_TILEGX_IMM16_X1_HW0_TLS_LE 81 /* X1 pipe hword 0 TLS LE offset */ 
     2968#define R_TILEGX_IMM16_X0_HW0_LAST_TLS_LE 82 /* X0 pipe last hword 0 LE off */ 
     2969#define R_TILEGX_IMM16_X1_HW0_LAST_TLS_LE 83 /* X1 pipe last hword 0 LE off */ 
     2970#define R_TILEGX_IMM16_X0_HW1_LAST_TLS_LE 84 /* X0 pipe last hword 1 LE off */ 
     2971#define R_TILEGX_IMM16_X1_HW1_LAST_TLS_LE 85 /* X1 pipe last hword 1 LE off */ 
     2972#define R_TILEGX_IMM16_X0_HW0_LAST_TLS_GD 86 /* X0 pipe last hword 0 GD off */ 
     2973#define R_TILEGX_IMM16_X1_HW0_LAST_TLS_GD 87 /* X1 pipe last hword 0 GD off */ 
     2974#define R_TILEGX_IMM16_X0_HW1_LAST_TLS_GD 88 /* X0 pipe last hword 1 GD off */ 
     2975#define R_TILEGX_IMM16_X1_HW1_LAST_TLS_GD 89 /* X1 pipe last hword 1 GD off */ 
     2976/* Relocs 90-91 are currently not defined.  */ 
     2977#define R_TILEGX_IMM16_X0_HW0_TLS_IE 92 /* X0 pipe hword 0 TLS IE offset */ 
     2978#define R_TILEGX_IMM16_X1_HW0_TLS_IE 93 /* X1 pipe hword 0 TLS IE offset */ 
     2979/* Relocs 94-99 are currently not defined.  */ 
     2980#define R_TILEGX_IMM16_X0_HW0_LAST_TLS_IE 100 /* X0 pipe last hword 0 IE off */ 
     2981#define R_TILEGX_IMM16_X1_HW0_LAST_TLS_IE 101 /* X1 pipe last hword 0 IE off */ 
     2982#define R_TILEGX_IMM16_X0_HW1_LAST_TLS_IE 102 /* X0 pipe last hword 1 IE off */ 
     2983#define R_TILEGX_IMM16_X1_HW1_LAST_TLS_IE 103 /* X1 pipe last hword 1 IE off */ 
     2984/* Relocs 104-105 are currently not defined.  */ 
     2985#define R_TILEGX_TLS_DTPMOD64   106     /* 64-bit ID of symbol's module */ 
     2986#define R_TILEGX_TLS_DTPOFF64   107     /* 64-bit offset in TLS block */ 
     2987#define R_TILEGX_TLS_TPOFF64    108     /* 64-bit offset in static TLS block */ 
     2988#define R_TILEGX_TLS_DTPMOD32   109     /* 32-bit ID of symbol's module */ 
     2989#define R_TILEGX_TLS_DTPOFF32   110     /* 32-bit offset in TLS block */ 
     2990#define R_TILEGX_TLS_TPOFF32    111     /* 32-bit offset in static TLS block */ 
     2991#define R_TILEGX_TLS_GD_CALL    112     /* "jal" for TLS GD */ 
     2992#define R_TILEGX_IMM8_X0_TLS_GD_ADD 113 /* X0 pipe "addi" for TLS GD */ 
     2993#define R_TILEGX_IMM8_X1_TLS_GD_ADD 114 /* X1 pipe "addi" for TLS GD */ 
     2994#define R_TILEGX_IMM8_Y0_TLS_GD_ADD 115 /* Y0 pipe "addi" for TLS GD */ 
     2995#define R_TILEGX_IMM8_Y1_TLS_GD_ADD 116 /* Y1 pipe "addi" for TLS GD */ 
     2996#define R_TILEGX_TLS_IE_LOAD    117     /* "ld_tls" for TLS IE */ 
     2997#define R_TILEGX_IMM8_X0_TLS_ADD 118    /* X0 pipe "addi" for TLS GD/IE */ 
     2998#define R_TILEGX_IMM8_X1_TLS_ADD 119    /* X1 pipe "addi" for TLS GD/IE */ 
     2999#define R_TILEGX_IMM8_Y0_TLS_ADD 120    /* Y0 pipe "addi" for TLS GD/IE */ 
     3000#define R_TILEGX_IMM8_Y1_TLS_ADD 121    /* Y1 pipe "addi" for TLS GD/IE */ 
     3001 
     3002#define R_TILEGX_GNU_VTINHERIT  128     /* GNU C++ vtable hierarchy */ 
     3003#define R_TILEGX_GNU_VTENTRY    129     /* GNU C++ vtable member usage */ 
     3004 
     3005#define R_TILEGX_NUM            130 
    25583006 
    25593007#endif  /* elf.h */ 
Note: See TracChangeset for help on using the changeset viewer.