Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(732)

Side by Side Diff: include/llvm/Support/ELF.h

Issue 9546035: Support reading GNU symbol versions in ELFObjectFile (Closed) Base URL: https://llvm.org/svn/llvm-project/llvm/trunk/
Patch Set: fixed #defines Created 8 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « include/llvm/Object/ELF.h ('k') | test/Object/Inputs/elf-versioning-test.i386 » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 //===-- llvm/Support/ELF.h - ELF constants and data structures --*- C++ -*-===// 1 //===-- llvm/Support/ELF.h - ELF constants and data structures --*- C++ -*-===//
2 // 2 //
3 // The LLVM Compiler Infrastructure 3 // The LLVM Compiler Infrastructure
4 // 4 //
5 // This file is distributed under the University of Illinois Open Source 5 // This file is distributed under the University of Illinois Open Source
6 // License. See LICENSE.TXT for details. 6 // License. See LICENSE.TXT for details.
7 // 7 //
8 //===----------------------------------------------------------------------===// 8 //===----------------------------------------------------------------------===//
9 // 9 //
10 // This header contains common, non-processor-specific data structures and 10 // This header contains common, non-processor-specific data structures and
(...skipping 716 matching lines...) Expand 10 before | Expand all | Expand 10 after
727 SHT_NOBITS = 8, // Data occupies no space in the file. 727 SHT_NOBITS = 8, // Data occupies no space in the file.
728 SHT_REL = 9, // Relocation entries; no explicit addends. 728 SHT_REL = 9, // Relocation entries; no explicit addends.
729 SHT_SHLIB = 10, // Reserved. 729 SHT_SHLIB = 10, // Reserved.
730 SHT_DYNSYM = 11, // Symbol table. 730 SHT_DYNSYM = 11, // Symbol table.
731 SHT_INIT_ARRAY = 14, // Pointers to initialization functions. 731 SHT_INIT_ARRAY = 14, // Pointers to initialization functions.
732 SHT_FINI_ARRAY = 15, // Pointers to termination functions. 732 SHT_FINI_ARRAY = 15, // Pointers to termination functions.
733 SHT_PREINIT_ARRAY = 16, // Pointers to pre-init functions. 733 SHT_PREINIT_ARRAY = 16, // Pointers to pre-init functions.
734 SHT_GROUP = 17, // Section group. 734 SHT_GROUP = 17, // Section group.
735 SHT_SYMTAB_SHNDX = 18, // Indices for SHN_XINDEX entries. 735 SHT_SYMTAB_SHNDX = 18, // Indices for SHN_XINDEX entries.
736 SHT_LOOS = 0x60000000, // Lowest operating system-specific type. 736 SHT_LOOS = 0x60000000, // Lowest operating system-specific type.
737 SHT_GNU_verdef = 0x6ffffffd, // GNU version definitions.
738 SHT_GNU_verneed = 0x6ffffffe, // GNU version references.
739 SHT_GNU_versym = 0x6fffffff, // GNU symbol versions table.
737 SHT_HIOS = 0x6fffffff, // Highest operating system-specific type. 740 SHT_HIOS = 0x6fffffff, // Highest operating system-specific type.
738 SHT_LOPROC = 0x70000000, // Lowest processor architecture-specific type . 741 SHT_LOPROC = 0x70000000, // Lowest processor architecture-specific type .
739 // Fixme: All this is duplicated in MCSectionELF. Why?? 742 // Fixme: All this is duplicated in MCSectionELF. Why??
740 // Exception Index table 743 // Exception Index table
741 SHT_ARM_EXIDX = 0x70000001U, 744 SHT_ARM_EXIDX = 0x70000001U,
742 // BPABI DLL dynamic linking pre-emption map 745 // BPABI DLL dynamic linking pre-emption map
743 SHT_ARM_PREEMPTMAP = 0x70000002U, 746 SHT_ARM_PREEMPTMAP = 0x70000002U,
744 // Object file compatibility attributes 747 // Object file compatibility attributes
745 SHT_ARM_ATTRIBUTES = 0x70000003U, 748 SHT_ARM_ATTRIBUTES = 0x70000003U,
746 SHT_ARM_DEBUGOVERLAY = 0x70000004U, 749 SHT_ARM_DEBUGOVERLAY = 0x70000004U,
(...skipping 348 matching lines...) Expand 10 before | Expand all | Expand 10 after
1095 1098
1096 // DT_FLAGS values. 1099 // DT_FLAGS values.
1097 enum { 1100 enum {
1098 DF_ORIGIN = 0x01, // The object may reference $ORIGIN. 1101 DF_ORIGIN = 0x01, // The object may reference $ORIGIN.
1099 DF_SYMBOLIC = 0x02, // Search the shared lib before searching the exe. 1102 DF_SYMBOLIC = 0x02, // Search the shared lib before searching the exe.
1100 DF_TEXTREL = 0x04, // Relocations may modify a non-writable segment. 1103 DF_TEXTREL = 0x04, // Relocations may modify a non-writable segment.
1101 DF_BIND_NOW = 0x08, // Process all relocations on load. 1104 DF_BIND_NOW = 0x08, // Process all relocations on load.
1102 DF_STATIC_TLS = 0x10 // Reject attempts to load dynamically. 1105 DF_STATIC_TLS = 0x10 // Reject attempts to load dynamically.
1103 }; 1106 };
1104 1107
1108 // ElfXX_VerDef structure version (GNU versioning)
1109 enum {
1110 VER_DEF_NONE = 0,
1111 VER_DEF_CURRENT = 1
1112 };
1113
1114 // VerDef Flags (ElfXX_VerDef::vd_flags)
1115 enum {
1116 VER_FLG_BASE = 0x1,
1117 VER_FLG_WEAK = 0x2,
1118 VER_FLG_INFO = 0x4
1119 };
1120
1121 // Special constants for the version table. (SHT_GNU_versym/.gnu.version)
1122 enum {
1123 VER_NDX_LOCAL = 0, // Unversioned local symbol
1124 VER_NDX_GLOBAL = 1, // Unversioned global symbol
1125 VERSYM_VERSION = 0x7fff, // Version Index mask
1126 VERSYM_HIDDEN = 0x8000 // Hidden bit (non-default version)
1127 };
1128
1129 // ElfXX_VerNeed structure version (GNU versioning)
1130 enum {
1131 VER_NEED_NONE = 0,
1132 VER_NEED_CURRENT = 1
1133 };
1134
1105 } // end namespace ELF 1135 } // end namespace ELF
1106 1136
1107 } // end namespace llvm 1137 } // end namespace llvm
1108 1138
1109 #endif 1139 #endif
OLDNEW
« no previous file with comments | « include/llvm/Object/ELF.h ('k') | test/Object/Inputs/elf-versioning-test.i386 » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698