Use LLVM headers for generation ELF and Dwarf files
authorEvgeny Pavlov <e.pavlov@samsung.com>
Fri, 22 Jul 2016 08:48:51 +0000 (11:48 +0300)
committerEvgeny Pavlov <e.pavlov@samsung.com>
Fri, 22 Jul 2016 08:48:51 +0000 (11:48 +0300)
Commit migrated from https://github.com/dotnet/coreclr/commit/6919d9f9efcc97ced3f728e2f59bbea63a8f63e2

src/coreclr/src/vm/gdbjit.cpp
src/coreclr/src/vm/gdbjit.h

index 13b040a..b572d1b 100644 (file)
@@ -210,13 +210,13 @@ const int DebugStringCount = sizeof(DebugStrings) / sizeof(DebugStrings[0]);
 
 /* Static data for .debug_abbrev */
 const unsigned char AbbrevTable[] = {
-    1, DW_TAG_compile_unit, DW_children_yes,
+    1, DW_TAG_compile_unit, DW_CHILDREN_yes,
         DW_AT_producer, DW_FORM_strp, DW_AT_language, DW_FORM_data2, DW_AT_name, DW_FORM_strp,
         DW_AT_stmt_list, DW_FORM_sec_offset, 0, 0,
-    2, DW_TAG_subprogram, DW_children_no,
+    2, DW_TAG_subprogram, DW_CHILDREN_no,
         DW_AT_name, DW_FORM_strp, DW_AT_decl_file, DW_FORM_data1, DW_AT_decl_line, DW_FORM_data1,
         DW_AT_type, DW_FORM_ref4, DW_AT_external, DW_FORM_flag_present, 0, 0,
-    3, DW_TAG_base_type, DW_children_no,
+    3, DW_TAG_base_type, DW_CHILDREN_no,
         DW_AT_name, DW_FORM_strp, DW_AT_encoding, DW_FORM_data1, DW_AT_byte_size, DW_FORM_data1,0, 0,
     0
 };
@@ -269,7 +269,7 @@ void NotifyGdb::MethodCompiled(MethodDesc* MethodDescPtr)
     /* Get method name & size of jitted code */
     LPCUTF8 methodName = MethodDescPtr->GetName();
     EECodeInfo codeInfo(pCode);
-    TADDR codeSize = codeInfo.GetCodeManager()->GetFunctionSize(codeInfo.GetGCInfo());
+    TADDR codeSize = codeInfo.GetCodeManager()->GetFunctionSize(codeInfo.GetGCInfoToken());
     
 #ifdef _TARGET_ARM_    
     pCode &= ~1; // clear thumb flag for debug info
@@ -944,14 +944,14 @@ int NotifyGdb::Leb128Encode(int32_t num, char* buf, int size)
 /* ELF 32bit header */
 Elf32_Ehdr::Elf32_Ehdr()
 {
-    e_ident[EI_MAG0] = ELFMAG0;
-    e_ident[EI_MAG1] = ELFMAG1;
-    e_ident[EI_MAG2] = ELFMAG2;
-    e_ident[EI_MAG3] = ELFMAG3;
+    e_ident[EI_MAG0] = ElfMagic[0];
+    e_ident[EI_MAG1] = ElfMagic[1];
+    e_ident[EI_MAG2] = ElfMagic[2];
+    e_ident[EI_MAG3] = ElfMagic[3];
     e_ident[EI_CLASS] = ELFCLASS32;
     e_ident[EI_DATA] = ELFDATA2LSB;
     e_ident[EI_VERSION] = EV_CURRENT;
-    e_ident[EI_OSABI] = ELFOSABI_SYSV;
+    e_ident[EI_OSABI] = ELFOSABI_NONE;
     e_ident[EI_ABIVERSION] = 0;
     for (int i = EI_PAD; i < EI_NIDENT; ++i)
         e_ident[i] = 0;
@@ -974,14 +974,14 @@ Elf32_Ehdr::Elf32_Ehdr()
 /* ELF 64bit header */
 Elf64_Ehdr::Elf64_Ehdr()
 {
-    e_ident[EI_MAG0] = ELFMAG0;
-    e_ident[EI_MAG1] = ELFMAG1;
-    e_ident[EI_MAG2] = ELFMAG2;
-    e_ident[EI_MAG3] = ELFMAG3;
+    e_ident[EI_MAG0] = ElfMagic[0];
+    e_ident[EI_MAG1] = ElfMagic[1];
+    e_ident[EI_MAG2] = ElfMagic[2];
+    e_ident[EI_MAG3] = ElfMagic[3];
     e_ident[EI_CLASS] = ELFCLASS64;
     e_ident[EI_DATA] = ELFDATA2LSB;
     e_ident[EI_VERSION] = EV_CURRENT;
-    e_ident[EI_OSABI] = ELFOSABI_SYSV;
+    e_ident[EI_OSABI] = ELFOSABI_NONE;
     e_ident[EI_ABIVERSION] = 0;
     for (int i = EI_PAD; i < EI_NIDENT; ++i)
         e_ident[i] = 0;
index ce270b5..5c7f24b 100644 (file)
 
 #include <stdint.h>
 #include "method.hpp"
-
-/* Type for a 16-bit quantity.  */
-typedef uint16_t Elf32_Half;
-typedef uint16_t Elf64_Half;
-
-/* Types for signed and unsigned 32-bit quantities.  */
-typedef uint32_t Elf32_Word;
-typedef        int32_t  Elf32_Sword;
-typedef uint32_t Elf64_Word;
-typedef        int32_t  Elf64_Sword;
-
-/* Types for signed and unsigned 64-bit quantities.  */
-typedef uint64_t Elf32_Xword;
-typedef        int64_t  Elf32_Sxword;
-typedef uint64_t Elf64_Xword;
-typedef        int64_t  Elf64_Sxword;
-
-/* Type of addresses.  */
-typedef uint32_t Elf32_Addr;
-typedef uint64_t Elf64_Addr;
-
-/* Type of file offsets.  */
-typedef uint32_t Elf32_Off;
-typedef uint64_t Elf64_Off;
-
-/* Type for section indices, which are 16-bit quantities.  */
-typedef uint16_t Elf32_Section;
-typedef uint16_t Elf64_Section;
-
-/* The ELF file header.  This appears at the start of every ELF file.  */
-
-#define EI_NIDENT (16)
-
-struct  Elf32_Ehdr
-{
-  unsigned char        e_ident[EI_NIDENT];     /* Magic number and other info */
-  Elf32_Half   e_type;                 /* Object file type */
-  Elf32_Half   e_machine;              /* Architecture */
-  Elf32_Word   e_version;              /* Object file version */
-  Elf32_Addr   e_entry;                /* Entry point virtual address */
-  Elf32_Off    e_phoff;                /* Program header table file offset */
-  Elf32_Off    e_shoff;                /* Section header table file offset */
-  Elf32_Word   e_flags;                /* Processor-specific flags */
-  Elf32_Half   e_ehsize;               /* ELF header size in bytes */
-  Elf32_Half   e_phentsize;            /* Program header table entry size */
-  Elf32_Half   e_phnum;                /* Program header table entry count */
-  Elf32_Half   e_shentsize;            /* Section header table entry size */
-  Elf32_Half   e_shnum;                /* Section header table entry count */
-  Elf32_Half   e_shstrndx;             /* Section header string table index */
-  Elf32_Ehdr();
-};
-
-struct  Elf64_Ehdr
-{
-  unsigned char        e_ident[EI_NIDENT];     /* Magic number and other info */
-  Elf64_Half   e_type;                 /* Object file type */
-  Elf64_Half   e_machine;              /* Architecture */
-  Elf64_Word   e_version;              /* Object file version */
-  Elf64_Addr   e_entry;                /* Entry point virtual address */
-  Elf64_Off    e_phoff;                /* Program header table file offset */
-  Elf64_Off    e_shoff;                /* Section header table file offset */
-  Elf64_Word   e_flags;                /* Processor-specific flags */
-  Elf64_Half   e_ehsize;               /* ELF header size in bytes */
-  Elf64_Half   e_phentsize;            /* Program header table entry size */
-  Elf64_Half   e_phnum;                /* Program header table entry count */
-  Elf64_Half   e_shentsize;            /* Section header table entry size */
-  Elf64_Half   e_shnum;                /* Section header table entry count */
-  Elf64_Half   e_shstrndx;             /* Section header string table index */
-  Elf64_Ehdr();
-};
-
-#define EI_MAG0                0               /* File identification byte 0 index */
-#define ELFMAG0                0x7f            /* Magic number byte 0 */
-
-#define EI_MAG1                1               /* File identification byte 1 index */
-#define ELFMAG1                'E'             /* Magic number byte 1 */
-
-#define EI_MAG2                2               /* File identification byte 2 index */
-#define ELFMAG2                'L'             /* Magic number byte 2 */
-
-#define EI_MAG3                3               /* File identification byte 3 index */
-#define ELFMAG3                'F'             /* Magic number byte 3 */
-
-/* Conglomeration of the identification bytes, for easy testing as a word.  */
-#define        ELFMAG          "\177ELF"
-#define        SELFMAG         4
-
-#define EI_CLASS       4               /* File class byte index */
-#define ELFCLASSNONE   0               /* Invalid class */
-#define ELFCLASS32     1               /* 32-bit objects */
-#define ELFCLASS64     2               /* 64-bit objects */
-#define ELFCLASSNUM    3
-
-#define EI_DATA                5               /* Data encoding byte index */
-#define ELFDATANONE    0               /* Invalid data encoding */
-#define ELFDATA2LSB    1               /* 2's complement, little endian */
-#define ELFDATA2MSB    2               /* 2's complement, big endian */
-#define ELFDATANUM     3
-
-#define EI_VERSION     6               /* File version byte index */
-                                       /* Value must be EV_CURRENT */
-
-#define EI_OSABI       7               /* OS ABI identification */
-#define ELFOSABI_NONE          0       /* UNIX System V ABI */
-#define ELFOSABI_SYSV          0       /* Alias.  */
-#define ELFOSABI_HPUX          1       /* HP-UX */
-#define ELFOSABI_NETBSD                2       /* NetBSD.  */
-#define ELFOSABI_GNU           3       /* Object uses GNU ELF extensions.  */
-#define ELFOSABI_LINUX         ELFOSABI_GNU /* Compatibility alias.  */
-#define ELFOSABI_SOLARIS       6       /* Sun Solaris.  */
-#define ELFOSABI_AIX           7       /* IBM AIX.  */
-#define ELFOSABI_IRIX          8       /* SGI Irix.  */
-#define ELFOSABI_FREEBSD       9       /* FreeBSD.  */
-#define ELFOSABI_TRU64         10      /* Compaq TRU64 UNIX.  */
-#define ELFOSABI_MODESTO       11      /* Novell Modesto.  */
-#define ELFOSABI_OPENBSD       12      /* OpenBSD.  */
-#define ELFOSABI_ARM_AEABI     64      /* ARM EABI */
-#define ELFOSABI_ARM           97      /* ARM */
-#define ELFOSABI_STANDALONE    255     /* Standalone (embedded) application */
-
-#define EI_ABIVERSION  8               /* ABI version */
-
-#define EI_PAD         9               /* Byte index of padding bytes */
-
-/* Legal values for e_type (object file type).  */
-
-#define ET_NONE                0               /* No file type */
-#define ET_REL         1               /* Relocatable file */
-#define ET_EXEC                2               /* Executable file */
-#define ET_DYN         3               /* Shared object file */
-#define ET_CORE                4               /* Core file */
-#define        ET_NUM          5               /* Number of defined types */
-#define ET_LOOS                0xfe00          /* OS-specific range start */
-#define ET_HIOS                0xfeff          /* OS-specific range end */
-#define ET_LOPROC      0xff00          /* Processor-specific range start */
-#define ET_HIPROC      0xffff          /* Processor-specific range end */
-
-/* Legal values for e_machine (architecture).  */
-
-#define EM_NONE                 0              /* No machine */
-#define EM_M32          1              /* AT&T WE 32100 */
-#define EM_SPARC        2              /* SUN SPARC */
-#define EM_386          3              /* Intel 80386 */
-#define EM_68K          4              /* Motorola m68k family */
-#define EM_88K          5              /* Motorola m88k family */
-#define EM_860          7              /* Intel 80860 */
-#define EM_MIPS                 8              /* MIPS R3000 big-endian */
-#define EM_S370                 9              /* IBM System/370 */
-#define EM_MIPS_RS3_LE 10              /* MIPS R3000 little-endian */
-
-#define EM_PARISC      15              /* HPPA */
-#define EM_VPP500      17              /* Fujitsu VPP500 */
-#define EM_SPARC32PLUS 18              /* Sun's "v8plus" */
-#define EM_960         19              /* Intel 80960 */
-#define EM_PPC         20              /* PowerPC */
-#define EM_PPC64       21              /* PowerPC 64-bit */
-#define EM_S390                22              /* IBM S390 */
-
-#define EM_V800                36              /* NEC V800 series */
-#define EM_FR20                37              /* Fujitsu FR20 */
-#define EM_RH32                38              /* TRW RH-32 */
-#define EM_RCE         39              /* Motorola RCE */
-#define EM_ARM         40              /* ARM */
-#define EM_FAKE_ALPHA  41              /* Digital Alpha */
-#define EM_SH          42              /* Hitachi SH */
-#define EM_SPARCV9     43              /* SPARC v9 64-bit */
-#define EM_TRICORE     44              /* Siemens Tricore */
-#define EM_ARC         45              /* Argonaut RISC Core */
-#define EM_H8_300      46              /* Hitachi H8/300 */
-#define EM_H8_300H     47              /* Hitachi H8/300H */
-#define EM_H8S         48              /* Hitachi H8S */
-#define EM_H8_500      49              /* Hitachi H8/500 */
-#define EM_IA_64       50              /* Intel Merced */
-#define EM_MIPS_X      51              /* Stanford MIPS-X */
-#define EM_COLDFIRE    52              /* Motorola Coldfire */
-#define EM_68HC12      53              /* Motorola M68HC12 */
-#define EM_MMA         54              /* Fujitsu MMA Multimedia Accelerator*/
-#define EM_PCP         55              /* Siemens PCP */
-#define EM_NCPU                56              /* Sony nCPU embeeded RISC */
-#define EM_NDR1                57              /* Denso NDR1 microprocessor */
-#define EM_STARCORE    58              /* Motorola Start*Core processor */
-#define EM_ME16                59              /* Toyota ME16 processor */
-#define EM_ST100       60              /* STMicroelectronic ST100 processor */
-#define EM_TINYJ       61              /* Advanced Logic Corp. Tinyj emb.fam*/
-#define EM_X86_64      62              /* AMD x86-64 architecture */
-#define EM_PDSP                63              /* Sony DSP Processor */
-
-#define EM_FX66                66              /* Siemens FX66 microcontroller */
-#define EM_ST9PLUS     67              /* STMicroelectronics ST9+ 8/16 mc */
-#define EM_ST7         68              /* STmicroelectronics ST7 8 bit mc */
-#define EM_68HC16      69              /* Motorola MC68HC16 microcontroller */
-#define EM_68HC11      70              /* Motorola MC68HC11 microcontroller */
-#define EM_68HC08      71              /* Motorola MC68HC08 microcontroller */
-#define EM_68HC05      72              /* Motorola MC68HC05 microcontroller */
-#define EM_SVX         73              /* Silicon Graphics SVx */
-#define EM_ST19                74              /* STMicroelectronics ST19 8 bit mc */
-#define EM_VAX         75              /* Digital VAX */
-#define EM_CRIS                76              /* Axis Communications 32-bit embedded processor */
-#define EM_JAVELIN     77              /* Infineon Technologies 32-bit embedded processor */
-#define EM_FIREPATH    78              /* Element 14 64-bit DSP Processor */
-#define EM_ZSP         79              /* LSI Logic 16-bit DSP Processor */
-#define EM_MMIX                80              /* Donald Knuth's educational 64-bit processor */
-#define EM_HUANY       81              /* Harvard University machine-independent object files */
-#define EM_PRISM       82              /* SiTera Prism */
-#define EM_AVR         83              /* Atmel AVR 8-bit microcontroller */
-#define EM_FR30                84              /* Fujitsu FR30 */
-#define EM_D10V                85              /* Mitsubishi D10V */
-#define EM_D30V                86              /* Mitsubishi D30V */
-#define EM_V850                87              /* NEC v850 */
-#define EM_M32R                88              /* Mitsubishi M32R */
-#define EM_MN10300     89              /* Matsushita MN10300 */
-#define EM_MN10200     90              /* Matsushita MN10200 */
-#define EM_PJ          91              /* picoJava */
-#define EM_OPENRISC    92              /* OpenRISC 32-bit embedded processor */
-#define EM_ARC_A5      93              /* ARC Cores Tangent-A5 */
-#define EM_XTENSA      94              /* Tensilica Xtensa Architecture */
-#define EM_AARCH64     183             /* ARM AARCH64 */
-#define EM_TILEPRO     188             /* Tilera TILEPro */
-#define EM_MICROBLAZE  189             /* Xilinx MicroBlaze */
-#define EM_TILEGX      191             /* Tilera TILE-Gx */
-#define EM_NUM         192
-
-#define EV_NONE                0               /* Invalid ELF version */
-#define EV_CURRENT     1               /* Current version */
-#define EV_NUM         2
-
-/* Processor specific flags for the ELF header e_flags field.  */
-#define EF_ARM_RELEXEC         0x01
-#define EF_ARM_HASENTRY                0x02
-#define EF_ARM_INTERWORK       0x04
-#define EF_ARM_APCS_26         0x08
-#define EF_ARM_APCS_FLOAT      0x10
-#define EF_ARM_PIC             0x20
-#define EF_ARM_ALIGN8          0x40 /* 8-bit structure alignment is in use */
-#define EF_ARM_NEW_ABI         0x80
-#define EF_ARM_OLD_ABI         0x100
-#define EF_ARM_SOFT_FLOAT      0x200
-#define EF_ARM_VFP_FLOAT       0x400
-#define EF_ARM_MAVERICK_FLOAT  0x800
-
-#define EF_ARM_EABI_VERSION(flags)     ((flags) & EF_ARM_EABIMASK)
-#define EF_ARM_EABI_UNKNOWN    0x00000000
-#define EF_ARM_EABI_VER1       0x01000000
-#define EF_ARM_EABI_VER2       0x02000000
-#define EF_ARM_EABI_VER3       0x03000000
-#define EF_ARM_EABI_VER4       0x04000000
-#define EF_ARM_EABI_VER5       0x05000000
-
-
-/* Section header.  */
-
-typedef struct
-{
-  Elf32_Word   sh_name;                /* Section name (string tbl index) */
-  Elf32_Word   sh_type;                /* Section type */
-  Elf32_Word   sh_flags;               /* Section flags */
-  Elf32_Addr   sh_addr;                /* Section virtual addr at execution */
-  Elf32_Off    sh_offset;              /* Section file offset */
-  Elf32_Word   sh_size;                /* Section size in bytes */
-  Elf32_Word   sh_link;                /* Link to another section */
-  Elf32_Word   sh_info;                /* Additional section information */
-  Elf32_Word   sh_addralign;           /* Section alignment */
-  Elf32_Word   sh_entsize;             /* Entry size if section holds table */
-} Elf32_Shdr;
-
-typedef struct
-{
-  Elf64_Word   sh_name;                /* Section name (string tbl index) */
-  Elf64_Word   sh_type;                /* Section type */
-  Elf64_Xword  sh_flags;               /* Section flags */
-  Elf64_Addr   sh_addr;                /* Section virtual addr at execution */
-  Elf64_Off    sh_offset;              /* Section file offset */
-  Elf64_Xword  sh_size;                /* Section size in bytes */
-  Elf64_Word   sh_link;                /* Link to another section */
-  Elf64_Word   sh_info;                /* Additional section information */
-  Elf64_Xword  sh_addralign;           /* Section alignment */
-  Elf64_Xword  sh_entsize;             /* Entry size if section holds table */
-} Elf64_Shdr;
-
-/* Special section indices.  */
-
-#define SHN_UNDEF      0               /* Undefined section */
-#define SHN_LORESERVE  0xff00          /* Start of reserved indices */
-#define SHN_LOPROC     0xff00          /* Start of processor-specific */
-#define SHN_BEFORE     0xff00          /* Order section before all others
-                                          (Solaris).  */
-#define SHN_AFTER      0xff01          /* Order section after all others
-                                          (Solaris).  */
-#define SHN_HIPROC     0xff1f          /* End of processor-specific */
-#define SHN_LOOS       0xff20          /* Start of OS-specific */
-#define SHN_HIOS       0xff3f          /* End of OS-specific */
-#define SHN_ABS                0xfff1          /* Associated symbol is absolute */
-#define SHN_COMMON     0xfff2          /* Associated symbol is common */
-#define SHN_XINDEX     0xffff          /* Index is in extra table.  */
-#define SHN_HIRESERVE  0xffff          /* End of reserved indices */
-
-/* Legal values for sh_type (section type).  */
-
-#define SHT_NULL         0             /* Section header table entry unused */
-#define SHT_PROGBITS     1             /* Program data */
-#define SHT_SYMTAB       2             /* Symbol table */
-#define SHT_STRTAB       3             /* String table */
-#define SHT_RELA         4             /* Relocation entries with addends */
-#define SHT_HASH         5             /* Symbol hash table */
-#define SHT_DYNAMIC      6             /* Dynamic linking information */
-#define SHT_NOTE         7             /* Notes */
-#define SHT_NOBITS       8             /* Program space with no data (bss) */
-#define SHT_REL                  9             /* Relocation entries, no addends */
-#define SHT_SHLIB        10            /* Reserved */
-#define SHT_DYNSYM       11            /* Dynamic linker symbol table */
-#define SHT_INIT_ARRAY   14            /* Array of constructors */
-#define SHT_FINI_ARRAY   15            /* Array of destructors */
-#define SHT_PREINIT_ARRAY 16           /* Array of pre-constructors */
-#define SHT_GROUP        17            /* Section group */
-#define SHT_SYMTAB_SHNDX  18           /* Extended section indeces */
-#define        SHT_NUM           19            /* Number of defined types.  */
-#define SHT_LOOS         0x60000000    /* Start OS-specific.  */
-#define SHT_GNU_ATTRIBUTES 0x6ffffff5  /* Object attributes.  */
-#define SHT_GNU_HASH     0x6ffffff6    /* GNU-style hash table.  */
-#define SHT_GNU_LIBLIST          0x6ffffff7    /* Prelink library list */
-#define SHT_CHECKSUM     0x6ffffff8    /* Checksum for DSO content.  */
-#define SHT_LOSUNW       0x6ffffffa    /* Sun-specific low bound.  */
-#define SHT_SUNW_move    0x6ffffffa
-#define SHT_SUNW_COMDAT   0x6ffffffb
-#define SHT_SUNW_syminfo  0x6ffffffc
-#define SHT_GNU_verdef   0x6ffffffd    /* Version definition section.  */
-#define SHT_GNU_verneed          0x6ffffffe    /* Version needs section.  */
-#define SHT_GNU_versym   0x6fffffff    /* Version symbol table.  */
-#define SHT_HISUNW       0x6fffffff    /* Sun-specific high bound.  */
-#define SHT_HIOS         0x6fffffff    /* End OS-specific type */
-#define SHT_LOPROC       0x70000000    /* Start of processor-specific */
-#define SHT_HIPROC       0x7fffffff    /* End of processor-specific */
-#define SHT_LOUSER       0x80000000    /* Start of application-specific */
-#define SHT_HIUSER       0x8fffffff    /* End of application-specific */
-
-/* Legal values for sh_flags (section flags).  */
-
-#define SHF_WRITE           (1 << 0)   /* Writable */
-#define SHF_ALLOC           (1 << 1)   /* Occupies memory during execution */
-#define SHF_EXECINSTR       (1 << 2)   /* Executable */
-#define SHF_MERGE           (1 << 4)   /* Might be merged */
-#define SHF_STRINGS         (1 << 5)   /* Contains nul-terminated strings */
-#define SHF_INFO_LINK       (1 << 6)   /* `sh_info' contains SHT index */
-#define SHF_LINK_ORDER      (1 << 7)   /* Preserve order after combining */
-#define SHF_OS_NONCONFORMING (1 << 8)  /* Non-standard OS specific handling
-                                          required */
-#define SHF_GROUP           (1 << 9)   /* Section is member of a group.  */
-#define SHF_TLS                     (1 << 10)  /* Section hold thread-local data.  */
-#define SHF_MASKOS          0x0ff00000 /* OS-specific.  */
-#define SHF_MASKPROC        0xf0000000 /* Processor-specific */
-#define SHF_ORDERED         (1 << 30)  /* Special ordering requirement
-                                          (Solaris).  */
-#define SHF_EXCLUDE         (1 << 31)  /* Section is excluded unless
-                                          referenced or allocated (Solaris).*/
+#include "../inc/llvm/ELF.h"
+#include "../inc/llvm/Dwarf.h"
 
 #if defined(_TARGET_X86_) || defined(_TARGET_ARM_)
     typedef Elf32_Ehdr  Elf_Ehdr;
@@ -383,70 +31,6 @@ typedef struct
 #error "Target is not supported"
 #endif
 
-
-#define DW_TAG_compile_unit             0x11
-#define DW_TAG_subprogram               0x2e
-#define DW_TAG_base_type                0x24
-
-#define DW_children_no                  0
-#define DW_children_yes                 1
-
-#define DW_AT_name                              0x03
-#define DW_AT_byte_size                         0x0b
-#define DW_AT_stmt_list                         0x10
-#define DW_AT_language                          0x13
-#define DW_AT_producer                          0x25
-#define DW_AT_decl_file                         0x3a
-#define DW_AT_decl_line                         0x3b
-#define DW_AT_encoding                          0x3e
-#define DW_AT_external                          0x3f
-#define DW_AT_type                              0x49
-
-#define DW_FORM_data2                   0x05
-#define DW_FORM_data1                   0x0b
-#define DW_FORM_strp                    0x0e
-#define DW_FORM_ref4                    0x13
-#define DW_FORM_sec_offset              0x17
-#define DW_FORM_flag_present            0x19
-
-/* Line number standard opcode name. */
-#define DW_LNS_copy                     0x01
-#define DW_LNS_advance_pc               0x02
-#define DW_LNS_advance_line             0x03
-#define DW_LNS_set_file                 0x04
-#define DW_LNS_set_column               0x05
-#define DW_LNS_negate_stmt              0x06
-#define DW_LNS_set_basic_block          0x07
-#define DW_LNS_const_add_pc             0x08
-#define DW_LNS_fixed_advance_pc         0x09
-#define DW_LNS_set_prologue_end         0x0a /* DWARF3 */
-#define DW_LNS_set_epilogue_begin       0x0b /* DWARF3 */
-#define DW_LNS_set_isa                  0x0c /* DWARF3 */
-
-/* Line number extended opcode name. */
-#define DW_LNE_end_sequence             0x01
-#define DW_LNE_set_address              0x02
-#define DW_LNE_define_file              0x03
-#define DW_LNE_set_discriminator        0x04  /* DWARF4 */
-
-#define DW_LANG_C89                     0x0001
-
-#define DW_ATE_address                  0x1
-#define DW_ATE_boolean                  0x2
-#define DW_ATE_complex_float            0x3
-#define DW_ATE_float                    0x4
-#define DW_ATE_signed                   0x5
-#define DW_ATE_signed_char              0x6
-#define DW_ATE_unsigned                 0x7
-#define DW_ATE_unsigned_char            0x8
-#define DW_ATE_imaginary_float          0x9  /* DWARF3 */
-#define DW_ATE_packed_decimal           0xa  /* DWARF3f */
-#define DW_ATE_numeric_string           0xb  /* DWARF3f */
-#define DW_ATE_edited                   0xc  /* DWARF3f */
-#define DW_ATE_signed_fixed             0xd  /* DWARF3f */
-#define DW_ATE_unsigned_fixed           0xe  /* DWARF3f */
-#define DW_ATE_decimal_float            0xf  /* DWARF3f */
-
 struct __attribute__((packed)) DwarfCompUnit
 {
     uint32_t m_length;