OLD | NEW |
1 // Copyright 2005 Google Inc. All Rights Reserved. | 1 // Copyright 2005 Google Inc. All Rights Reserved. |
2 // Author: chatham@google.com (Andrew Chatham) | 2 // Author: chatham@google.com (Andrew Chatham) |
3 // Author: satorux@google.com (Satoru Takabayashi) | 3 // Author: satorux@google.com (Satoru Takabayashi) |
4 // | 4 // |
5 // Code for reading in ELF files. | 5 // Code for reading in ELF files. |
6 // | 6 // |
7 // For information on the ELF format, see | 7 // For information on the ELF format, see |
8 // http://www.x86.org/ftp/manuals/tools/elf.pdf | 8 // http://www.x86.org/ftp/manuals/tools/elf.pdf |
9 // | 9 // |
10 // I also liked: | 10 // I also liked: |
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
45 #include "zlib.h" | 45 #include "zlib.h" |
46 | 46 |
47 #include "elf_reader.h" | 47 #include "elf_reader.h" |
48 //#include "using_std_string.h" | 48 //#include "using_std_string.h" |
49 // EM_AARCH64 is not defined by elf.h of GRTE v3 on x86. | 49 // EM_AARCH64 is not defined by elf.h of GRTE v3 on x86. |
50 // TODO(dougkwan): Remove this when v17 is retired. | 50 // TODO(dougkwan): Remove this when v17 is retired. |
51 #if !defined(EM_AARCH64) | 51 #if !defined(EM_AARCH64) |
52 #define EM_AARCH64 183 /* ARM AARCH64 */ | 52 #define EM_AARCH64 183 /* ARM AARCH64 */ |
53 #endif | 53 #endif |
54 | 54 |
| 55 // Map Linux macros to their Apple equivalents. |
| 56 #if __APPLE__ |
| 57 #ifndef __LITTLE_ENDIAN |
| 58 #define __LITTLE_ENDIAN __ORDER_LITTLE_ENDIAN__ |
| 59 #endif // __LITTLE_ENDIAN |
| 60 #ifndef __BIG_ENDIAN |
| 61 #define __BIG_ENDIAN __ORDER_BIG_ENDIAN__ |
| 62 #endif // __BIG_ENDIAN |
| 63 #ifndef __BYTE_ORDER |
| 64 #define __BYTE_ORDER __BYTE_ORDER__ |
| 65 #endif // __BYTE_ORDER |
| 66 #endif // __APPLE__ |
| 67 |
55 // TODO(dthomson): Can be removed once all Java code is using the Google3 | 68 // TODO(dthomson): Can be removed once all Java code is using the Google3 |
56 // launcher. We need to avoid processing PLT functions as it causes memory | 69 // launcher. We need to avoid processing PLT functions as it causes memory |
57 // fragmentation in malloc, which is fixed in tcmalloc - and if the Google3 | 70 // fragmentation in malloc, which is fixed in tcmalloc - and if the Google3 |
58 // launcher is used the JVM will then use tcmalloc. b/13735638 | 71 // launcher is used the JVM will then use tcmalloc. b/13735638 |
59 //DEFINE_bool(elfreader_process_dynsyms, true, | 72 //DEFINE_bool(elfreader_process_dynsyms, true, |
60 // "Activate PLT function processing"); | 73 // "Activate PLT function processing"); |
61 | 74 |
62 using std::string; | 75 using std::string; |
63 using std::vector; | 76 using std::vector; |
64 | 77 |
(...skipping 1184 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1249 } | 1262 } |
1250 | 1263 |
1251 bool ElfReader::IsNonStrippedELFBinary(const string &path) { | 1264 bool ElfReader::IsNonStrippedELFBinary(const string &path) { |
1252 return IsNonStrippedELFBinaryHelper(path, false); | 1265 return IsNonStrippedELFBinaryHelper(path, false); |
1253 } | 1266 } |
1254 | 1267 |
1255 bool ElfReader::IsNonDebugStrippedELFBinary(const string &path) { | 1268 bool ElfReader::IsNonDebugStrippedELFBinary(const string &path) { |
1256 return IsNonStrippedELFBinaryHelper(path, true); | 1269 return IsNonStrippedELFBinaryHelper(path, true); |
1257 } | 1270 } |
1258 } // namespace dwarf2reader | 1271 } // namespace dwarf2reader |
OLD | NEW |