github.com/shogo82148/std@v1.22.1-0.20240327122250-4e474527810c/debug/elf/elf.go (about)

     1  /*
     2   * ELF constants and data structures
     3   *
     4   * Derived from:
     5   * $FreeBSD: src/sys/sys/elf32.h,v 1.8.14.1 2005/12/30 22:13:58 marcel Exp $
     6   * $FreeBSD: src/sys/sys/elf64.h,v 1.10.14.1 2005/12/30 22:13:58 marcel Exp $
     7   * $FreeBSD: src/sys/sys/elf_common.h,v 1.15.8.1 2005/12/30 22:13:58 marcel Exp $
     8   * $FreeBSD: src/sys/alpha/include/elf.h,v 1.14 2003/09/25 01:10:22 peter Exp $
     9   * $FreeBSD: src/sys/amd64/include/elf.h,v 1.18 2004/08/03 08:21:48 dfr Exp $
    10   * $FreeBSD: src/sys/arm/include/elf.h,v 1.5.2.1 2006/06/30 21:42:52 cognet Exp $
    11   * $FreeBSD: src/sys/i386/include/elf.h,v 1.16 2004/08/02 19:12:17 dfr Exp $
    12   * $FreeBSD: src/sys/powerpc/include/elf.h,v 1.7 2004/11/02 09:47:01 ssouhlal Exp $
    13   * $FreeBSD: src/sys/sparc64/include/elf.h,v 1.12 2003/09/25 01:10:26 peter Exp $
    14   * "System V ABI" (http://www.sco.com/developers/gabi/latest/ch4.eheader.html)
    15   * "ELF for the ARM® 64-bit Architecture (AArch64)" (ARM IHI 0056B)
    16   * "RISC-V ELF psABI specification" (https://github.com/riscv-non-isa/riscv-elf-psabi-doc/blob/master/riscv-elf.adoc)
    17   * llvm/BinaryFormat/ELF.h - ELF constants and structures
    18   *
    19   * Copyright (c) 1996-1998 John D. Polstra.  All rights reserved.
    20   * Copyright (c) 2001 David E. O'Brien
    21   * Portions Copyright 2009 The Go Authors. All rights reserved.
    22   *
    23   * Redistribution and use in source and binary forms, with or without
    24   * modification, are permitted provided that the following conditions
    25   * are met:
    26   * 1. Redistributions of source code must retain the above copyright
    27   *    notice, this list of conditions and the following disclaimer.
    28   * 2. Redistributions in binary form must reproduce the above copyright
    29   *    notice, this list of conditions and the following disclaimer in the
    30   *    documentation and/or other materials provided with the distribution.
    31   *
    32   * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
    33   * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
    34   * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
    35   * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
    36   * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
    37   * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
    38   * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
    39   * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
    40   * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
    41   * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
    42   * SUCH DAMAGE.
    43   */
    44  
    45  package elf
    46  
    47  // Header.Ident 配列へのインデックス。
    48  const (
    49  	EI_CLASS      = 4
    50  	EI_DATA       = 5
    51  	EI_VERSION    = 6
    52  	EI_OSABI      = 7
    53  	EI_ABIVERSION = 8
    54  	EI_PAD        = 9
    55  	EI_NIDENT     = 16
    56  )
    57  
    58  // ELFファイルの初期マジックナンバー。
    59  const ELFMAG = "\177ELF"
    60  
    61  // Versionは、Header.Ident[EI_VERSION]とHeader.Versionに存在します。
    62  type Version byte
    63  
    64  const (
    65  	EV_NONE    Version = 0
    66  	EV_CURRENT Version = 1
    67  )
    68  
    69  func (i Version) String() string
    70  func (i Version) GoString() string
    71  
    72  // Classは、Header.Ident[EI_CLASS]とHeader.Classに存在します。
    73  type Class byte
    74  
    75  const (
    76  	ELFCLASSNONE Class = 0
    77  	ELFCLASS32   Class = 1
    78  	ELFCLASS64   Class = 2
    79  )
    80  
    81  func (i Class) String() string
    82  func (i Class) GoString() string
    83  
    84  // Dataは、Header.Ident[EI_DATA]とHeader.Dataに存在します。
    85  type Data byte
    86  
    87  const (
    88  	ELFDATANONE Data = 0
    89  	ELFDATA2LSB Data = 1
    90  	ELFDATA2MSB Data = 2
    91  )
    92  
    93  func (i Data) String() string
    94  func (i Data) GoString() string
    95  
    96  // OSABIは、Header.Ident[EI_OSABI]とHeader.OSABIに存在します。
    97  type OSABI byte
    98  
    99  const (
   100  	ELFOSABI_NONE       OSABI = 0
   101  	ELFOSABI_HPUX       OSABI = 1
   102  	ELFOSABI_NETBSD     OSABI = 2
   103  	ELFOSABI_LINUX      OSABI = 3
   104  	ELFOSABI_HURD       OSABI = 4
   105  	ELFOSABI_86OPEN     OSABI = 5
   106  	ELFOSABI_SOLARIS    OSABI = 6
   107  	ELFOSABI_AIX        OSABI = 7
   108  	ELFOSABI_IRIX       OSABI = 8
   109  	ELFOSABI_FREEBSD    OSABI = 9
   110  	ELFOSABI_TRU64      OSABI = 10
   111  	ELFOSABI_MODESTO    OSABI = 11
   112  	ELFOSABI_OPENBSD    OSABI = 12
   113  	ELFOSABI_OPENVMS    OSABI = 13
   114  	ELFOSABI_NSK        OSABI = 14
   115  	ELFOSABI_AROS       OSABI = 15
   116  	ELFOSABI_FENIXOS    OSABI = 16
   117  	ELFOSABI_CLOUDABI   OSABI = 17
   118  	ELFOSABI_ARM        OSABI = 97
   119  	ELFOSABI_STANDALONE OSABI = 255
   120  )
   121  
   122  func (i OSABI) String() string
   123  func (i OSABI) GoString() string
   124  
   125  // Typeは、Header.Typeに存在します。
   126  type Type uint16
   127  
   128  const (
   129  	ET_NONE   Type = 0
   130  	ET_REL    Type = 1
   131  	ET_EXEC   Type = 2
   132  	ET_DYN    Type = 3
   133  	ET_CORE   Type = 4
   134  	ET_LOOS   Type = 0xfe00
   135  	ET_HIOS   Type = 0xfeff
   136  	ET_LOPROC Type = 0xff00
   137  	ET_HIPROC Type = 0xffff
   138  )
   139  
   140  func (i Type) String() string
   141  func (i Type) GoString() string
   142  
   143  // Machineは、Header.Machineに存在します。
   144  type Machine uint16
   145  
   146  const (
   147  	EM_NONE          Machine = 0
   148  	EM_M32           Machine = 1
   149  	EM_SPARC         Machine = 2
   150  	EM_386           Machine = 3
   151  	EM_68K           Machine = 4
   152  	EM_88K           Machine = 5
   153  	EM_860           Machine = 7
   154  	EM_MIPS          Machine = 8
   155  	EM_S370          Machine = 9
   156  	EM_MIPS_RS3_LE   Machine = 10
   157  	EM_PARISC        Machine = 15
   158  	EM_VPP500        Machine = 17
   159  	EM_SPARC32PLUS   Machine = 18
   160  	EM_960           Machine = 19
   161  	EM_PPC           Machine = 20
   162  	EM_PPC64         Machine = 21
   163  	EM_S390          Machine = 22
   164  	EM_V800          Machine = 36
   165  	EM_FR20          Machine = 37
   166  	EM_RH32          Machine = 38
   167  	EM_RCE           Machine = 39
   168  	EM_ARM           Machine = 40
   169  	EM_SH            Machine = 42
   170  	EM_SPARCV9       Machine = 43
   171  	EM_TRICORE       Machine = 44
   172  	EM_ARC           Machine = 45
   173  	EM_H8_300        Machine = 46
   174  	EM_H8_300H       Machine = 47
   175  	EM_H8S           Machine = 48
   176  	EM_H8_500        Machine = 49
   177  	EM_IA_64         Machine = 50
   178  	EM_MIPS_X        Machine = 51
   179  	EM_COLDFIRE      Machine = 52
   180  	EM_68HC12        Machine = 53
   181  	EM_MMA           Machine = 54
   182  	EM_PCP           Machine = 55
   183  	EM_NCPU          Machine = 56
   184  	EM_NDR1          Machine = 57
   185  	EM_STARCORE      Machine = 58
   186  	EM_ME16          Machine = 59
   187  	EM_ST100         Machine = 60
   188  	EM_TINYJ         Machine = 61
   189  	EM_X86_64        Machine = 62
   190  	EM_PDSP          Machine = 63
   191  	EM_PDP10         Machine = 64
   192  	EM_PDP11         Machine = 65
   193  	EM_FX66          Machine = 66
   194  	EM_ST9PLUS       Machine = 67
   195  	EM_ST7           Machine = 68
   196  	EM_68HC16        Machine = 69
   197  	EM_68HC11        Machine = 70
   198  	EM_68HC08        Machine = 71
   199  	EM_68HC05        Machine = 72
   200  	EM_SVX           Machine = 73
   201  	EM_ST19          Machine = 74
   202  	EM_VAX           Machine = 75
   203  	EM_CRIS          Machine = 76
   204  	EM_JAVELIN       Machine = 77
   205  	EM_FIREPATH      Machine = 78
   206  	EM_ZSP           Machine = 79
   207  	EM_MMIX          Machine = 80
   208  	EM_HUANY         Machine = 81
   209  	EM_PRISM         Machine = 82
   210  	EM_AVR           Machine = 83
   211  	EM_FR30          Machine = 84
   212  	EM_D10V          Machine = 85
   213  	EM_D30V          Machine = 86
   214  	EM_V850          Machine = 87
   215  	EM_M32R          Machine = 88
   216  	EM_MN10300       Machine = 89
   217  	EM_MN10200       Machine = 90
   218  	EM_PJ            Machine = 91
   219  	EM_OPENRISC      Machine = 92
   220  	EM_ARC_COMPACT   Machine = 93
   221  	EM_XTENSA        Machine = 94
   222  	EM_VIDEOCORE     Machine = 95
   223  	EM_TMM_GPP       Machine = 96
   224  	EM_NS32K         Machine = 97
   225  	EM_TPC           Machine = 98
   226  	EM_SNP1K         Machine = 99
   227  	EM_ST200         Machine = 100
   228  	EM_IP2K          Machine = 101
   229  	EM_MAX           Machine = 102
   230  	EM_CR            Machine = 103
   231  	EM_F2MC16        Machine = 104
   232  	EM_MSP430        Machine = 105
   233  	EM_BLACKFIN      Machine = 106
   234  	EM_SE_C33        Machine = 107
   235  	EM_SEP           Machine = 108
   236  	EM_ARCA          Machine = 109
   237  	EM_UNICORE       Machine = 110
   238  	EM_EXCESS        Machine = 111
   239  	EM_DXP           Machine = 112
   240  	EM_ALTERA_NIOS2  Machine = 113
   241  	EM_CRX           Machine = 114
   242  	EM_XGATE         Machine = 115
   243  	EM_C166          Machine = 116
   244  	EM_M16C          Machine = 117
   245  	EM_DSPIC30F      Machine = 118
   246  	EM_CE            Machine = 119
   247  	EM_M32C          Machine = 120
   248  	EM_TSK3000       Machine = 131
   249  	EM_RS08          Machine = 132
   250  	EM_SHARC         Machine = 133
   251  	EM_ECOG2         Machine = 134
   252  	EM_SCORE7        Machine = 135
   253  	EM_DSP24         Machine = 136
   254  	EM_VIDEOCORE3    Machine = 137
   255  	EM_LATTICEMICO32 Machine = 138
   256  	EM_SE_C17        Machine = 139
   257  	EM_TI_C6000      Machine = 140
   258  	EM_TI_C2000      Machine = 141
   259  	EM_TI_C5500      Machine = 142
   260  	EM_TI_ARP32      Machine = 143
   261  	EM_TI_PRU        Machine = 144
   262  	EM_MMDSP_PLUS    Machine = 160
   263  	EM_CYPRESS_M8C   Machine = 161
   264  	EM_R32C          Machine = 162
   265  	EM_TRIMEDIA      Machine = 163
   266  	EM_QDSP6         Machine = 164
   267  	EM_8051          Machine = 165
   268  	EM_STXP7X        Machine = 166
   269  	EM_NDS32         Machine = 167
   270  	EM_ECOG1         Machine = 168
   271  	EM_ECOG1X        Machine = 168
   272  	EM_MAXQ30        Machine = 169
   273  	EM_XIMO16        Machine = 170
   274  	EM_MANIK         Machine = 171
   275  	EM_CRAYNV2       Machine = 172
   276  	EM_RX            Machine = 173
   277  	EM_METAG         Machine = 174
   278  	EM_MCST_ELBRUS   Machine = 175
   279  	EM_ECOG16        Machine = 176
   280  	EM_CR16          Machine = 177
   281  	EM_ETPU          Machine = 178
   282  	EM_SLE9X         Machine = 179
   283  	EM_L10M          Machine = 180
   284  	EM_K10M          Machine = 181
   285  	EM_AARCH64       Machine = 183
   286  	EM_AVR32         Machine = 185
   287  	EM_STM8          Machine = 186
   288  	EM_TILE64        Machine = 187
   289  	EM_TILEPRO       Machine = 188
   290  	EM_MICROBLAZE    Machine = 189
   291  	EM_CUDA          Machine = 190
   292  	EM_TILEGX        Machine = 191
   293  	EM_CLOUDSHIELD   Machine = 192
   294  	EM_COREA_1ST     Machine = 193
   295  	EM_COREA_2ND     Machine = 194
   296  	EM_ARC_COMPACT2  Machine = 195
   297  	EM_OPEN8         Machine = 196
   298  	EM_RL78          Machine = 197
   299  	EM_VIDEOCORE5    Machine = 198
   300  	EM_78KOR         Machine = 199
   301  	EM_56800EX       Machine = 200
   302  	EM_BA1           Machine = 201
   303  	EM_BA2           Machine = 202
   304  	EM_XCORE         Machine = 203
   305  	EM_MCHP_PIC      Machine = 204
   306  	EM_INTEL205      Machine = 205
   307  	EM_INTEL206      Machine = 206
   308  	EM_INTEL207      Machine = 207
   309  	EM_INTEL208      Machine = 208
   310  	EM_INTEL209      Machine = 209
   311  	EM_KM32          Machine = 210
   312  	EM_KMX32         Machine = 211
   313  	EM_KMX16         Machine = 212
   314  	EM_KMX8          Machine = 213
   315  	EM_KVARC         Machine = 214
   316  	EM_CDP           Machine = 215
   317  	EM_COGE          Machine = 216
   318  	EM_COOL          Machine = 217
   319  	EM_NORC          Machine = 218
   320  	EM_CSR_KALIMBA   Machine = 219
   321  	EM_Z80           Machine = 220
   322  	EM_VISIUM        Machine = 221
   323  	EM_FT32          Machine = 222
   324  	EM_MOXIE         Machine = 223
   325  	EM_AMDGPU        Machine = 224
   326  	EM_RISCV         Machine = 243
   327  	EM_LANAI         Machine = 244
   328  	EM_BPF           Machine = 247
   329  	EM_LOONGARCH     Machine = 258
   330  
   331  	/* 非標準または非推奨。 */
   332  	EM_486         Machine = 6
   333  	EM_MIPS_RS4_BE Machine = 10
   334  	EM_ALPHA_STD   Machine = 41
   335  	EM_ALPHA       Machine = 0x9026
   336  )
   337  
   338  func (i Machine) String() string
   339  func (i Machine) GoString() string
   340  
   341  // 特別なセクションインデックス。
   342  type SectionIndex int
   343  
   344  const (
   345  	SHN_UNDEF     SectionIndex = 0
   346  	SHN_LORESERVE SectionIndex = 0xff00
   347  	SHN_LOPROC    SectionIndex = 0xff00
   348  	SHN_HIPROC    SectionIndex = 0xff1f
   349  	SHN_LOOS      SectionIndex = 0xff20
   350  	SHN_HIOS      SectionIndex = 0xff3f
   351  	SHN_ABS       SectionIndex = 0xfff1
   352  	SHN_COMMON    SectionIndex = 0xfff2
   353  	SHN_XINDEX    SectionIndex = 0xffff
   354  	SHN_HIRESERVE SectionIndex = 0xffff
   355  )
   356  
   357  func (i SectionIndex) String() string
   358  func (i SectionIndex) GoString() string
   359  
   360  // セクションのタイプ。
   361  type SectionType uint32
   362  
   363  const (
   364  	SHT_NULL           SectionType = 0
   365  	SHT_PROGBITS       SectionType = 1
   366  	SHT_SYMTAB         SectionType = 2
   367  	SHT_STRTAB         SectionType = 3
   368  	SHT_RELA           SectionType = 4
   369  	SHT_HASH           SectionType = 5
   370  	SHT_DYNAMIC        SectionType = 6
   371  	SHT_NOTE           SectionType = 7
   372  	SHT_NOBITS         SectionType = 8
   373  	SHT_REL            SectionType = 9
   374  	SHT_SHLIB          SectionType = 10
   375  	SHT_DYNSYM         SectionType = 11
   376  	SHT_INIT_ARRAY     SectionType = 14
   377  	SHT_FINI_ARRAY     SectionType = 15
   378  	SHT_PREINIT_ARRAY  SectionType = 16
   379  	SHT_GROUP          SectionType = 17
   380  	SHT_SYMTAB_SHNDX   SectionType = 18
   381  	SHT_LOOS           SectionType = 0x60000000
   382  	SHT_GNU_ATTRIBUTES SectionType = 0x6ffffff5
   383  	SHT_GNU_HASH       SectionType = 0x6ffffff6
   384  	SHT_GNU_LIBLIST    SectionType = 0x6ffffff7
   385  	SHT_GNU_VERDEF     SectionType = 0x6ffffffd
   386  	SHT_GNU_VERNEED    SectionType = 0x6ffffffe
   387  	SHT_GNU_VERSYM     SectionType = 0x6fffffff
   388  	SHT_HIOS           SectionType = 0x6fffffff
   389  	SHT_LOPROC         SectionType = 0x70000000
   390  	SHT_MIPS_ABIFLAGS  SectionType = 0x7000002a
   391  	SHT_HIPROC         SectionType = 0x7fffffff
   392  	SHT_LOUSER         SectionType = 0x80000000
   393  	SHT_HIUSER         SectionType = 0xffffffff
   394  )
   395  
   396  func (i SectionType) String() string
   397  func (i SectionType) GoString() string
   398  
   399  // セクションのフラグ。
   400  type SectionFlag uint32
   401  
   402  const (
   403  	SHF_WRITE            SectionFlag = 0x1
   404  	SHF_ALLOC            SectionFlag = 0x2
   405  	SHF_EXECINSTR        SectionFlag = 0x4
   406  	SHF_MERGE            SectionFlag = 0x10
   407  	SHF_STRINGS          SectionFlag = 0x20
   408  	SHF_INFO_LINK        SectionFlag = 0x40
   409  	SHF_LINK_ORDER       SectionFlag = 0x80
   410  	SHF_OS_NONCONFORMING SectionFlag = 0x100
   411  	SHF_GROUP            SectionFlag = 0x200
   412  	SHF_TLS              SectionFlag = 0x400
   413  	SHF_COMPRESSED       SectionFlag = 0x800
   414  	SHF_MASKOS           SectionFlag = 0x0ff00000
   415  	SHF_MASKPROC         SectionFlag = 0xf0000000
   416  )
   417  
   418  func (i SectionFlag) String() string
   419  func (i SectionFlag) GoString() string
   420  
   421  // セクションの圧縮タイプ。
   422  type CompressionType int
   423  
   424  const (
   425  	COMPRESS_ZLIB   CompressionType = 1
   426  	COMPRESS_ZSTD   CompressionType = 2
   427  	COMPRESS_LOOS   CompressionType = 0x60000000
   428  	COMPRESS_HIOS   CompressionType = 0x6fffffff
   429  	COMPRESS_LOPROC CompressionType = 0x70000000
   430  	COMPRESS_HIPROC CompressionType = 0x7fffffff
   431  )
   432  
   433  func (i CompressionType) String() string
   434  func (i CompressionType) GoString() string
   435  
   436  // Prog.Type
   437  type ProgType int
   438  
   439  const (
   440  	PT_NULL    ProgType = 0
   441  	PT_LOAD    ProgType = 1
   442  	PT_DYNAMIC ProgType = 2
   443  	PT_INTERP  ProgType = 3
   444  	PT_NOTE    ProgType = 4
   445  	PT_SHLIB   ProgType = 5
   446  	PT_PHDR    ProgType = 6
   447  	PT_TLS     ProgType = 7
   448  
   449  	PT_LOOS ProgType = 0x60000000
   450  
   451  	PT_GNU_EH_FRAME ProgType = 0x6474e550
   452  	PT_GNU_STACK    ProgType = 0x6474e551
   453  	PT_GNU_RELRO    ProgType = 0x6474e552
   454  	PT_GNU_PROPERTY ProgType = 0x6474e553
   455  	PT_GNU_MBIND_LO ProgType = 0x6474e555
   456  	PT_GNU_MBIND_HI ProgType = 0x6474f554
   457  
   458  	PT_PAX_FLAGS ProgType = 0x65041580
   459  
   460  	PT_OPENBSD_RANDOMIZE ProgType = 0x65a3dbe6
   461  	PT_OPENBSD_WXNEEDED  ProgType = 0x65a3dbe7
   462  	PT_OPENBSD_NOBTCFI   ProgType = 0x65a3dbe8
   463  	PT_OPENBSD_BOOTDATA  ProgType = 0x65a41be6
   464  
   465  	PT_SUNW_EH_FRAME ProgType = 0x6474e550
   466  	PT_SUNWSTACK     ProgType = 0x6ffffffb
   467  
   468  	PT_HIOS ProgType = 0x6fffffff
   469  
   470  	PT_LOPROC ProgType = 0x70000000
   471  
   472  	PT_ARM_ARCHEXT ProgType = 0x70000000
   473  	PT_ARM_EXIDX   ProgType = 0x70000001
   474  
   475  	PT_AARCH64_ARCHEXT ProgType = 0x70000000
   476  	PT_AARCH64_UNWIND  ProgType = 0x70000001
   477  
   478  	PT_MIPS_REGINFO  ProgType = 0x70000000
   479  	PT_MIPS_RTPROC   ProgType = 0x70000001
   480  	PT_MIPS_OPTIONS  ProgType = 0x70000002
   481  	PT_MIPS_ABIFLAGS ProgType = 0x70000003
   482  
   483  	PT_S390_PGSTE ProgType = 0x70000000
   484  
   485  	PT_HIPROC ProgType = 0x7fffffff
   486  )
   487  
   488  func (i ProgType) String() string
   489  func (i ProgType) GoString() string
   490  
   491  // Prog.Flag
   492  type ProgFlag uint32
   493  
   494  const (
   495  	PF_X        ProgFlag = 0x1
   496  	PF_W        ProgFlag = 0x2
   497  	PF_R        ProgFlag = 0x4
   498  	PF_MASKOS   ProgFlag = 0x0ff00000
   499  	PF_MASKPROC ProgFlag = 0xf0000000
   500  )
   501  
   502  func (i ProgFlag) String() string
   503  func (i ProgFlag) GoString() string
   504  
   505  // Dyn.Tag
   506  type DynTag int
   507  
   508  const (
   509  	DT_NULL         DynTag = 0
   510  	DT_NEEDED       DynTag = 1
   511  	DT_PLTRELSZ     DynTag = 2
   512  	DT_PLTGOT       DynTag = 3
   513  	DT_HASH         DynTag = 4
   514  	DT_STRTAB       DynTag = 5
   515  	DT_SYMTAB       DynTag = 6
   516  	DT_RELA         DynTag = 7
   517  	DT_RELASZ       DynTag = 8
   518  	DT_RELAENT      DynTag = 9
   519  	DT_STRSZ        DynTag = 10
   520  	DT_SYMENT       DynTag = 11
   521  	DT_INIT         DynTag = 12
   522  	DT_FINI         DynTag = 13
   523  	DT_SONAME       DynTag = 14
   524  	DT_RPATH        DynTag = 15
   525  	DT_SYMBOLIC     DynTag = 16
   526  	DT_REL          DynTag = 17
   527  	DT_RELSZ        DynTag = 18
   528  	DT_RELENT       DynTag = 19
   529  	DT_PLTREL       DynTag = 20
   530  	DT_DEBUG        DynTag = 21
   531  	DT_TEXTREL      DynTag = 22
   532  	DT_JMPREL       DynTag = 23
   533  	DT_BIND_NOW     DynTag = 24
   534  	DT_INIT_ARRAY   DynTag = 25
   535  	DT_FINI_ARRAY   DynTag = 26
   536  	DT_INIT_ARRAYSZ DynTag = 27
   537  	DT_FINI_ARRAYSZ DynTag = 28
   538  	DT_RUNPATH      DynTag = 29
   539  	DT_FLAGS        DynTag = 30
   540  	DT_ENCODING     DynTag = 32
   541  
   542  	DT_PREINIT_ARRAY   DynTag = 32
   543  	DT_PREINIT_ARRAYSZ DynTag = 33
   544  	DT_SYMTAB_SHNDX    DynTag = 34
   545  
   546  	DT_LOOS DynTag = 0x6000000d
   547  	DT_HIOS DynTag = 0x6ffff000
   548  
   549  	DT_VALRNGLO       DynTag = 0x6ffffd00
   550  	DT_GNU_PRELINKED  DynTag = 0x6ffffdf5
   551  	DT_GNU_CONFLICTSZ DynTag = 0x6ffffdf6
   552  	DT_GNU_LIBLISTSZ  DynTag = 0x6ffffdf7
   553  	DT_CHECKSUM       DynTag = 0x6ffffdf8
   554  	DT_PLTPADSZ       DynTag = 0x6ffffdf9
   555  	DT_MOVEENT        DynTag = 0x6ffffdfa
   556  	DT_MOVESZ         DynTag = 0x6ffffdfb
   557  	DT_FEATURE        DynTag = 0x6ffffdfc
   558  	DT_POSFLAG_1      DynTag = 0x6ffffdfd
   559  	DT_SYMINSZ        DynTag = 0x6ffffdfe
   560  	DT_SYMINENT       DynTag = 0x6ffffdff
   561  	DT_VALRNGHI       DynTag = 0x6ffffdff
   562  
   563  	DT_ADDRRNGLO    DynTag = 0x6ffffe00
   564  	DT_GNU_HASH     DynTag = 0x6ffffef5
   565  	DT_TLSDESC_PLT  DynTag = 0x6ffffef6
   566  	DT_TLSDESC_GOT  DynTag = 0x6ffffef7
   567  	DT_GNU_CONFLICT DynTag = 0x6ffffef8
   568  	DT_GNU_LIBLIST  DynTag = 0x6ffffef9
   569  	DT_CONFIG       DynTag = 0x6ffffefa
   570  	DT_DEPAUDIT     DynTag = 0x6ffffefb
   571  	DT_AUDIT        DynTag = 0x6ffffefc
   572  	DT_PLTPAD       DynTag = 0x6ffffefd
   573  	DT_MOVETAB      DynTag = 0x6ffffefe
   574  	DT_SYMINFO      DynTag = 0x6ffffeff
   575  	DT_ADDRRNGHI    DynTag = 0x6ffffeff
   576  
   577  	DT_VERSYM     DynTag = 0x6ffffff0
   578  	DT_RELACOUNT  DynTag = 0x6ffffff9
   579  	DT_RELCOUNT   DynTag = 0x6ffffffa
   580  	DT_FLAGS_1    DynTag = 0x6ffffffb
   581  	DT_VERDEF     DynTag = 0x6ffffffc
   582  	DT_VERDEFNUM  DynTag = 0x6ffffffd
   583  	DT_VERNEED    DynTag = 0x6ffffffe
   584  	DT_VERNEEDNUM DynTag = 0x6fffffff
   585  
   586  	DT_LOPROC DynTag = 0x70000000
   587  
   588  	DT_MIPS_RLD_VERSION           DynTag = 0x70000001
   589  	DT_MIPS_TIME_STAMP            DynTag = 0x70000002
   590  	DT_MIPS_ICHECKSUM             DynTag = 0x70000003
   591  	DT_MIPS_IVERSION              DynTag = 0x70000004
   592  	DT_MIPS_FLAGS                 DynTag = 0x70000005
   593  	DT_MIPS_BASE_ADDRESS          DynTag = 0x70000006
   594  	DT_MIPS_MSYM                  DynTag = 0x70000007
   595  	DT_MIPS_CONFLICT              DynTag = 0x70000008
   596  	DT_MIPS_LIBLIST               DynTag = 0x70000009
   597  	DT_MIPS_LOCAL_GOTNO           DynTag = 0x7000000a
   598  	DT_MIPS_CONFLICTNO            DynTag = 0x7000000b
   599  	DT_MIPS_LIBLISTNO             DynTag = 0x70000010
   600  	DT_MIPS_SYMTABNO              DynTag = 0x70000011
   601  	DT_MIPS_UNREFEXTNO            DynTag = 0x70000012
   602  	DT_MIPS_GOTSYM                DynTag = 0x70000013
   603  	DT_MIPS_HIPAGENO              DynTag = 0x70000014
   604  	DT_MIPS_RLD_MAP               DynTag = 0x70000016
   605  	DT_MIPS_DELTA_CLASS           DynTag = 0x70000017
   606  	DT_MIPS_DELTA_CLASS_NO        DynTag = 0x70000018
   607  	DT_MIPS_DELTA_INSTANCE        DynTag = 0x70000019
   608  	DT_MIPS_DELTA_INSTANCE_NO     DynTag = 0x7000001a
   609  	DT_MIPS_DELTA_RELOC           DynTag = 0x7000001b
   610  	DT_MIPS_DELTA_RELOC_NO        DynTag = 0x7000001c
   611  	DT_MIPS_DELTA_SYM             DynTag = 0x7000001d
   612  	DT_MIPS_DELTA_SYM_NO          DynTag = 0x7000001e
   613  	DT_MIPS_DELTA_CLASSSYM        DynTag = 0x70000020
   614  	DT_MIPS_DELTA_CLASSSYM_NO     DynTag = 0x70000021
   615  	DT_MIPS_CXX_FLAGS             DynTag = 0x70000022
   616  	DT_MIPS_PIXIE_INIT            DynTag = 0x70000023
   617  	DT_MIPS_SYMBOL_LIB            DynTag = 0x70000024
   618  	DT_MIPS_LOCALPAGE_GOTIDX      DynTag = 0x70000025
   619  	DT_MIPS_LOCAL_GOTIDX          DynTag = 0x70000026
   620  	DT_MIPS_HIDDEN_GOTIDX         DynTag = 0x70000027
   621  	DT_MIPS_PROTECTED_GOTIDX      DynTag = 0x70000028
   622  	DT_MIPS_OPTIONS               DynTag = 0x70000029
   623  	DT_MIPS_INTERFACE             DynTag = 0x7000002a
   624  	DT_MIPS_DYNSTR_ALIGN          DynTag = 0x7000002b
   625  	DT_MIPS_INTERFACE_SIZE        DynTag = 0x7000002c
   626  	DT_MIPS_RLD_TEXT_RESOLVE_ADDR DynTag = 0x7000002d
   627  	DT_MIPS_PERF_SUFFIX           DynTag = 0x7000002e
   628  	DT_MIPS_COMPACT_SIZE          DynTag = 0x7000002f
   629  	DT_MIPS_GP_VALUE              DynTag = 0x70000030
   630  	DT_MIPS_AUX_DYNAMIC           DynTag = 0x70000031
   631  	DT_MIPS_PLTGOT                DynTag = 0x70000032
   632  	DT_MIPS_RWPLT                 DynTag = 0x70000034
   633  	DT_MIPS_RLD_MAP_REL           DynTag = 0x70000035
   634  
   635  	DT_PPC_GOT DynTag = 0x70000000
   636  	DT_PPC_OPT DynTag = 0x70000001
   637  
   638  	DT_PPC64_GLINK DynTag = 0x70000000
   639  	DT_PPC64_OPD   DynTag = 0x70000001
   640  	DT_PPC64_OPDSZ DynTag = 0x70000002
   641  	DT_PPC64_OPT   DynTag = 0x70000003
   642  
   643  	DT_SPARC_REGISTER DynTag = 0x70000001
   644  
   645  	DT_AUXILIARY DynTag = 0x7ffffffd
   646  	DT_USED      DynTag = 0x7ffffffe
   647  	DT_FILTER    DynTag = 0x7fffffff
   648  
   649  	DT_HIPROC DynTag = 0x7fffffff
   650  )
   651  
   652  func (i DynTag) String() string
   653  func (i DynTag) GoString() string
   654  
   655  // DT_FLAGSの値。
   656  type DynFlag int
   657  
   658  const (
   659  	DF_ORIGIN DynFlag = 0x0001
   660  
   661  	DF_SYMBOLIC DynFlag = 0x0002
   662  	DF_TEXTREL  DynFlag = 0x0004
   663  	DF_BIND_NOW DynFlag = 0x0008
   664  
   665  	DF_STATIC_TLS DynFlag = 0x0010
   666  )
   667  
   668  func (i DynFlag) String() string
   669  func (i DynFlag) GoString() string
   670  
   671  // DT_FLAGS_1の値。
   672  type DynFlag1 uint32
   673  
   674  const (
   675  	// このオブジェクトのすべての再配置がプログラムの制御を返す前に処理される必要があることを示します。
   676  	DF_1_NOW DynFlag1 = 0x00000001
   677  	// 未使用。
   678  	DF_1_GLOBAL DynFlag1 = 0x00000002
   679  	// オブジェクトがグループのメンバーであることを示します。
   680  	DF_1_GROUP DynFlag1 = 0x00000004
   681  	// オブジェクトがプロセスから削除できないことを示します。
   682  	DF_1_NODELETE DynFlag1 = 0x00000008
   683  	// フィルターにのみ意味があります。すべての関連するフィルティーが
   684  	// 即座に処理されることを示します。
   685  	DF_1_LOADFLTR DynFlag1 = 0x00000010
   686  	// このオブジェクトの初期化セクションが、他のどのオブジェクトよりも先に実行されることを示します。
   687  	DF_1_INITFIRST DynFlag1 = 0x00000020
   688  	// オブジェクトがdlopenを使用して実行中のプロセスに追加できないことを示します。
   689  	DF_1_NOOPEN DynFlag1 = 0x00000040
   690  	// オブジェクトが$ORIGIN処理を必要とすることを示します。
   691  	DF_1_ORIGIN DynFlag1 = 0x00000080
   692  	// オブジェクトが直接バインディング情報を使用する必要があることを示します。
   693  	DF_1_DIRECT DynFlag1 = 0x00000100
   694  	// 未使用。
   695  	DF_1_TRANS DynFlag1 = 0x00000200
   696  	// オブジェクトのシンボルテーブルが、通常は実行可能ファイルである主要なロードオブジェクトを除く
   697  	// すべてのシンボルの前に介在することを示します。
   698  	DF_1_INTERPOSE DynFlag1 = 0x00000400
   699  	// このオブジェクトの依存関係の検索が、任意のデフォルトのライブラリ検索パスを無視することを示します。
   700  	DF_1_NODEFLIB DynFlag1 = 0x00000800
   701  	// このオブジェクトがdldumpによってダンプされないことを示します。候補は、
   702  	// 代替オブジェクトを生成するときに含まれる可能性がある再配置のないオブジェクトです。
   703  	DF_1_NODUMP DynFlag1 = 0x00001000
   704  	// このオブジェクトがcrleによって生成された設定代替オブジェクトであることを識別します。
   705  	// ランタイムリンカーが設定ファイル$ORIGIN/ld.config.app-nameを検索するようにトリガーします。
   706  	DF_1_CONFALT DynFlag1 = 0x00002000
   707  	// フィルティーにのみ意味があります。フィルターがさらなるフィルティーを検索するのを終了します。
   708  	DF_1_ENDFILTEE DynFlag1 = 0x00004000
   709  	// このオブジェクトに変位再配置が適用されていることを示します。
   710  	DF_1_DISPRELDNE DynFlag1 = 0x00008000
   711  	// このオブジェクトには変位再配置が保留中であることを示します。
   712  	DF_1_DISPRELPND DynFlag1 = 0x00010000
   713  	// このオブジェクトが直接バインドできないシンボルを含んでいることを示します。
   714  	DF_1_NODIRECT DynFlag1 = 0x00020000
   715  	// カーネルのランタイムリンカーによる内部使用のために予約されています。
   716  	DF_1_IGNMULDEF DynFlag1 = 0x00040000
   717  	// カーネルのランタイムリンカーによる内部使用のために予約されています。
   718  	DF_1_NOKSYMS DynFlag1 = 0x00080000
   719  	// カーネルのランタイムリンカーによる内部使用のために予約されています。
   720  	DF_1_NOHDR DynFlag1 = 0x00100000
   721  	// このオブジェクトがリンクエディタによる元の構築以降に編集されたか、
   722  	// または変更されたことを示します。
   723  	DF_1_EDITED DynFlag1 = 0x00200000
   724  	// カーネルのランタイムリンカーによる内部使用のために予約されています。
   725  	DF_1_NORELOC DynFlag1 = 0x00400000
   726  	// オブジェクトが個々のシンボルを含んでおり、それらのシンボルは通常実行可能ファイルである
   727  	// 主要なロードオブジェクトを除くすべてのシンボルよりも前に介在するべきであることを示します。
   728  	DF_1_SYMINTPOSE DynFlag1 = 0x00800000
   729  	// 実行可能ファイルがグローバル監査を必要とすることを示します。
   730  	DF_1_GLOBAUDIT DynFlag1 = 0x01000000
   731  	// オブジェクトがシングルトンシンボルを定義するか、またはそれらを参照することを示します。
   732  	DF_1_SINGLETON DynFlag1 = 0x02000000
   733  	// オブジェクトがスタブであることを示します。
   734  	DF_1_STUB DynFlag1 = 0x04000000
   735  	// オブジェクトが位置独立型実行可能ファイルであることを示します。
   736  	DF_1_PIE DynFlag1 = 0x08000000
   737  	// オブジェクトがカーネルモジュールであることを示します。
   738  	DF_1_KMOD DynFlag1 = 0x10000000
   739  	// オブジェクトが弱い標準フィルターであることを示します。
   740  	DF_1_WEAKFILTER DynFlag1 = 0x20000000
   741  	// 未使用。
   742  	DF_1_NOCOMMON DynFlag1 = 0x40000000
   743  )
   744  
   745  func (i DynFlag1) String() string
   746  func (i DynFlag1) GoString() string
   747  
   748  // NTypeの値; コアファイルで使用されます。
   749  type NType int
   750  
   751  const (
   752  	NT_PRSTATUS NType = 1
   753  	NT_FPREGSET NType = 2
   754  	NT_PRPSINFO NType = 3
   755  )
   756  
   757  func (i NType) String() string
   758  func (i NType) GoString() string
   759  
   760  /* Symbol Binding - ELFNN_ST_BIND - st_info */
   761  type SymBind int
   762  
   763  const (
   764  	STB_LOCAL  SymBind = 0
   765  	STB_GLOBAL SymBind = 1
   766  	STB_WEAK   SymBind = 2
   767  	STB_LOOS   SymBind = 10
   768  	STB_HIOS   SymBind = 12
   769  	STB_LOPROC SymBind = 13
   770  	STB_HIPROC SymBind = 15
   771  )
   772  
   773  func (i SymBind) String() string
   774  func (i SymBind) GoString() string
   775  
   776  /* Symbol type - ELFNN_ST_TYPE - st_info */
   777  type SymType int
   778  
   779  const (
   780  	STT_NOTYPE  SymType = 0
   781  	STT_OBJECT  SymType = 1
   782  	STT_FUNC    SymType = 2
   783  	STT_SECTION SymType = 3
   784  	STT_FILE    SymType = 4
   785  	STT_COMMON  SymType = 5
   786  	STT_TLS     SymType = 6
   787  	STT_LOOS    SymType = 10
   788  	STT_HIOS    SymType = 12
   789  	STT_LOPROC  SymType = 13
   790  	STT_HIPROC  SymType = 15
   791  )
   792  
   793  func (i SymType) String() string
   794  func (i SymType) GoString() string
   795  
   796  /* Symbol visibility - ELFNN_ST_VISIBILITY - st_other */
   797  type SymVis int
   798  
   799  const (
   800  	STV_DEFAULT   SymVis = 0x0
   801  	STV_INTERNAL  SymVis = 0x1
   802  	STV_HIDDEN    SymVis = 0x2
   803  	STV_PROTECTED SymVis = 0x3
   804  )
   805  
   806  func (i SymVis) String() string
   807  func (i SymVis) GoString() string
   808  
   809  // x86-64のための再配置タイプ。
   810  type R_X86_64 int
   811  
   812  const (
   813  	R_X86_64_NONE            R_X86_64 = 0
   814  	R_X86_64_64              R_X86_64 = 1
   815  	R_X86_64_PC32            R_X86_64 = 2
   816  	R_X86_64_GOT32           R_X86_64 = 3
   817  	R_X86_64_PLT32           R_X86_64 = 4
   818  	R_X86_64_COPY            R_X86_64 = 5
   819  	R_X86_64_GLOB_DAT        R_X86_64 = 6
   820  	R_X86_64_JMP_SLOT        R_X86_64 = 7
   821  	R_X86_64_RELATIVE        R_X86_64 = 8
   822  	R_X86_64_GOTPCREL        R_X86_64 = 9
   823  	R_X86_64_32              R_X86_64 = 10
   824  	R_X86_64_32S             R_X86_64 = 11
   825  	R_X86_64_16              R_X86_64 = 12
   826  	R_X86_64_PC16            R_X86_64 = 13
   827  	R_X86_64_8               R_X86_64 = 14
   828  	R_X86_64_PC8             R_X86_64 = 15
   829  	R_X86_64_DTPMOD64        R_X86_64 = 16
   830  	R_X86_64_DTPOFF64        R_X86_64 = 17
   831  	R_X86_64_TPOFF64         R_X86_64 = 18
   832  	R_X86_64_TLSGD           R_X86_64 = 19
   833  	R_X86_64_TLSLD           R_X86_64 = 20
   834  	R_X86_64_DTPOFF32        R_X86_64 = 21
   835  	R_X86_64_GOTTPOFF        R_X86_64 = 22
   836  	R_X86_64_TPOFF32         R_X86_64 = 23
   837  	R_X86_64_PC64            R_X86_64 = 24
   838  	R_X86_64_GOTOFF64        R_X86_64 = 25
   839  	R_X86_64_GOTPC32         R_X86_64 = 26
   840  	R_X86_64_GOT64           R_X86_64 = 27
   841  	R_X86_64_GOTPCREL64      R_X86_64 = 28
   842  	R_X86_64_GOTPC64         R_X86_64 = 29
   843  	R_X86_64_GOTPLT64        R_X86_64 = 30
   844  	R_X86_64_PLTOFF64        R_X86_64 = 31
   845  	R_X86_64_SIZE32          R_X86_64 = 32
   846  	R_X86_64_SIZE64          R_X86_64 = 33
   847  	R_X86_64_GOTPC32_TLSDESC R_X86_64 = 34
   848  	R_X86_64_TLSDESC_CALL    R_X86_64 = 35
   849  	R_X86_64_TLSDESC         R_X86_64 = 36
   850  	R_X86_64_IRELATIVE       R_X86_64 = 37
   851  	R_X86_64_RELATIVE64      R_X86_64 = 38
   852  	R_X86_64_PC32_BND        R_X86_64 = 39
   853  	R_X86_64_PLT32_BND       R_X86_64 = 40
   854  	R_X86_64_GOTPCRELX       R_X86_64 = 41
   855  	R_X86_64_REX_GOTPCRELX   R_X86_64 = 42
   856  )
   857  
   858  func (i R_X86_64) String() string
   859  func (i R_X86_64) GoString() string
   860  
   861  // AArch64(別名 arm64)のための再配置タイプ。
   862  type R_AARCH64 int
   863  
   864  const (
   865  	R_AARCH64_NONE                            R_AARCH64 = 0
   866  	R_AARCH64_P32_ABS32                       R_AARCH64 = 1
   867  	R_AARCH64_P32_ABS16                       R_AARCH64 = 2
   868  	R_AARCH64_P32_PREL32                      R_AARCH64 = 3
   869  	R_AARCH64_P32_PREL16                      R_AARCH64 = 4
   870  	R_AARCH64_P32_MOVW_UABS_G0                R_AARCH64 = 5
   871  	R_AARCH64_P32_MOVW_UABS_G0_NC             R_AARCH64 = 6
   872  	R_AARCH64_P32_MOVW_UABS_G1                R_AARCH64 = 7
   873  	R_AARCH64_P32_MOVW_SABS_G0                R_AARCH64 = 8
   874  	R_AARCH64_P32_LD_PREL_LO19                R_AARCH64 = 9
   875  	R_AARCH64_P32_ADR_PREL_LO21               R_AARCH64 = 10
   876  	R_AARCH64_P32_ADR_PREL_PG_HI21            R_AARCH64 = 11
   877  	R_AARCH64_P32_ADD_ABS_LO12_NC             R_AARCH64 = 12
   878  	R_AARCH64_P32_LDST8_ABS_LO12_NC           R_AARCH64 = 13
   879  	R_AARCH64_P32_LDST16_ABS_LO12_NC          R_AARCH64 = 14
   880  	R_AARCH64_P32_LDST32_ABS_LO12_NC          R_AARCH64 = 15
   881  	R_AARCH64_P32_LDST64_ABS_LO12_NC          R_AARCH64 = 16
   882  	R_AARCH64_P32_LDST128_ABS_LO12_NC         R_AARCH64 = 17
   883  	R_AARCH64_P32_TSTBR14                     R_AARCH64 = 18
   884  	R_AARCH64_P32_CONDBR19                    R_AARCH64 = 19
   885  	R_AARCH64_P32_JUMP26                      R_AARCH64 = 20
   886  	R_AARCH64_P32_CALL26                      R_AARCH64 = 21
   887  	R_AARCH64_P32_GOT_LD_PREL19               R_AARCH64 = 25
   888  	R_AARCH64_P32_ADR_GOT_PAGE                R_AARCH64 = 26
   889  	R_AARCH64_P32_LD32_GOT_LO12_NC            R_AARCH64 = 27
   890  	R_AARCH64_P32_TLSGD_ADR_PAGE21            R_AARCH64 = 81
   891  	R_AARCH64_P32_TLSGD_ADD_LO12_NC           R_AARCH64 = 82
   892  	R_AARCH64_P32_TLSIE_ADR_GOTTPREL_PAGE21   R_AARCH64 = 103
   893  	R_AARCH64_P32_TLSIE_LD32_GOTTPREL_LO12_NC R_AARCH64 = 104
   894  	R_AARCH64_P32_TLSIE_LD_GOTTPREL_PREL19    R_AARCH64 = 105
   895  	R_AARCH64_P32_TLSLE_MOVW_TPREL_G1         R_AARCH64 = 106
   896  	R_AARCH64_P32_TLSLE_MOVW_TPREL_G0         R_AARCH64 = 107
   897  	R_AARCH64_P32_TLSLE_MOVW_TPREL_G0_NC      R_AARCH64 = 108
   898  	R_AARCH64_P32_TLSLE_ADD_TPREL_HI12        R_AARCH64 = 109
   899  	R_AARCH64_P32_TLSLE_ADD_TPREL_LO12        R_AARCH64 = 110
   900  	R_AARCH64_P32_TLSLE_ADD_TPREL_LO12_NC     R_AARCH64 = 111
   901  	R_AARCH64_P32_TLSDESC_LD_PREL19           R_AARCH64 = 122
   902  	R_AARCH64_P32_TLSDESC_ADR_PREL21          R_AARCH64 = 123
   903  	R_AARCH64_P32_TLSDESC_ADR_PAGE21          R_AARCH64 = 124
   904  	R_AARCH64_P32_TLSDESC_LD32_LO12_NC        R_AARCH64 = 125
   905  	R_AARCH64_P32_TLSDESC_ADD_LO12_NC         R_AARCH64 = 126
   906  	R_AARCH64_P32_TLSDESC_CALL                R_AARCH64 = 127
   907  	R_AARCH64_P32_COPY                        R_AARCH64 = 180
   908  	R_AARCH64_P32_GLOB_DAT                    R_AARCH64 = 181
   909  	R_AARCH64_P32_JUMP_SLOT                   R_AARCH64 = 182
   910  	R_AARCH64_P32_RELATIVE                    R_AARCH64 = 183
   911  	R_AARCH64_P32_TLS_DTPMOD                  R_AARCH64 = 184
   912  	R_AARCH64_P32_TLS_DTPREL                  R_AARCH64 = 185
   913  	R_AARCH64_P32_TLS_TPREL                   R_AARCH64 = 186
   914  	R_AARCH64_P32_TLSDESC                     R_AARCH64 = 187
   915  	R_AARCH64_P32_IRELATIVE                   R_AARCH64 = 188
   916  	R_AARCH64_NULL                            R_AARCH64 = 256
   917  	R_AARCH64_ABS64                           R_AARCH64 = 257
   918  	R_AARCH64_ABS32                           R_AARCH64 = 258
   919  	R_AARCH64_ABS16                           R_AARCH64 = 259
   920  	R_AARCH64_PREL64                          R_AARCH64 = 260
   921  	R_AARCH64_PREL32                          R_AARCH64 = 261
   922  	R_AARCH64_PREL16                          R_AARCH64 = 262
   923  	R_AARCH64_MOVW_UABS_G0                    R_AARCH64 = 263
   924  	R_AARCH64_MOVW_UABS_G0_NC                 R_AARCH64 = 264
   925  	R_AARCH64_MOVW_UABS_G1                    R_AARCH64 = 265
   926  	R_AARCH64_MOVW_UABS_G1_NC                 R_AARCH64 = 266
   927  	R_AARCH64_MOVW_UABS_G2                    R_AARCH64 = 267
   928  	R_AARCH64_MOVW_UABS_G2_NC                 R_AARCH64 = 268
   929  	R_AARCH64_MOVW_UABS_G3                    R_AARCH64 = 269
   930  	R_AARCH64_MOVW_SABS_G0                    R_AARCH64 = 270
   931  	R_AARCH64_MOVW_SABS_G1                    R_AARCH64 = 271
   932  	R_AARCH64_MOVW_SABS_G2                    R_AARCH64 = 272
   933  	R_AARCH64_LD_PREL_LO19                    R_AARCH64 = 273
   934  	R_AARCH64_ADR_PREL_LO21                   R_AARCH64 = 274
   935  	R_AARCH64_ADR_PREL_PG_HI21                R_AARCH64 = 275
   936  	R_AARCH64_ADR_PREL_PG_HI21_NC             R_AARCH64 = 276
   937  	R_AARCH64_ADD_ABS_LO12_NC                 R_AARCH64 = 277
   938  	R_AARCH64_LDST8_ABS_LO12_NC               R_AARCH64 = 278
   939  	R_AARCH64_TSTBR14                         R_AARCH64 = 279
   940  	R_AARCH64_CONDBR19                        R_AARCH64 = 280
   941  	R_AARCH64_JUMP26                          R_AARCH64 = 282
   942  	R_AARCH64_CALL26                          R_AARCH64 = 283
   943  	R_AARCH64_LDST16_ABS_LO12_NC              R_AARCH64 = 284
   944  	R_AARCH64_LDST32_ABS_LO12_NC              R_AARCH64 = 285
   945  	R_AARCH64_LDST64_ABS_LO12_NC              R_AARCH64 = 286
   946  	R_AARCH64_LDST128_ABS_LO12_NC             R_AARCH64 = 299
   947  	R_AARCH64_GOT_LD_PREL19                   R_AARCH64 = 309
   948  	R_AARCH64_LD64_GOTOFF_LO15                R_AARCH64 = 310
   949  	R_AARCH64_ADR_GOT_PAGE                    R_AARCH64 = 311
   950  	R_AARCH64_LD64_GOT_LO12_NC                R_AARCH64 = 312
   951  	R_AARCH64_LD64_GOTPAGE_LO15               R_AARCH64 = 313
   952  	R_AARCH64_TLSGD_ADR_PREL21                R_AARCH64 = 512
   953  	R_AARCH64_TLSGD_ADR_PAGE21                R_AARCH64 = 513
   954  	R_AARCH64_TLSGD_ADD_LO12_NC               R_AARCH64 = 514
   955  	R_AARCH64_TLSGD_MOVW_G1                   R_AARCH64 = 515
   956  	R_AARCH64_TLSGD_MOVW_G0_NC                R_AARCH64 = 516
   957  	R_AARCH64_TLSLD_ADR_PREL21                R_AARCH64 = 517
   958  	R_AARCH64_TLSLD_ADR_PAGE21                R_AARCH64 = 518
   959  	R_AARCH64_TLSIE_MOVW_GOTTPREL_G1          R_AARCH64 = 539
   960  	R_AARCH64_TLSIE_MOVW_GOTTPREL_G0_NC       R_AARCH64 = 540
   961  	R_AARCH64_TLSIE_ADR_GOTTPREL_PAGE21       R_AARCH64 = 541
   962  	R_AARCH64_TLSIE_LD64_GOTTPREL_LO12_NC     R_AARCH64 = 542
   963  	R_AARCH64_TLSIE_LD_GOTTPREL_PREL19        R_AARCH64 = 543
   964  	R_AARCH64_TLSLE_MOVW_TPREL_G2             R_AARCH64 = 544
   965  	R_AARCH64_TLSLE_MOVW_TPREL_G1             R_AARCH64 = 545
   966  	R_AARCH64_TLSLE_MOVW_TPREL_G1_NC          R_AARCH64 = 546
   967  	R_AARCH64_TLSLE_MOVW_TPREL_G0             R_AARCH64 = 547
   968  	R_AARCH64_TLSLE_MOVW_TPREL_G0_NC          R_AARCH64 = 548
   969  	R_AARCH64_TLSLE_ADD_TPREL_HI12            R_AARCH64 = 549
   970  	R_AARCH64_TLSLE_ADD_TPREL_LO12            R_AARCH64 = 550
   971  	R_AARCH64_TLSLE_ADD_TPREL_LO12_NC         R_AARCH64 = 551
   972  	R_AARCH64_TLSDESC_LD_PREL19               R_AARCH64 = 560
   973  	R_AARCH64_TLSDESC_ADR_PREL21              R_AARCH64 = 561
   974  	R_AARCH64_TLSDESC_ADR_PAGE21              R_AARCH64 = 562
   975  	R_AARCH64_TLSDESC_LD64_LO12_NC            R_AARCH64 = 563
   976  	R_AARCH64_TLSDESC_ADD_LO12_NC             R_AARCH64 = 564
   977  	R_AARCH64_TLSDESC_OFF_G1                  R_AARCH64 = 565
   978  	R_AARCH64_TLSDESC_OFF_G0_NC               R_AARCH64 = 566
   979  	R_AARCH64_TLSDESC_LDR                     R_AARCH64 = 567
   980  	R_AARCH64_TLSDESC_ADD                     R_AARCH64 = 568
   981  	R_AARCH64_TLSDESC_CALL                    R_AARCH64 = 569
   982  	R_AARCH64_TLSLE_LDST128_TPREL_LO12        R_AARCH64 = 570
   983  	R_AARCH64_TLSLE_LDST128_TPREL_LO12_NC     R_AARCH64 = 571
   984  	R_AARCH64_TLSLD_LDST128_DTPREL_LO12       R_AARCH64 = 572
   985  	R_AARCH64_TLSLD_LDST128_DTPREL_LO12_NC    R_AARCH64 = 573
   986  	R_AARCH64_COPY                            R_AARCH64 = 1024
   987  	R_AARCH64_GLOB_DAT                        R_AARCH64 = 1025
   988  	R_AARCH64_JUMP_SLOT                       R_AARCH64 = 1026
   989  	R_AARCH64_RELATIVE                        R_AARCH64 = 1027
   990  	R_AARCH64_TLS_DTPMOD64                    R_AARCH64 = 1028
   991  	R_AARCH64_TLS_DTPREL64                    R_AARCH64 = 1029
   992  	R_AARCH64_TLS_TPREL64                     R_AARCH64 = 1030
   993  	R_AARCH64_TLSDESC                         R_AARCH64 = 1031
   994  	R_AARCH64_IRELATIVE                       R_AARCH64 = 1032
   995  )
   996  
   997  func (i R_AARCH64) String() string
   998  func (i R_AARCH64) GoString() string
   999  
  1000  // Alphaのための再配置タイプ。
  1001  type R_ALPHA int
  1002  
  1003  const (
  1004  	R_ALPHA_NONE           R_ALPHA = 0
  1005  	R_ALPHA_REFLONG        R_ALPHA = 1
  1006  	R_ALPHA_REFQUAD        R_ALPHA = 2
  1007  	R_ALPHA_GPREL32        R_ALPHA = 3
  1008  	R_ALPHA_LITERAL        R_ALPHA = 4
  1009  	R_ALPHA_LITUSE         R_ALPHA = 5
  1010  	R_ALPHA_GPDISP         R_ALPHA = 6
  1011  	R_ALPHA_BRADDR         R_ALPHA = 7
  1012  	R_ALPHA_HINT           R_ALPHA = 8
  1013  	R_ALPHA_SREL16         R_ALPHA = 9
  1014  	R_ALPHA_SREL32         R_ALPHA = 10
  1015  	R_ALPHA_SREL64         R_ALPHA = 11
  1016  	R_ALPHA_OP_PUSH        R_ALPHA = 12
  1017  	R_ALPHA_OP_STORE       R_ALPHA = 13
  1018  	R_ALPHA_OP_PSUB        R_ALPHA = 14
  1019  	R_ALPHA_OP_PRSHIFT     R_ALPHA = 15
  1020  	R_ALPHA_GPVALUE        R_ALPHA = 16
  1021  	R_ALPHA_GPRELHIGH      R_ALPHA = 17
  1022  	R_ALPHA_GPRELLOW       R_ALPHA = 18
  1023  	R_ALPHA_IMMED_GP_16    R_ALPHA = 19
  1024  	R_ALPHA_IMMED_GP_HI32  R_ALPHA = 20
  1025  	R_ALPHA_IMMED_SCN_HI32 R_ALPHA = 21
  1026  	R_ALPHA_IMMED_BR_HI32  R_ALPHA = 22
  1027  	R_ALPHA_IMMED_LO32     R_ALPHA = 23
  1028  	R_ALPHA_COPY           R_ALPHA = 24
  1029  	R_ALPHA_GLOB_DAT       R_ALPHA = 25
  1030  	R_ALPHA_JMP_SLOT       R_ALPHA = 26
  1031  	R_ALPHA_RELATIVE       R_ALPHA = 27
  1032  )
  1033  
  1034  func (i R_ALPHA) String() string
  1035  func (i R_ALPHA) GoString() string
  1036  
  1037  // ARMのための再配置タイプ。
  1038  type R_ARM int
  1039  
  1040  const (
  1041  	R_ARM_NONE               R_ARM = 0
  1042  	R_ARM_PC24               R_ARM = 1
  1043  	R_ARM_ABS32              R_ARM = 2
  1044  	R_ARM_REL32              R_ARM = 3
  1045  	R_ARM_PC13               R_ARM = 4
  1046  	R_ARM_ABS16              R_ARM = 5
  1047  	R_ARM_ABS12              R_ARM = 6
  1048  	R_ARM_THM_ABS5           R_ARM = 7
  1049  	R_ARM_ABS8               R_ARM = 8
  1050  	R_ARM_SBREL32            R_ARM = 9
  1051  	R_ARM_THM_PC22           R_ARM = 10
  1052  	R_ARM_THM_PC8            R_ARM = 11
  1053  	R_ARM_AMP_VCALL9         R_ARM = 12
  1054  	R_ARM_SWI24              R_ARM = 13
  1055  	R_ARM_THM_SWI8           R_ARM = 14
  1056  	R_ARM_XPC25              R_ARM = 15
  1057  	R_ARM_THM_XPC22          R_ARM = 16
  1058  	R_ARM_TLS_DTPMOD32       R_ARM = 17
  1059  	R_ARM_TLS_DTPOFF32       R_ARM = 18
  1060  	R_ARM_TLS_TPOFF32        R_ARM = 19
  1061  	R_ARM_COPY               R_ARM = 20
  1062  	R_ARM_GLOB_DAT           R_ARM = 21
  1063  	R_ARM_JUMP_SLOT          R_ARM = 22
  1064  	R_ARM_RELATIVE           R_ARM = 23
  1065  	R_ARM_GOTOFF             R_ARM = 24
  1066  	R_ARM_GOTPC              R_ARM = 25
  1067  	R_ARM_GOT32              R_ARM = 26
  1068  	R_ARM_PLT32              R_ARM = 27
  1069  	R_ARM_CALL               R_ARM = 28
  1070  	R_ARM_JUMP24             R_ARM = 29
  1071  	R_ARM_THM_JUMP24         R_ARM = 30
  1072  	R_ARM_BASE_ABS           R_ARM = 31
  1073  	R_ARM_ALU_PCREL_7_0      R_ARM = 32
  1074  	R_ARM_ALU_PCREL_15_8     R_ARM = 33
  1075  	R_ARM_ALU_PCREL_23_15    R_ARM = 34
  1076  	R_ARM_LDR_SBREL_11_10_NC R_ARM = 35
  1077  	R_ARM_ALU_SBREL_19_12_NC R_ARM = 36
  1078  	R_ARM_ALU_SBREL_27_20_CK R_ARM = 37
  1079  	R_ARM_TARGET1            R_ARM = 38
  1080  	R_ARM_SBREL31            R_ARM = 39
  1081  	R_ARM_V4BX               R_ARM = 40
  1082  	R_ARM_TARGET2            R_ARM = 41
  1083  	R_ARM_PREL31             R_ARM = 42
  1084  	R_ARM_MOVW_ABS_NC        R_ARM = 43
  1085  	R_ARM_MOVT_ABS           R_ARM = 44
  1086  	R_ARM_MOVW_PREL_NC       R_ARM = 45
  1087  	R_ARM_MOVT_PREL          R_ARM = 46
  1088  	R_ARM_THM_MOVW_ABS_NC    R_ARM = 47
  1089  	R_ARM_THM_MOVT_ABS       R_ARM = 48
  1090  	R_ARM_THM_MOVW_PREL_NC   R_ARM = 49
  1091  	R_ARM_THM_MOVT_PREL      R_ARM = 50
  1092  	R_ARM_THM_JUMP19         R_ARM = 51
  1093  	R_ARM_THM_JUMP6          R_ARM = 52
  1094  	R_ARM_THM_ALU_PREL_11_0  R_ARM = 53
  1095  	R_ARM_THM_PC12           R_ARM = 54
  1096  	R_ARM_ABS32_NOI          R_ARM = 55
  1097  	R_ARM_REL32_NOI          R_ARM = 56
  1098  	R_ARM_ALU_PC_G0_NC       R_ARM = 57
  1099  	R_ARM_ALU_PC_G0          R_ARM = 58
  1100  	R_ARM_ALU_PC_G1_NC       R_ARM = 59
  1101  	R_ARM_ALU_PC_G1          R_ARM = 60
  1102  	R_ARM_ALU_PC_G2          R_ARM = 61
  1103  	R_ARM_LDR_PC_G1          R_ARM = 62
  1104  	R_ARM_LDR_PC_G2          R_ARM = 63
  1105  	R_ARM_LDRS_PC_G0         R_ARM = 64
  1106  	R_ARM_LDRS_PC_G1         R_ARM = 65
  1107  	R_ARM_LDRS_PC_G2         R_ARM = 66
  1108  	R_ARM_LDC_PC_G0          R_ARM = 67
  1109  	R_ARM_LDC_PC_G1          R_ARM = 68
  1110  	R_ARM_LDC_PC_G2          R_ARM = 69
  1111  	R_ARM_ALU_SB_G0_NC       R_ARM = 70
  1112  	R_ARM_ALU_SB_G0          R_ARM = 71
  1113  	R_ARM_ALU_SB_G1_NC       R_ARM = 72
  1114  	R_ARM_ALU_SB_G1          R_ARM = 73
  1115  	R_ARM_ALU_SB_G2          R_ARM = 74
  1116  	R_ARM_LDR_SB_G0          R_ARM = 75
  1117  	R_ARM_LDR_SB_G1          R_ARM = 76
  1118  	R_ARM_LDR_SB_G2          R_ARM = 77
  1119  	R_ARM_LDRS_SB_G0         R_ARM = 78
  1120  	R_ARM_LDRS_SB_G1         R_ARM = 79
  1121  	R_ARM_LDRS_SB_G2         R_ARM = 80
  1122  	R_ARM_LDC_SB_G0          R_ARM = 81
  1123  	R_ARM_LDC_SB_G1          R_ARM = 82
  1124  	R_ARM_LDC_SB_G2          R_ARM = 83
  1125  	R_ARM_MOVW_BREL_NC       R_ARM = 84
  1126  	R_ARM_MOVT_BREL          R_ARM = 85
  1127  	R_ARM_MOVW_BREL          R_ARM = 86
  1128  	R_ARM_THM_MOVW_BREL_NC   R_ARM = 87
  1129  	R_ARM_THM_MOVT_BREL      R_ARM = 88
  1130  	R_ARM_THM_MOVW_BREL      R_ARM = 89
  1131  	R_ARM_TLS_GOTDESC        R_ARM = 90
  1132  	R_ARM_TLS_CALL           R_ARM = 91
  1133  	R_ARM_TLS_DESCSEQ        R_ARM = 92
  1134  	R_ARM_THM_TLS_CALL       R_ARM = 93
  1135  	R_ARM_PLT32_ABS          R_ARM = 94
  1136  	R_ARM_GOT_ABS            R_ARM = 95
  1137  	R_ARM_GOT_PREL           R_ARM = 96
  1138  	R_ARM_GOT_BREL12         R_ARM = 97
  1139  	R_ARM_GOTOFF12           R_ARM = 98
  1140  	R_ARM_GOTRELAX           R_ARM = 99
  1141  	R_ARM_GNU_VTENTRY        R_ARM = 100
  1142  	R_ARM_GNU_VTINHERIT      R_ARM = 101
  1143  	R_ARM_THM_JUMP11         R_ARM = 102
  1144  	R_ARM_THM_JUMP8          R_ARM = 103
  1145  	R_ARM_TLS_GD32           R_ARM = 104
  1146  	R_ARM_TLS_LDM32          R_ARM = 105
  1147  	R_ARM_TLS_LDO32          R_ARM = 106
  1148  	R_ARM_TLS_IE32           R_ARM = 107
  1149  	R_ARM_TLS_LE32           R_ARM = 108
  1150  	R_ARM_TLS_LDO12          R_ARM = 109
  1151  	R_ARM_TLS_LE12           R_ARM = 110
  1152  	R_ARM_TLS_IE12GP         R_ARM = 111
  1153  	R_ARM_PRIVATE_0          R_ARM = 112
  1154  	R_ARM_PRIVATE_1          R_ARM = 113
  1155  	R_ARM_PRIVATE_2          R_ARM = 114
  1156  	R_ARM_PRIVATE_3          R_ARM = 115
  1157  	R_ARM_PRIVATE_4          R_ARM = 116
  1158  	R_ARM_PRIVATE_5          R_ARM = 117
  1159  	R_ARM_PRIVATE_6          R_ARM = 118
  1160  	R_ARM_PRIVATE_7          R_ARM = 119
  1161  	R_ARM_PRIVATE_8          R_ARM = 120
  1162  	R_ARM_PRIVATE_9          R_ARM = 121
  1163  	R_ARM_PRIVATE_10         R_ARM = 122
  1164  	R_ARM_PRIVATE_11         R_ARM = 123
  1165  	R_ARM_PRIVATE_12         R_ARM = 124
  1166  	R_ARM_PRIVATE_13         R_ARM = 125
  1167  	R_ARM_PRIVATE_14         R_ARM = 126
  1168  	R_ARM_PRIVATE_15         R_ARM = 127
  1169  	R_ARM_ME_TOO             R_ARM = 128
  1170  	R_ARM_THM_TLS_DESCSEQ16  R_ARM = 129
  1171  	R_ARM_THM_TLS_DESCSEQ32  R_ARM = 130
  1172  	R_ARM_THM_GOT_BREL12     R_ARM = 131
  1173  	R_ARM_THM_ALU_ABS_G0_NC  R_ARM = 132
  1174  	R_ARM_THM_ALU_ABS_G1_NC  R_ARM = 133
  1175  	R_ARM_THM_ALU_ABS_G2_NC  R_ARM = 134
  1176  	R_ARM_THM_ALU_ABS_G3     R_ARM = 135
  1177  	R_ARM_IRELATIVE          R_ARM = 160
  1178  	R_ARM_RXPC25             R_ARM = 249
  1179  	R_ARM_RSBREL32           R_ARM = 250
  1180  	R_ARM_THM_RPC22          R_ARM = 251
  1181  	R_ARM_RREL32             R_ARM = 252
  1182  	R_ARM_RABS32             R_ARM = 253
  1183  	R_ARM_RPC24              R_ARM = 254
  1184  	R_ARM_RBASE              R_ARM = 255
  1185  )
  1186  
  1187  func (i R_ARM) String() string
  1188  func (i R_ARM) GoString() string
  1189  
  1190  // 386のための再配置タイプ。
  1191  type R_386 int
  1192  
  1193  const (
  1194  	R_386_NONE          R_386 = 0
  1195  	R_386_32            R_386 = 1
  1196  	R_386_PC32          R_386 = 2
  1197  	R_386_GOT32         R_386 = 3
  1198  	R_386_PLT32         R_386 = 4
  1199  	R_386_COPY          R_386 = 5
  1200  	R_386_GLOB_DAT      R_386 = 6
  1201  	R_386_JMP_SLOT      R_386 = 7
  1202  	R_386_RELATIVE      R_386 = 8
  1203  	R_386_GOTOFF        R_386 = 9
  1204  	R_386_GOTPC         R_386 = 10
  1205  	R_386_32PLT         R_386 = 11
  1206  	R_386_TLS_TPOFF     R_386 = 14
  1207  	R_386_TLS_IE        R_386 = 15
  1208  	R_386_TLS_GOTIE     R_386 = 16
  1209  	R_386_TLS_LE        R_386 = 17
  1210  	R_386_TLS_GD        R_386 = 18
  1211  	R_386_TLS_LDM       R_386 = 19
  1212  	R_386_16            R_386 = 20
  1213  	R_386_PC16          R_386 = 21
  1214  	R_386_8             R_386 = 22
  1215  	R_386_PC8           R_386 = 23
  1216  	R_386_TLS_GD_32     R_386 = 24
  1217  	R_386_TLS_GD_PUSH   R_386 = 25
  1218  	R_386_TLS_GD_CALL   R_386 = 26
  1219  	R_386_TLS_GD_POP    R_386 = 27
  1220  	R_386_TLS_LDM_32    R_386 = 28
  1221  	R_386_TLS_LDM_PUSH  R_386 = 29
  1222  	R_386_TLS_LDM_CALL  R_386 = 30
  1223  	R_386_TLS_LDM_POP   R_386 = 31
  1224  	R_386_TLS_LDO_32    R_386 = 32
  1225  	R_386_TLS_IE_32     R_386 = 33
  1226  	R_386_TLS_LE_32     R_386 = 34
  1227  	R_386_TLS_DTPMOD32  R_386 = 35
  1228  	R_386_TLS_DTPOFF32  R_386 = 36
  1229  	R_386_TLS_TPOFF32   R_386 = 37
  1230  	R_386_SIZE32        R_386 = 38
  1231  	R_386_TLS_GOTDESC   R_386 = 39
  1232  	R_386_TLS_DESC_CALL R_386 = 40
  1233  	R_386_TLS_DESC      R_386 = 41
  1234  	R_386_IRELATIVE     R_386 = 42
  1235  	R_386_GOT32X        R_386 = 43
  1236  )
  1237  
  1238  func (i R_386) String() string
  1239  func (i R_386) GoString() string
  1240  
  1241  // MIPSのための再配置タイプ。
  1242  type R_MIPS int
  1243  
  1244  const (
  1245  	R_MIPS_NONE          R_MIPS = 0
  1246  	R_MIPS_16            R_MIPS = 1
  1247  	R_MIPS_32            R_MIPS = 2
  1248  	R_MIPS_REL32         R_MIPS = 3
  1249  	R_MIPS_26            R_MIPS = 4
  1250  	R_MIPS_HI16          R_MIPS = 5
  1251  	R_MIPS_LO16          R_MIPS = 6
  1252  	R_MIPS_GPREL16       R_MIPS = 7
  1253  	R_MIPS_LITERAL       R_MIPS = 8
  1254  	R_MIPS_GOT16         R_MIPS = 9
  1255  	R_MIPS_PC16          R_MIPS = 10
  1256  	R_MIPS_CALL16        R_MIPS = 11
  1257  	R_MIPS_GPREL32       R_MIPS = 12
  1258  	R_MIPS_SHIFT5        R_MIPS = 16
  1259  	R_MIPS_SHIFT6        R_MIPS = 17
  1260  	R_MIPS_64            R_MIPS = 18
  1261  	R_MIPS_GOT_DISP      R_MIPS = 19
  1262  	R_MIPS_GOT_PAGE      R_MIPS = 20
  1263  	R_MIPS_GOT_OFST      R_MIPS = 21
  1264  	R_MIPS_GOT_HI16      R_MIPS = 22
  1265  	R_MIPS_GOT_LO16      R_MIPS = 23
  1266  	R_MIPS_SUB           R_MIPS = 24
  1267  	R_MIPS_INSERT_A      R_MIPS = 25
  1268  	R_MIPS_INSERT_B      R_MIPS = 26
  1269  	R_MIPS_DELETE        R_MIPS = 27
  1270  	R_MIPS_HIGHER        R_MIPS = 28
  1271  	R_MIPS_HIGHEST       R_MIPS = 29
  1272  	R_MIPS_CALL_HI16     R_MIPS = 30
  1273  	R_MIPS_CALL_LO16     R_MIPS = 31
  1274  	R_MIPS_SCN_DISP      R_MIPS = 32
  1275  	R_MIPS_REL16         R_MIPS = 33
  1276  	R_MIPS_ADD_IMMEDIATE R_MIPS = 34
  1277  	R_MIPS_PJUMP         R_MIPS = 35
  1278  	R_MIPS_RELGOT        R_MIPS = 36
  1279  	R_MIPS_JALR          R_MIPS = 37
  1280  
  1281  	R_MIPS_TLS_DTPMOD32    R_MIPS = 38
  1282  	R_MIPS_TLS_DTPREL32    R_MIPS = 39
  1283  	R_MIPS_TLS_DTPMOD64    R_MIPS = 40
  1284  	R_MIPS_TLS_DTPREL64    R_MIPS = 41
  1285  	R_MIPS_TLS_GD          R_MIPS = 42
  1286  	R_MIPS_TLS_LDM         R_MIPS = 43
  1287  	R_MIPS_TLS_DTPREL_HI16 R_MIPS = 44
  1288  	R_MIPS_TLS_DTPREL_LO16 R_MIPS = 45
  1289  	R_MIPS_TLS_GOTTPREL    R_MIPS = 46
  1290  	R_MIPS_TLS_TPREL32     R_MIPS = 47
  1291  	R_MIPS_TLS_TPREL64     R_MIPS = 48
  1292  	R_MIPS_TLS_TPREL_HI16  R_MIPS = 49
  1293  	R_MIPS_TLS_TPREL_LO16  R_MIPS = 50
  1294  
  1295  	R_MIPS_PC32 R_MIPS = 248
  1296  )
  1297  
  1298  func (i R_MIPS) String() string
  1299  func (i R_MIPS) GoString() string
  1300  
  1301  // LoongArchのための再配置タイプ。
  1302  type R_LARCH int
  1303  
  1304  const (
  1305  	R_LARCH_NONE                       R_LARCH = 0
  1306  	R_LARCH_32                         R_LARCH = 1
  1307  	R_LARCH_64                         R_LARCH = 2
  1308  	R_LARCH_RELATIVE                   R_LARCH = 3
  1309  	R_LARCH_COPY                       R_LARCH = 4
  1310  	R_LARCH_JUMP_SLOT                  R_LARCH = 5
  1311  	R_LARCH_TLS_DTPMOD32               R_LARCH = 6
  1312  	R_LARCH_TLS_DTPMOD64               R_LARCH = 7
  1313  	R_LARCH_TLS_DTPREL32               R_LARCH = 8
  1314  	R_LARCH_TLS_DTPREL64               R_LARCH = 9
  1315  	R_LARCH_TLS_TPREL32                R_LARCH = 10
  1316  	R_LARCH_TLS_TPREL64                R_LARCH = 11
  1317  	R_LARCH_IRELATIVE                  R_LARCH = 12
  1318  	R_LARCH_MARK_LA                    R_LARCH = 20
  1319  	R_LARCH_MARK_PCREL                 R_LARCH = 21
  1320  	R_LARCH_SOP_PUSH_PCREL             R_LARCH = 22
  1321  	R_LARCH_SOP_PUSH_ABSOLUTE          R_LARCH = 23
  1322  	R_LARCH_SOP_PUSH_DUP               R_LARCH = 24
  1323  	R_LARCH_SOP_PUSH_GPREL             R_LARCH = 25
  1324  	R_LARCH_SOP_PUSH_TLS_TPREL         R_LARCH = 26
  1325  	R_LARCH_SOP_PUSH_TLS_GOT           R_LARCH = 27
  1326  	R_LARCH_SOP_PUSH_TLS_GD            R_LARCH = 28
  1327  	R_LARCH_SOP_PUSH_PLT_PCREL         R_LARCH = 29
  1328  	R_LARCH_SOP_ASSERT                 R_LARCH = 30
  1329  	R_LARCH_SOP_NOT                    R_LARCH = 31
  1330  	R_LARCH_SOP_SUB                    R_LARCH = 32
  1331  	R_LARCH_SOP_SL                     R_LARCH = 33
  1332  	R_LARCH_SOP_SR                     R_LARCH = 34
  1333  	R_LARCH_SOP_ADD                    R_LARCH = 35
  1334  	R_LARCH_SOP_AND                    R_LARCH = 36
  1335  	R_LARCH_SOP_IF_ELSE                R_LARCH = 37
  1336  	R_LARCH_SOP_POP_32_S_10_5          R_LARCH = 38
  1337  	R_LARCH_SOP_POP_32_U_10_12         R_LARCH = 39
  1338  	R_LARCH_SOP_POP_32_S_10_12         R_LARCH = 40
  1339  	R_LARCH_SOP_POP_32_S_10_16         R_LARCH = 41
  1340  	R_LARCH_SOP_POP_32_S_10_16_S2      R_LARCH = 42
  1341  	R_LARCH_SOP_POP_32_S_5_20          R_LARCH = 43
  1342  	R_LARCH_SOP_POP_32_S_0_5_10_16_S2  R_LARCH = 44
  1343  	R_LARCH_SOP_POP_32_S_0_10_10_16_S2 R_LARCH = 45
  1344  	R_LARCH_SOP_POP_32_U               R_LARCH = 46
  1345  	R_LARCH_ADD8                       R_LARCH = 47
  1346  	R_LARCH_ADD16                      R_LARCH = 48
  1347  	R_LARCH_ADD24                      R_LARCH = 49
  1348  	R_LARCH_ADD32                      R_LARCH = 50
  1349  	R_LARCH_ADD64                      R_LARCH = 51
  1350  	R_LARCH_SUB8                       R_LARCH = 52
  1351  	R_LARCH_SUB16                      R_LARCH = 53
  1352  	R_LARCH_SUB24                      R_LARCH = 54
  1353  	R_LARCH_SUB32                      R_LARCH = 55
  1354  	R_LARCH_SUB64                      R_LARCH = 56
  1355  	R_LARCH_GNU_VTINHERIT              R_LARCH = 57
  1356  	R_LARCH_GNU_VTENTRY                R_LARCH = 58
  1357  	R_LARCH_B16                        R_LARCH = 64
  1358  	R_LARCH_B21                        R_LARCH = 65
  1359  	R_LARCH_B26                        R_LARCH = 66
  1360  	R_LARCH_ABS_HI20                   R_LARCH = 67
  1361  	R_LARCH_ABS_LO12                   R_LARCH = 68
  1362  	R_LARCH_ABS64_LO20                 R_LARCH = 69
  1363  	R_LARCH_ABS64_HI12                 R_LARCH = 70
  1364  	R_LARCH_PCALA_HI20                 R_LARCH = 71
  1365  	R_LARCH_PCALA_LO12                 R_LARCH = 72
  1366  	R_LARCH_PCALA64_LO20               R_LARCH = 73
  1367  	R_LARCH_PCALA64_HI12               R_LARCH = 74
  1368  	R_LARCH_GOT_PC_HI20                R_LARCH = 75
  1369  	R_LARCH_GOT_PC_LO12                R_LARCH = 76
  1370  	R_LARCH_GOT64_PC_LO20              R_LARCH = 77
  1371  	R_LARCH_GOT64_PC_HI12              R_LARCH = 78
  1372  	R_LARCH_GOT_HI20                   R_LARCH = 79
  1373  	R_LARCH_GOT_LO12                   R_LARCH = 80
  1374  	R_LARCH_GOT64_LO20                 R_LARCH = 81
  1375  	R_LARCH_GOT64_HI12                 R_LARCH = 82
  1376  	R_LARCH_TLS_LE_HI20                R_LARCH = 83
  1377  	R_LARCH_TLS_LE_LO12                R_LARCH = 84
  1378  	R_LARCH_TLS_LE64_LO20              R_LARCH = 85
  1379  	R_LARCH_TLS_LE64_HI12              R_LARCH = 86
  1380  	R_LARCH_TLS_IE_PC_HI20             R_LARCH = 87
  1381  	R_LARCH_TLS_IE_PC_LO12             R_LARCH = 88
  1382  	R_LARCH_TLS_IE64_PC_LO20           R_LARCH = 89
  1383  	R_LARCH_TLS_IE64_PC_HI12           R_LARCH = 90
  1384  	R_LARCH_TLS_IE_HI20                R_LARCH = 91
  1385  	R_LARCH_TLS_IE_LO12                R_LARCH = 92
  1386  	R_LARCH_TLS_IE64_LO20              R_LARCH = 93
  1387  	R_LARCH_TLS_IE64_HI12              R_LARCH = 94
  1388  	R_LARCH_TLS_LD_PC_HI20             R_LARCH = 95
  1389  	R_LARCH_TLS_LD_HI20                R_LARCH = 96
  1390  	R_LARCH_TLS_GD_PC_HI20             R_LARCH = 97
  1391  	R_LARCH_TLS_GD_HI20                R_LARCH = 98
  1392  	R_LARCH_32_PCREL                   R_LARCH = 99
  1393  	R_LARCH_RELAX                      R_LARCH = 100
  1394  	R_LARCH_DELETE                     R_LARCH = 101
  1395  	R_LARCH_ALIGN                      R_LARCH = 102
  1396  	R_LARCH_PCREL20_S2                 R_LARCH = 103
  1397  	R_LARCH_CFA                        R_LARCH = 104
  1398  	R_LARCH_ADD6                       R_LARCH = 105
  1399  	R_LARCH_SUB6                       R_LARCH = 106
  1400  	R_LARCH_ADD_ULEB128                R_LARCH = 107
  1401  	R_LARCH_SUB_ULEB128                R_LARCH = 108
  1402  	R_LARCH_64_PCREL                   R_LARCH = 109
  1403  )
  1404  
  1405  func (i R_LARCH) String() string
  1406  func (i R_LARCH) GoString() string
  1407  
  1408  // PowerPCのための再配置タイプ。
  1409  //
  1410  // R_PPCとR_PPC64の両方で共有される値は、
  1411  // ELF標準ではR_POWERPC_というプレフィックスが付けられています。R_PPCタイプの場合、関連する
  1412  // 共有再配置はR_PPC_というプレフィックスで改名されています。
  1413  // 元の名前は値の後のコメントに続きます。
  1414  type R_PPC int
  1415  
  1416  const (
  1417  	R_PPC_NONE            R_PPC = 0
  1418  	R_PPC_ADDR32          R_PPC = 1
  1419  	R_PPC_ADDR24          R_PPC = 2
  1420  	R_PPC_ADDR16          R_PPC = 3
  1421  	R_PPC_ADDR16_LO       R_PPC = 4
  1422  	R_PPC_ADDR16_HI       R_PPC = 5
  1423  	R_PPC_ADDR16_HA       R_PPC = 6
  1424  	R_PPC_ADDR14          R_PPC = 7
  1425  	R_PPC_ADDR14_BRTAKEN  R_PPC = 8
  1426  	R_PPC_ADDR14_BRNTAKEN R_PPC = 9
  1427  	R_PPC_REL24           R_PPC = 10
  1428  	R_PPC_REL14           R_PPC = 11
  1429  	R_PPC_REL14_BRTAKEN   R_PPC = 12
  1430  	R_PPC_REL14_BRNTAKEN  R_PPC = 13
  1431  	R_PPC_GOT16           R_PPC = 14
  1432  	R_PPC_GOT16_LO        R_PPC = 15
  1433  	R_PPC_GOT16_HI        R_PPC = 16
  1434  	R_PPC_GOT16_HA        R_PPC = 17
  1435  	R_PPC_PLTREL24        R_PPC = 18
  1436  	R_PPC_COPY            R_PPC = 19
  1437  	R_PPC_GLOB_DAT        R_PPC = 20
  1438  	R_PPC_JMP_SLOT        R_PPC = 21
  1439  	R_PPC_RELATIVE        R_PPC = 22
  1440  	R_PPC_LOCAL24PC       R_PPC = 23
  1441  	R_PPC_UADDR32         R_PPC = 24
  1442  	R_PPC_UADDR16         R_PPC = 25
  1443  	R_PPC_REL32           R_PPC = 26
  1444  	R_PPC_PLT32           R_PPC = 27
  1445  	R_PPC_PLTREL32        R_PPC = 28
  1446  	R_PPC_PLT16_LO        R_PPC = 29
  1447  	R_PPC_PLT16_HI        R_PPC = 30
  1448  	R_PPC_PLT16_HA        R_PPC = 31
  1449  	R_PPC_SDAREL16        R_PPC = 32
  1450  	R_PPC_SECTOFF         R_PPC = 33
  1451  	R_PPC_SECTOFF_LO      R_PPC = 34
  1452  	R_PPC_SECTOFF_HI      R_PPC = 35
  1453  	R_PPC_SECTOFF_HA      R_PPC = 36
  1454  	R_PPC_TLS             R_PPC = 67
  1455  	R_PPC_DTPMOD32        R_PPC = 68
  1456  	R_PPC_TPREL16         R_PPC = 69
  1457  	R_PPC_TPREL16_LO      R_PPC = 70
  1458  	R_PPC_TPREL16_HI      R_PPC = 71
  1459  	R_PPC_TPREL16_HA      R_PPC = 72
  1460  	R_PPC_TPREL32         R_PPC = 73
  1461  	R_PPC_DTPREL16        R_PPC = 74
  1462  	R_PPC_DTPREL16_LO     R_PPC = 75
  1463  	R_PPC_DTPREL16_HI     R_PPC = 76
  1464  	R_PPC_DTPREL16_HA     R_PPC = 77
  1465  	R_PPC_DTPREL32        R_PPC = 78
  1466  	R_PPC_GOT_TLSGD16     R_PPC = 79
  1467  	R_PPC_GOT_TLSGD16_LO  R_PPC = 80
  1468  	R_PPC_GOT_TLSGD16_HI  R_PPC = 81
  1469  	R_PPC_GOT_TLSGD16_HA  R_PPC = 82
  1470  	R_PPC_GOT_TLSLD16     R_PPC = 83
  1471  	R_PPC_GOT_TLSLD16_LO  R_PPC = 84
  1472  	R_PPC_GOT_TLSLD16_HI  R_PPC = 85
  1473  	R_PPC_GOT_TLSLD16_HA  R_PPC = 86
  1474  	R_PPC_GOT_TPREL16     R_PPC = 87
  1475  	R_PPC_GOT_TPREL16_LO  R_PPC = 88
  1476  	R_PPC_GOT_TPREL16_HI  R_PPC = 89
  1477  	R_PPC_GOT_TPREL16_HA  R_PPC = 90
  1478  	R_PPC_EMB_NADDR32     R_PPC = 101
  1479  	R_PPC_EMB_NADDR16     R_PPC = 102
  1480  	R_PPC_EMB_NADDR16_LO  R_PPC = 103
  1481  	R_PPC_EMB_NADDR16_HI  R_PPC = 104
  1482  	R_PPC_EMB_NADDR16_HA  R_PPC = 105
  1483  	R_PPC_EMB_SDAI16      R_PPC = 106
  1484  	R_PPC_EMB_SDA2I16     R_PPC = 107
  1485  	R_PPC_EMB_SDA2REL     R_PPC = 108
  1486  	R_PPC_EMB_SDA21       R_PPC = 109
  1487  	R_PPC_EMB_MRKREF      R_PPC = 110
  1488  	R_PPC_EMB_RELSEC16    R_PPC = 111
  1489  	R_PPC_EMB_RELST_LO    R_PPC = 112
  1490  	R_PPC_EMB_RELST_HI    R_PPC = 113
  1491  	R_PPC_EMB_RELST_HA    R_PPC = 114
  1492  	R_PPC_EMB_BIT_FLD     R_PPC = 115
  1493  	R_PPC_EMB_RELSDA      R_PPC = 116
  1494  )
  1495  
  1496  func (i R_PPC) String() string
  1497  func (i R_PPC) GoString() string
  1498  
  1499  // 64ビットPowerPCまたはPower Architectureプロセッサのための再配置タイプ。
  1500  //
  1501  // R_PPCとR_PPC64の両方で共有される値は、
  1502  // ELF標準ではR_POWERPC_というプレフィックスが付けられています。R_PPC64タイプの場合、関連する
  1503  // 共有再配置はR_PPC64_というプレフィックスで改名されています。
  1504  // 元の名前は値の後のコメントに続きます。
  1505  type R_PPC64 int
  1506  
  1507  const (
  1508  	R_PPC64_NONE               R_PPC64 = 0
  1509  	R_PPC64_ADDR32             R_PPC64 = 1
  1510  	R_PPC64_ADDR24             R_PPC64 = 2
  1511  	R_PPC64_ADDR16             R_PPC64 = 3
  1512  	R_PPC64_ADDR16_LO          R_PPC64 = 4
  1513  	R_PPC64_ADDR16_HI          R_PPC64 = 5
  1514  	R_PPC64_ADDR16_HA          R_PPC64 = 6
  1515  	R_PPC64_ADDR14             R_PPC64 = 7
  1516  	R_PPC64_ADDR14_BRTAKEN     R_PPC64 = 8
  1517  	R_PPC64_ADDR14_BRNTAKEN    R_PPC64 = 9
  1518  	R_PPC64_REL24              R_PPC64 = 10
  1519  	R_PPC64_REL14              R_PPC64 = 11
  1520  	R_PPC64_REL14_BRTAKEN      R_PPC64 = 12
  1521  	R_PPC64_REL14_BRNTAKEN     R_PPC64 = 13
  1522  	R_PPC64_GOT16              R_PPC64 = 14
  1523  	R_PPC64_GOT16_LO           R_PPC64 = 15
  1524  	R_PPC64_GOT16_HI           R_PPC64 = 16
  1525  	R_PPC64_GOT16_HA           R_PPC64 = 17
  1526  	R_PPC64_COPY               R_PPC64 = 19
  1527  	R_PPC64_GLOB_DAT           R_PPC64 = 20
  1528  	R_PPC64_JMP_SLOT           R_PPC64 = 21
  1529  	R_PPC64_RELATIVE           R_PPC64 = 22
  1530  	R_PPC64_UADDR32            R_PPC64 = 24
  1531  	R_PPC64_UADDR16            R_PPC64 = 25
  1532  	R_PPC64_REL32              R_PPC64 = 26
  1533  	R_PPC64_PLT32              R_PPC64 = 27
  1534  	R_PPC64_PLTREL32           R_PPC64 = 28
  1535  	R_PPC64_PLT16_LO           R_PPC64 = 29
  1536  	R_PPC64_PLT16_HI           R_PPC64 = 30
  1537  	R_PPC64_PLT16_HA           R_PPC64 = 31
  1538  	R_PPC64_SECTOFF            R_PPC64 = 33
  1539  	R_PPC64_SECTOFF_LO         R_PPC64 = 34
  1540  	R_PPC64_SECTOFF_HI         R_PPC64 = 35
  1541  	R_PPC64_SECTOFF_HA         R_PPC64 = 36
  1542  	R_PPC64_REL30              R_PPC64 = 37
  1543  	R_PPC64_ADDR64             R_PPC64 = 38
  1544  	R_PPC64_ADDR16_HIGHER      R_PPC64 = 39
  1545  	R_PPC64_ADDR16_HIGHERA     R_PPC64 = 40
  1546  	R_PPC64_ADDR16_HIGHEST     R_PPC64 = 41
  1547  	R_PPC64_ADDR16_HIGHESTA    R_PPC64 = 42
  1548  	R_PPC64_UADDR64            R_PPC64 = 43
  1549  	R_PPC64_REL64              R_PPC64 = 44
  1550  	R_PPC64_PLT64              R_PPC64 = 45
  1551  	R_PPC64_PLTREL64           R_PPC64 = 46
  1552  	R_PPC64_TOC16              R_PPC64 = 47
  1553  	R_PPC64_TOC16_LO           R_PPC64 = 48
  1554  	R_PPC64_TOC16_HI           R_PPC64 = 49
  1555  	R_PPC64_TOC16_HA           R_PPC64 = 50
  1556  	R_PPC64_TOC                R_PPC64 = 51
  1557  	R_PPC64_PLTGOT16           R_PPC64 = 52
  1558  	R_PPC64_PLTGOT16_LO        R_PPC64 = 53
  1559  	R_PPC64_PLTGOT16_HI        R_PPC64 = 54
  1560  	R_PPC64_PLTGOT16_HA        R_PPC64 = 55
  1561  	R_PPC64_ADDR16_DS          R_PPC64 = 56
  1562  	R_PPC64_ADDR16_LO_DS       R_PPC64 = 57
  1563  	R_PPC64_GOT16_DS           R_PPC64 = 58
  1564  	R_PPC64_GOT16_LO_DS        R_PPC64 = 59
  1565  	R_PPC64_PLT16_LO_DS        R_PPC64 = 60
  1566  	R_PPC64_SECTOFF_DS         R_PPC64 = 61
  1567  	R_PPC64_SECTOFF_LO_DS      R_PPC64 = 62
  1568  	R_PPC64_TOC16_DS           R_PPC64 = 63
  1569  	R_PPC64_TOC16_LO_DS        R_PPC64 = 64
  1570  	R_PPC64_PLTGOT16_DS        R_PPC64 = 65
  1571  	R_PPC64_PLTGOT_LO_DS       R_PPC64 = 66
  1572  	R_PPC64_TLS                R_PPC64 = 67
  1573  	R_PPC64_DTPMOD64           R_PPC64 = 68
  1574  	R_PPC64_TPREL16            R_PPC64 = 69
  1575  	R_PPC64_TPREL16_LO         R_PPC64 = 70
  1576  	R_PPC64_TPREL16_HI         R_PPC64 = 71
  1577  	R_PPC64_TPREL16_HA         R_PPC64 = 72
  1578  	R_PPC64_TPREL64            R_PPC64 = 73
  1579  	R_PPC64_DTPREL16           R_PPC64 = 74
  1580  	R_PPC64_DTPREL16_LO        R_PPC64 = 75
  1581  	R_PPC64_DTPREL16_HI        R_PPC64 = 76
  1582  	R_PPC64_DTPREL16_HA        R_PPC64 = 77
  1583  	R_PPC64_DTPREL64           R_PPC64 = 78
  1584  	R_PPC64_GOT_TLSGD16        R_PPC64 = 79
  1585  	R_PPC64_GOT_TLSGD16_LO     R_PPC64 = 80
  1586  	R_PPC64_GOT_TLSGD16_HI     R_PPC64 = 81
  1587  	R_PPC64_GOT_TLSGD16_HA     R_PPC64 = 82
  1588  	R_PPC64_GOT_TLSLD16        R_PPC64 = 83
  1589  	R_PPC64_GOT_TLSLD16_LO     R_PPC64 = 84
  1590  	R_PPC64_GOT_TLSLD16_HI     R_PPC64 = 85
  1591  	R_PPC64_GOT_TLSLD16_HA     R_PPC64 = 86
  1592  	R_PPC64_GOT_TPREL16_DS     R_PPC64 = 87
  1593  	R_PPC64_GOT_TPREL16_LO_DS  R_PPC64 = 88
  1594  	R_PPC64_GOT_TPREL16_HI     R_PPC64 = 89
  1595  	R_PPC64_GOT_TPREL16_HA     R_PPC64 = 90
  1596  	R_PPC64_GOT_DTPREL16_DS    R_PPC64 = 91
  1597  	R_PPC64_GOT_DTPREL16_LO_DS R_PPC64 = 92
  1598  	R_PPC64_GOT_DTPREL16_HI    R_PPC64 = 93
  1599  	R_PPC64_GOT_DTPREL16_HA    R_PPC64 = 94
  1600  	R_PPC64_TPREL16_DS         R_PPC64 = 95
  1601  	R_PPC64_TPREL16_LO_DS      R_PPC64 = 96
  1602  	R_PPC64_TPREL16_HIGHER     R_PPC64 = 97
  1603  	R_PPC64_TPREL16_HIGHERA    R_PPC64 = 98
  1604  	R_PPC64_TPREL16_HIGHEST    R_PPC64 = 99
  1605  	R_PPC64_TPREL16_HIGHESTA   R_PPC64 = 100
  1606  	R_PPC64_DTPREL16_DS        R_PPC64 = 101
  1607  	R_PPC64_DTPREL16_LO_DS     R_PPC64 = 102
  1608  	R_PPC64_DTPREL16_HIGHER    R_PPC64 = 103
  1609  	R_PPC64_DTPREL16_HIGHERA   R_PPC64 = 104
  1610  	R_PPC64_DTPREL16_HIGHEST   R_PPC64 = 105
  1611  	R_PPC64_DTPREL16_HIGHESTA  R_PPC64 = 106
  1612  	R_PPC64_TLSGD              R_PPC64 = 107
  1613  	R_PPC64_TLSLD              R_PPC64 = 108
  1614  	R_PPC64_TOCSAVE            R_PPC64 = 109
  1615  	R_PPC64_ADDR16_HIGH        R_PPC64 = 110
  1616  	R_PPC64_ADDR16_HIGHA       R_PPC64 = 111
  1617  	R_PPC64_TPREL16_HIGH       R_PPC64 = 112
  1618  	R_PPC64_TPREL16_HIGHA      R_PPC64 = 113
  1619  	R_PPC64_DTPREL16_HIGH      R_PPC64 = 114
  1620  	R_PPC64_DTPREL16_HIGHA     R_PPC64 = 115
  1621  	R_PPC64_REL24_NOTOC        R_PPC64 = 116
  1622  	R_PPC64_ADDR64_LOCAL       R_PPC64 = 117
  1623  	R_PPC64_ENTRY              R_PPC64 = 118
  1624  	R_PPC64_PLTSEQ             R_PPC64 = 119
  1625  	R_PPC64_PLTCALL            R_PPC64 = 120
  1626  	R_PPC64_PLTSEQ_NOTOC       R_PPC64 = 121
  1627  	R_PPC64_PLTCALL_NOTOC      R_PPC64 = 122
  1628  	R_PPC64_PCREL_OPT          R_PPC64 = 123
  1629  	R_PPC64_REL24_P9NOTOC      R_PPC64 = 124
  1630  	R_PPC64_D34                R_PPC64 = 128
  1631  	R_PPC64_D34_LO             R_PPC64 = 129
  1632  	R_PPC64_D34_HI30           R_PPC64 = 130
  1633  	R_PPC64_D34_HA30           R_PPC64 = 131
  1634  	R_PPC64_PCREL34            R_PPC64 = 132
  1635  	R_PPC64_GOT_PCREL34        R_PPC64 = 133
  1636  	R_PPC64_PLT_PCREL34        R_PPC64 = 134
  1637  	R_PPC64_PLT_PCREL34_NOTOC  R_PPC64 = 135
  1638  	R_PPC64_ADDR16_HIGHER34    R_PPC64 = 136
  1639  	R_PPC64_ADDR16_HIGHERA34   R_PPC64 = 137
  1640  	R_PPC64_ADDR16_HIGHEST34   R_PPC64 = 138
  1641  	R_PPC64_ADDR16_HIGHESTA34  R_PPC64 = 139
  1642  	R_PPC64_REL16_HIGHER34     R_PPC64 = 140
  1643  	R_PPC64_REL16_HIGHERA34    R_PPC64 = 141
  1644  	R_PPC64_REL16_HIGHEST34    R_PPC64 = 142
  1645  	R_PPC64_REL16_HIGHESTA34   R_PPC64 = 143
  1646  	R_PPC64_D28                R_PPC64 = 144
  1647  	R_PPC64_PCREL28            R_PPC64 = 145
  1648  	R_PPC64_TPREL34            R_PPC64 = 146
  1649  	R_PPC64_DTPREL34           R_PPC64 = 147
  1650  	R_PPC64_GOT_TLSGD_PCREL34  R_PPC64 = 148
  1651  	R_PPC64_GOT_TLSLD_PCREL34  R_PPC64 = 149
  1652  	R_PPC64_GOT_TPREL_PCREL34  R_PPC64 = 150
  1653  	R_PPC64_GOT_DTPREL_PCREL34 R_PPC64 = 151
  1654  	R_PPC64_REL16_HIGH         R_PPC64 = 240
  1655  	R_PPC64_REL16_HIGHA        R_PPC64 = 241
  1656  	R_PPC64_REL16_HIGHER       R_PPC64 = 242
  1657  	R_PPC64_REL16_HIGHERA      R_PPC64 = 243
  1658  	R_PPC64_REL16_HIGHEST      R_PPC64 = 244
  1659  	R_PPC64_REL16_HIGHESTA     R_PPC64 = 245
  1660  	R_PPC64_REL16DX_HA         R_PPC64 = 246
  1661  	R_PPC64_JMP_IREL           R_PPC64 = 247
  1662  	R_PPC64_IRELATIVE          R_PPC64 = 248
  1663  	R_PPC64_REL16              R_PPC64 = 249
  1664  	R_PPC64_REL16_LO           R_PPC64 = 250
  1665  	R_PPC64_REL16_HI           R_PPC64 = 251
  1666  	R_PPC64_REL16_HA           R_PPC64 = 252
  1667  	R_PPC64_GNU_VTINHERIT      R_PPC64 = 253
  1668  	R_PPC64_GNU_VTENTRY        R_PPC64 = 254
  1669  )
  1670  
  1671  func (i R_PPC64) String() string
  1672  func (i R_PPC64) GoString() string
  1673  
  1674  // RISC-Vプロセッサのための再配置タイプ。
  1675  type R_RISCV int
  1676  
  1677  const (
  1678  	R_RISCV_NONE          R_RISCV = 0
  1679  	R_RISCV_32            R_RISCV = 1
  1680  	R_RISCV_64            R_RISCV = 2
  1681  	R_RISCV_RELATIVE      R_RISCV = 3
  1682  	R_RISCV_COPY          R_RISCV = 4
  1683  	R_RISCV_JUMP_SLOT     R_RISCV = 5
  1684  	R_RISCV_TLS_DTPMOD32  R_RISCV = 6
  1685  	R_RISCV_TLS_DTPMOD64  R_RISCV = 7
  1686  	R_RISCV_TLS_DTPREL32  R_RISCV = 8
  1687  	R_RISCV_TLS_DTPREL64  R_RISCV = 9
  1688  	R_RISCV_TLS_TPREL32   R_RISCV = 10
  1689  	R_RISCV_TLS_TPREL64   R_RISCV = 11
  1690  	R_RISCV_BRANCH        R_RISCV = 16
  1691  	R_RISCV_JAL           R_RISCV = 17
  1692  	R_RISCV_CALL          R_RISCV = 18
  1693  	R_RISCV_CALL_PLT      R_RISCV = 19
  1694  	R_RISCV_GOT_HI20      R_RISCV = 20
  1695  	R_RISCV_TLS_GOT_HI20  R_RISCV = 21
  1696  	R_RISCV_TLS_GD_HI20   R_RISCV = 22
  1697  	R_RISCV_PCREL_HI20    R_RISCV = 23
  1698  	R_RISCV_PCREL_LO12_I  R_RISCV = 24
  1699  	R_RISCV_PCREL_LO12_S  R_RISCV = 25
  1700  	R_RISCV_HI20          R_RISCV = 26
  1701  	R_RISCV_LO12_I        R_RISCV = 27
  1702  	R_RISCV_LO12_S        R_RISCV = 28
  1703  	R_RISCV_TPREL_HI20    R_RISCV = 29
  1704  	R_RISCV_TPREL_LO12_I  R_RISCV = 30
  1705  	R_RISCV_TPREL_LO12_S  R_RISCV = 31
  1706  	R_RISCV_TPREL_ADD     R_RISCV = 32
  1707  	R_RISCV_ADD8          R_RISCV = 33
  1708  	R_RISCV_ADD16         R_RISCV = 34
  1709  	R_RISCV_ADD32         R_RISCV = 35
  1710  	R_RISCV_ADD64         R_RISCV = 36
  1711  	R_RISCV_SUB8          R_RISCV = 37
  1712  	R_RISCV_SUB16         R_RISCV = 38
  1713  	R_RISCV_SUB32         R_RISCV = 39
  1714  	R_RISCV_SUB64         R_RISCV = 40
  1715  	R_RISCV_GNU_VTINHERIT R_RISCV = 41
  1716  	R_RISCV_GNU_VTENTRY   R_RISCV = 42
  1717  	R_RISCV_ALIGN         R_RISCV = 43
  1718  	R_RISCV_RVC_BRANCH    R_RISCV = 44
  1719  	R_RISCV_RVC_JUMP      R_RISCV = 45
  1720  	R_RISCV_RVC_LUI       R_RISCV = 46
  1721  	R_RISCV_GPREL_I       R_RISCV = 47
  1722  	R_RISCV_GPREL_S       R_RISCV = 48
  1723  	R_RISCV_TPREL_I       R_RISCV = 49
  1724  	R_RISCV_TPREL_S       R_RISCV = 50
  1725  	R_RISCV_RELAX         R_RISCV = 51
  1726  	R_RISCV_SUB6          R_RISCV = 52
  1727  	R_RISCV_SET6          R_RISCV = 53
  1728  	R_RISCV_SET8          R_RISCV = 54
  1729  	R_RISCV_SET16         R_RISCV = 55
  1730  	R_RISCV_SET32         R_RISCV = 56
  1731  	R_RISCV_32_PCREL      R_RISCV = 57
  1732  )
  1733  
  1734  func (i R_RISCV) String() string
  1735  func (i R_RISCV) GoString() string
  1736  
  1737  // s390xプロセッサのための再配置タイプ。
  1738  type R_390 int
  1739  
  1740  const (
  1741  	R_390_NONE        R_390 = 0
  1742  	R_390_8           R_390 = 1
  1743  	R_390_12          R_390 = 2
  1744  	R_390_16          R_390 = 3
  1745  	R_390_32          R_390 = 4
  1746  	R_390_PC32        R_390 = 5
  1747  	R_390_GOT12       R_390 = 6
  1748  	R_390_GOT32       R_390 = 7
  1749  	R_390_PLT32       R_390 = 8
  1750  	R_390_COPY        R_390 = 9
  1751  	R_390_GLOB_DAT    R_390 = 10
  1752  	R_390_JMP_SLOT    R_390 = 11
  1753  	R_390_RELATIVE    R_390 = 12
  1754  	R_390_GOTOFF      R_390 = 13
  1755  	R_390_GOTPC       R_390 = 14
  1756  	R_390_GOT16       R_390 = 15
  1757  	R_390_PC16        R_390 = 16
  1758  	R_390_PC16DBL     R_390 = 17
  1759  	R_390_PLT16DBL    R_390 = 18
  1760  	R_390_PC32DBL     R_390 = 19
  1761  	R_390_PLT32DBL    R_390 = 20
  1762  	R_390_GOTPCDBL    R_390 = 21
  1763  	R_390_64          R_390 = 22
  1764  	R_390_PC64        R_390 = 23
  1765  	R_390_GOT64       R_390 = 24
  1766  	R_390_PLT64       R_390 = 25
  1767  	R_390_GOTENT      R_390 = 26
  1768  	R_390_GOTOFF16    R_390 = 27
  1769  	R_390_GOTOFF64    R_390 = 28
  1770  	R_390_GOTPLT12    R_390 = 29
  1771  	R_390_GOTPLT16    R_390 = 30
  1772  	R_390_GOTPLT32    R_390 = 31
  1773  	R_390_GOTPLT64    R_390 = 32
  1774  	R_390_GOTPLTENT   R_390 = 33
  1775  	R_390_GOTPLTOFF16 R_390 = 34
  1776  	R_390_GOTPLTOFF32 R_390 = 35
  1777  	R_390_GOTPLTOFF64 R_390 = 36
  1778  	R_390_TLS_LOAD    R_390 = 37
  1779  	R_390_TLS_GDCALL  R_390 = 38
  1780  	R_390_TLS_LDCALL  R_390 = 39
  1781  	R_390_TLS_GD32    R_390 = 40
  1782  	R_390_TLS_GD64    R_390 = 41
  1783  	R_390_TLS_GOTIE12 R_390 = 42
  1784  	R_390_TLS_GOTIE32 R_390 = 43
  1785  	R_390_TLS_GOTIE64 R_390 = 44
  1786  	R_390_TLS_LDM32   R_390 = 45
  1787  	R_390_TLS_LDM64   R_390 = 46
  1788  	R_390_TLS_IE32    R_390 = 47
  1789  	R_390_TLS_IE64    R_390 = 48
  1790  	R_390_TLS_IEENT   R_390 = 49
  1791  	R_390_TLS_LE32    R_390 = 50
  1792  	R_390_TLS_LE64    R_390 = 51
  1793  	R_390_TLS_LDO32   R_390 = 52
  1794  	R_390_TLS_LDO64   R_390 = 53
  1795  	R_390_TLS_DTPMOD  R_390 = 54
  1796  	R_390_TLS_DTPOFF  R_390 = 55
  1797  	R_390_TLS_TPOFF   R_390 = 56
  1798  	R_390_20          R_390 = 57
  1799  	R_390_GOT20       R_390 = 58
  1800  	R_390_GOTPLT20    R_390 = 59
  1801  	R_390_TLS_GOTIE20 R_390 = 60
  1802  )
  1803  
  1804  func (i R_390) String() string
  1805  func (i R_390) GoString() string
  1806  
  1807  // SPARCのための再配置タイプ。
  1808  type R_SPARC int
  1809  
  1810  const (
  1811  	R_SPARC_NONE     R_SPARC = 0
  1812  	R_SPARC_8        R_SPARC = 1
  1813  	R_SPARC_16       R_SPARC = 2
  1814  	R_SPARC_32       R_SPARC = 3
  1815  	R_SPARC_DISP8    R_SPARC = 4
  1816  	R_SPARC_DISP16   R_SPARC = 5
  1817  	R_SPARC_DISP32   R_SPARC = 6
  1818  	R_SPARC_WDISP30  R_SPARC = 7
  1819  	R_SPARC_WDISP22  R_SPARC = 8
  1820  	R_SPARC_HI22     R_SPARC = 9
  1821  	R_SPARC_22       R_SPARC = 10
  1822  	R_SPARC_13       R_SPARC = 11
  1823  	R_SPARC_LO10     R_SPARC = 12
  1824  	R_SPARC_GOT10    R_SPARC = 13
  1825  	R_SPARC_GOT13    R_SPARC = 14
  1826  	R_SPARC_GOT22    R_SPARC = 15
  1827  	R_SPARC_PC10     R_SPARC = 16
  1828  	R_SPARC_PC22     R_SPARC = 17
  1829  	R_SPARC_WPLT30   R_SPARC = 18
  1830  	R_SPARC_COPY     R_SPARC = 19
  1831  	R_SPARC_GLOB_DAT R_SPARC = 20
  1832  	R_SPARC_JMP_SLOT R_SPARC = 21
  1833  	R_SPARC_RELATIVE R_SPARC = 22
  1834  	R_SPARC_UA32     R_SPARC = 23
  1835  	R_SPARC_PLT32    R_SPARC = 24
  1836  	R_SPARC_HIPLT22  R_SPARC = 25
  1837  	R_SPARC_LOPLT10  R_SPARC = 26
  1838  	R_SPARC_PCPLT32  R_SPARC = 27
  1839  	R_SPARC_PCPLT22  R_SPARC = 28
  1840  	R_SPARC_PCPLT10  R_SPARC = 29
  1841  	R_SPARC_10       R_SPARC = 30
  1842  	R_SPARC_11       R_SPARC = 31
  1843  	R_SPARC_64       R_SPARC = 32
  1844  	R_SPARC_OLO10    R_SPARC = 33
  1845  	R_SPARC_HH22     R_SPARC = 34
  1846  	R_SPARC_HM10     R_SPARC = 35
  1847  	R_SPARC_LM22     R_SPARC = 36
  1848  	R_SPARC_PC_HH22  R_SPARC = 37
  1849  	R_SPARC_PC_HM10  R_SPARC = 38
  1850  	R_SPARC_PC_LM22  R_SPARC = 39
  1851  	R_SPARC_WDISP16  R_SPARC = 40
  1852  	R_SPARC_WDISP19  R_SPARC = 41
  1853  	R_SPARC_GLOB_JMP R_SPARC = 42
  1854  	R_SPARC_7        R_SPARC = 43
  1855  	R_SPARC_5        R_SPARC = 44
  1856  	R_SPARC_6        R_SPARC = 45
  1857  	R_SPARC_DISP64   R_SPARC = 46
  1858  	R_SPARC_PLT64    R_SPARC = 47
  1859  	R_SPARC_HIX22    R_SPARC = 48
  1860  	R_SPARC_LOX10    R_SPARC = 49
  1861  	R_SPARC_H44      R_SPARC = 50
  1862  	R_SPARC_M44      R_SPARC = 51
  1863  	R_SPARC_L44      R_SPARC = 52
  1864  	R_SPARC_REGISTER R_SPARC = 53
  1865  	R_SPARC_UA64     R_SPARC = 54
  1866  	R_SPARC_UA16     R_SPARC = 55
  1867  )
  1868  
  1869  func (i R_SPARC) String() string
  1870  func (i R_SPARC) GoString() string
  1871  
  1872  // elfトランポリンのためのマジックナンバー。即値として賢明に選ばれます。
  1873  const ARM_MAGIC_TRAMP_NUMBER = 0x5c000003
  1874  
  1875  // ELF32 ファイルヘッダー。
  1876  type Header32 struct {
  1877  	Ident     [EI_NIDENT]byte
  1878  	Type      uint16
  1879  	Machine   uint16
  1880  	Version   uint32
  1881  	Entry     uint32
  1882  	Phoff     uint32
  1883  	Shoff     uint32
  1884  	Flags     uint32
  1885  	Ehsize    uint16
  1886  	Phentsize uint16
  1887  	Phnum     uint16
  1888  	Shentsize uint16
  1889  	Shnum     uint16
  1890  	Shstrndx  uint16
  1891  }
  1892  
  1893  // ELF32 セクションヘッダー。
  1894  type Section32 struct {
  1895  	Name      uint32
  1896  	Type      uint32
  1897  	Flags     uint32
  1898  	Addr      uint32
  1899  	Off       uint32
  1900  	Size      uint32
  1901  	Link      uint32
  1902  	Info      uint32
  1903  	Addralign uint32
  1904  	Entsize   uint32
  1905  }
  1906  
  1907  // ELF32 プログラムヘッダー。
  1908  type Prog32 struct {
  1909  	Type   uint32
  1910  	Off    uint32
  1911  	Vaddr  uint32
  1912  	Paddr  uint32
  1913  	Filesz uint32
  1914  	Memsz  uint32
  1915  	Flags  uint32
  1916  	Align  uint32
  1917  }
  1918  
  1919  // ELF32 ダイナミック構造体。 ".dynamic"セクションには、これらの配列が含まれています。
  1920  type Dyn32 struct {
  1921  	Tag int32
  1922  	Val uint32
  1923  }
  1924  
  1925  // ELF32 圧縮ヘッダー。
  1926  type Chdr32 struct {
  1927  	Type      uint32
  1928  	Size      uint32
  1929  	Addralign uint32
  1930  }
  1931  
  1932  // 追加フィールドが不要なELF32の再配置。
  1933  type Rel32 struct {
  1934  	Off  uint32
  1935  	Info uint32
  1936  }
  1937  
  1938  // 追加フィールドが必要なELF32の再配置。
  1939  type Rela32 struct {
  1940  	Off    uint32
  1941  	Info   uint32
  1942  	Addend int32
  1943  }
  1944  
  1945  func R_SYM32(info uint32) uint32
  1946  func R_TYPE32(info uint32) uint32
  1947  func R_INFO32(sym, typ uint32) uint32
  1948  
  1949  // ELF32 シンボル。
  1950  type Sym32 struct {
  1951  	Name  uint32
  1952  	Value uint32
  1953  	Size  uint32
  1954  	Info  uint8
  1955  	Other uint8
  1956  	Shndx uint16
  1957  }
  1958  
  1959  const Sym32Size = 16
  1960  
  1961  func ST_BIND(info uint8) SymBind
  1962  func ST_TYPE(info uint8) SymType
  1963  func ST_INFO(bind SymBind, typ SymType) uint8
  1964  
  1965  func ST_VISIBILITY(other uint8) SymVis
  1966  
  1967  // ELF64 ファイルヘッダー。
  1968  type Header64 struct {
  1969  	Ident     [EI_NIDENT]byte
  1970  	Type      uint16
  1971  	Machine   uint16
  1972  	Version   uint32
  1973  	Entry     uint64
  1974  	Phoff     uint64
  1975  	Shoff     uint64
  1976  	Flags     uint32
  1977  	Ehsize    uint16
  1978  	Phentsize uint16
  1979  	Phnum     uint16
  1980  	Shentsize uint16
  1981  	Shnum     uint16
  1982  	Shstrndx  uint16
  1983  }
  1984  
  1985  // ELF64 セクションヘッダー。
  1986  type Section64 struct {
  1987  	Name      uint32
  1988  	Type      uint32
  1989  	Flags     uint64
  1990  	Addr      uint64
  1991  	Off       uint64
  1992  	Size      uint64
  1993  	Link      uint32
  1994  	Info      uint32
  1995  	Addralign uint64
  1996  	Entsize   uint64
  1997  }
  1998  
  1999  // ELF64 プログラムヘッダー。
  2000  type Prog64 struct {
  2001  	Type   uint32
  2002  	Flags  uint32
  2003  	Off    uint64
  2004  	Vaddr  uint64
  2005  	Paddr  uint64
  2006  	Filesz uint64
  2007  	Memsz  uint64
  2008  	Align  uint64
  2009  }
  2010  
  2011  // ELF64 ダイナミック構造体。 ".dynamic"セクションには、これらの配列が含まれています。
  2012  type Dyn64 struct {
  2013  	Tag int64
  2014  	Val uint64
  2015  }
  2016  
  2017  // ELF64 圧縮ヘッダー。
  2018  type Chdr64 struct {
  2019  	Type      uint32
  2020  	_         uint32
  2021  	Size      uint64
  2022  	Addralign uint64
  2023  }
  2024  
  2025  // 追加フィールドが不要なELF64の再配置。
  2026  type Rel64 struct {
  2027  	Off  uint64
  2028  	Info uint64
  2029  }
  2030  
  2031  // 追加フィールドが必要なELF64の再配置。
  2032  type Rela64 struct {
  2033  	Off    uint64
  2034  	Info   uint64
  2035  	Addend int64
  2036  }
  2037  
  2038  func R_SYM64(info uint64) uint32
  2039  func R_TYPE64(info uint64) uint32
  2040  func R_INFO(sym, typ uint32) uint64
  2041  
  2042  // ELF64 シンボルテーブルエントリ。
  2043  type Sym64 struct {
  2044  	Name  uint32
  2045  	Info  uint8
  2046  	Other uint8
  2047  	Shndx uint16
  2048  	Value uint64
  2049  	Size  uint64
  2050  }
  2051  
  2052  const Sym64Size = 24