[Lldb-commits] [lldb] r307632 - [LLDB][ppc64le] Rename enums in AuxVector

Pavel Labath via lldb-commits lldb-commits at lists.llvm.org
Tue Jul 11 01:39:44 PDT 2017


Author: labath
Date: Tue Jul 11 01:39:44 2017
New Revision: 307632

URL: http://llvm.org/viewvc/llvm-project?rev=307632&view=rev
Log:
[LLDB][ppc64le] Rename enums in AuxVector

Summary:
On linux on ppc64le some of the enums in AuxVector have the same name
as macros defined in the system.

Reviewers: mikesart, labath

Reviewed By: labath

Subscribers: joerg, gut, krytarowski, lldb-commits

Differential Revision: https://reviews.llvm.org/D35065
Patch by Bruno Rosa <bruno.rosa at eldorado.org.br>

Modified:
    lldb/trunk/source/Plugins/DynamicLoader/POSIX-DYLD/AuxVector.cpp
    lldb/trunk/source/Plugins/DynamicLoader/POSIX-DYLD/AuxVector.h
    lldb/trunk/source/Plugins/DynamicLoader/POSIX-DYLD/DynamicLoaderPOSIXDYLD.cpp

Modified: lldb/trunk/source/Plugins/DynamicLoader/POSIX-DYLD/AuxVector.cpp
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Plugins/DynamicLoader/POSIX-DYLD/AuxVector.cpp?rev=307632&r1=307631&r2=307632&view=diff
==============================================================================
--- lldb/trunk/source/Plugins/DynamicLoader/POSIX-DYLD/AuxVector.cpp (original)
+++ lldb/trunk/source/Plugins/DynamicLoader/POSIX-DYLD/AuxVector.cpp Tue Jul 11 01:39:44 2017
@@ -63,10 +63,10 @@ void AuxVector::ParseAuxv(DataExtractor
     if (!ParseAuxvEntry(data, entry, &offset, byte_size))
       break;
 
-    if (entry.type == AT_NULL)
+    if (entry.type == AUXV_AT_NULL)
       break;
 
-    if (entry.type == AT_IGNORE)
+    if (entry.type == AUXV_AT_IGNORE)
       continue;
 
     m_auxv.push_back(entry);
@@ -110,43 +110,43 @@ void AuxVector::DumpToLog(Log *log) cons
 const char *AuxVector::GetEntryName(EntryType type) {
   const char *name = "AT_???";
 
-#define ENTRY_NAME(_type)                                                      \
-  _type:                                                                       \
-  name = #_type
+#define ENTRY_NAME(_type) \
+  _type:                  \
+  name = #_type + 5
   switch (type) {
-    case ENTRY_NAME(AT_NULL);           break;
-    case ENTRY_NAME(AT_IGNORE);         break;
-    case ENTRY_NAME(AT_EXECFD);         break;
-    case ENTRY_NAME(AT_PHDR);           break;
-    case ENTRY_NAME(AT_PHENT);          break;
-    case ENTRY_NAME(AT_PHNUM);          break;
-    case ENTRY_NAME(AT_PAGESZ);         break;
-    case ENTRY_NAME(AT_BASE);           break;
-    case ENTRY_NAME(AT_FLAGS);          break;
-    case ENTRY_NAME(AT_ENTRY);          break;
-    case ENTRY_NAME(AT_NOTELF);         break;
-    case ENTRY_NAME(AT_UID);            break;
-    case ENTRY_NAME(AT_EUID);           break;
-    case ENTRY_NAME(AT_GID);            break;
-    case ENTRY_NAME(AT_EGID);           break;
-    case ENTRY_NAME(AT_CLKTCK);         break;
-    case ENTRY_NAME(AT_PLATFORM);       break;
-    case ENTRY_NAME(AT_HWCAP);          break;
-    case ENTRY_NAME(AT_FPUCW);          break;
-    case ENTRY_NAME(AT_DCACHEBSIZE);    break;
-    case ENTRY_NAME(AT_ICACHEBSIZE);    break;
-    case ENTRY_NAME(AT_UCACHEBSIZE);    break;
-    case ENTRY_NAME(AT_IGNOREPPC);      break;
-    case ENTRY_NAME(AT_SECURE);         break;
-    case ENTRY_NAME(AT_BASE_PLATFORM);  break;
-    case ENTRY_NAME(AT_RANDOM);         break;
-    case ENTRY_NAME(AT_EXECFN);         break;
-    case ENTRY_NAME(AT_SYSINFO);        break;
-    case ENTRY_NAME(AT_SYSINFO_EHDR);   break;
-    case ENTRY_NAME(AT_L1I_CACHESHAPE); break;
-    case ENTRY_NAME(AT_L1D_CACHESHAPE); break;
-    case ENTRY_NAME(AT_L2_CACHESHAPE);  break;
-    case ENTRY_NAME(AT_L3_CACHESHAPE);  break;
+    case ENTRY_NAME(AUXV_AT_NULL);           break;
+    case ENTRY_NAME(AUXV_AT_IGNORE);         break;
+    case ENTRY_NAME(AUXV_AT_EXECFD);         break;
+    case ENTRY_NAME(AUXV_AT_PHDR);           break;
+    case ENTRY_NAME(AUXV_AT_PHENT);          break;
+    case ENTRY_NAME(AUXV_AT_PHNUM);          break;
+    case ENTRY_NAME(AUXV_AT_PAGESZ);         break;
+    case ENTRY_NAME(AUXV_AT_BASE);           break;
+    case ENTRY_NAME(AUXV_AT_FLAGS);          break;
+    case ENTRY_NAME(AUXV_AT_ENTRY);          break;
+    case ENTRY_NAME(AUXV_AT_NOTELF);         break;
+    case ENTRY_NAME(AUXV_AT_UID);            break;
+    case ENTRY_NAME(AUXV_AT_EUID);           break;
+    case ENTRY_NAME(AUXV_AT_GID);            break;
+    case ENTRY_NAME(AUXV_AT_EGID);           break;
+    case ENTRY_NAME(AUXV_AT_CLKTCK);         break;
+    case ENTRY_NAME(AUXV_AT_PLATFORM);       break;
+    case ENTRY_NAME(AUXV_AT_HWCAP);          break;
+    case ENTRY_NAME(AUXV_AT_FPUCW);          break;
+    case ENTRY_NAME(AUXV_AT_DCACHEBSIZE);    break;
+    case ENTRY_NAME(AUXV_AT_ICACHEBSIZE);    break;
+    case ENTRY_NAME(AUXV_AT_UCACHEBSIZE);    break;
+    case ENTRY_NAME(AUXV_AT_IGNOREPPC);      break;
+    case ENTRY_NAME(AUXV_AT_SECURE);         break;
+    case ENTRY_NAME(AUXV_AT_BASE_PLATFORM);  break;
+    case ENTRY_NAME(AUXV_AT_RANDOM);         break;
+    case ENTRY_NAME(AUXV_AT_EXECFN);         break;
+    case ENTRY_NAME(AUXV_AT_SYSINFO);        break;
+    case ENTRY_NAME(AUXV_AT_SYSINFO_EHDR);   break;
+    case ENTRY_NAME(AUXV_AT_L1I_CACHESHAPE); break;
+    case ENTRY_NAME(AUXV_AT_L1D_CACHESHAPE); break;
+    case ENTRY_NAME(AUXV_AT_L2_CACHESHAPE);  break;
+    case ENTRY_NAME(AUXV_AT_L3_CACHESHAPE);  break;
     }
 #undef ENTRY_NAME
 

Modified: lldb/trunk/source/Plugins/DynamicLoader/POSIX-DYLD/AuxVector.h
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Plugins/DynamicLoader/POSIX-DYLD/AuxVector.h?rev=307632&r1=307631&r2=307632&view=diff
==============================================================================
--- lldb/trunk/source/Plugins/DynamicLoader/POSIX-DYLD/AuxVector.h (original)
+++ lldb/trunk/source/Plugins/DynamicLoader/POSIX-DYLD/AuxVector.h Tue Jul 11 01:39:44 2017
@@ -42,41 +42,42 @@ public:
 
   /// Constants describing the type of entry.
   /// On Linux, running "LD_SHOW_AUXV=1 ./executable" will spew AUX information.
+  /// Added AUXV prefix to avoid potential conflicts with system-defined macros
   enum EntryType {
-    AT_NULL = 0,      ///< End of auxv.
-    AT_IGNORE = 1,    ///< Ignore entry.
-    AT_EXECFD = 2,    ///< File descriptor of program.
-    AT_PHDR = 3,      ///< Program headers.
-    AT_PHENT = 4,     ///< Size of program header.
-    AT_PHNUM = 5,     ///< Number of program headers.
-    AT_PAGESZ = 6,    ///< Page size.
-    AT_BASE = 7,      ///< Interpreter base address.
-    AT_FLAGS = 8,     ///< Flags.
-    AT_ENTRY = 9,     ///< Program entry point.
-    AT_NOTELF = 10,   ///< Set if program is not an ELF.
-    AT_UID = 11,      ///< UID.
-    AT_EUID = 12,     ///< Effective UID.
-    AT_GID = 13,      ///< GID.
-    AT_EGID = 14,     ///< Effective GID.
-    AT_CLKTCK = 17,   ///< Clock frequency (e.g. times(2)).
-    AT_PLATFORM = 15, ///< String identifying platform.
-    AT_HWCAP = 16,    ///< Machine dependent hints about processor capabilities.
-    AT_FPUCW = 18,    ///< Used FPU control word.
-    AT_DCACHEBSIZE = 19,   ///< Data cache block size.
-    AT_ICACHEBSIZE = 20,   ///< Instruction cache block size.
-    AT_UCACHEBSIZE = 21,   ///< Unified cache block size.
-    AT_IGNOREPPC = 22,     ///< Entry should be ignored.
-    AT_SECURE = 23,        ///< Boolean, was exec setuid-like?
-    AT_BASE_PLATFORM = 24, ///< String identifying real platforms.
-    AT_RANDOM = 25,        ///< Address of 16 random bytes.
-    AT_EXECFN = 31,        ///< Filename of executable.
-    AT_SYSINFO = 32, ///< Pointer to the global system page used for system
-                     ///calls and other nice things.
-    AT_SYSINFO_EHDR = 33,
-    AT_L1I_CACHESHAPE = 34, ///< Shapes of the caches.
-    AT_L1D_CACHESHAPE = 35,
-    AT_L2_CACHESHAPE = 36,
-    AT_L3_CACHESHAPE = 37,
+    AUXV_AT_NULL = 0,            ///< End of auxv.
+    AUXV_AT_IGNORE = 1,          ///< Ignore entry.
+    AUXV_AT_EXECFD = 2,          ///< File descriptor of program.
+    AUXV_AT_PHDR = 3,            ///< Program headers.
+    AUXV_AT_PHENT = 4,           ///< Size of program header.
+    AUXV_AT_PHNUM = 5,           ///< Number of program headers.
+    AUXV_AT_PAGESZ = 6,          ///< Page size.
+    AUXV_AT_BASE = 7,            ///< Interpreter base address.
+    AUXV_AT_FLAGS = 8,           ///< Flags.
+    AUXV_AT_ENTRY = 9,           ///< Program entry point.
+    AUXV_AT_NOTELF = 10,         ///< Set if program is not an ELF.
+    AUXV_AT_UID = 11,            ///< UID.
+    AUXV_AT_EUID = 12,           ///< Effective UID.
+    AUXV_AT_GID = 13,            ///< GID.
+    AUXV_AT_EGID = 14,           ///< Effective GID.
+    AUXV_AT_CLKTCK = 17,         ///< Clock frequency (e.g. times(2)).
+    AUXV_AT_PLATFORM = 15,       ///< String identifying platform.
+    AUXV_AT_HWCAP = 16,          ///< Machine dependent hints about processor capabilities.
+    AUXV_AT_FPUCW = 18,          ///< Used FPU control word.
+    AUXV_AT_DCACHEBSIZE = 19,    ///< Data cache block size.
+    AUXV_AT_ICACHEBSIZE = 20,    ///< Instruction cache block size.
+    AUXV_AT_UCACHEBSIZE = 21,    ///< Unified cache block size.
+    AUXV_AT_IGNOREPPC = 22,      ///< Entry should be ignored.
+    AUXV_AT_SECURE = 23,         ///< Boolean, was exec setuid-like?
+    AUXV_AT_BASE_PLATFORM = 24,  ///< String identifying real platforms.
+    AUXV_AT_RANDOM = 25,         ///< Address of 16 random bytes.
+    AUXV_AT_EXECFN = 31,         ///< Filename of executable.
+    AUXV_AT_SYSINFO = 32,        ///< Pointer to the global system page used for system
+                                 ///calls and other nice things.
+    AUXV_AT_SYSINFO_EHDR = 33,
+    AUXV_AT_L1I_CACHESHAPE = 34, ///< Shapes of the caches.
+    AUXV_AT_L1D_CACHESHAPE = 35,
+    AUXV_AT_L2_CACHESHAPE = 36,
+    AUXV_AT_L3_CACHESHAPE = 37,
   };
 
 private:

Modified: lldb/trunk/source/Plugins/DynamicLoader/POSIX-DYLD/DynamicLoaderPOSIXDYLD.cpp
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Plugins/DynamicLoader/POSIX-DYLD/DynamicLoaderPOSIXDYLD.cpp?rev=307632&r1=307631&r2=307632&view=diff
==============================================================================
--- lldb/trunk/source/Plugins/DynamicLoader/POSIX-DYLD/DynamicLoaderPOSIXDYLD.cpp (original)
+++ lldb/trunk/source/Plugins/DynamicLoader/POSIX-DYLD/DynamicLoaderPOSIXDYLD.cpp Tue Jul 11 01:39:44 2017
@@ -576,7 +576,7 @@ addr_t DynamicLoaderPOSIXDYLD::ComputeLo
 }
 
 void DynamicLoaderPOSIXDYLD::EvalVdsoStatus() {
-  AuxVector::iterator I = m_auxv->FindEntry(AuxVector::AT_SYSINFO_EHDR);
+  AuxVector::iterator I = m_auxv->FindEntry(AuxVector::AUXV_AT_SYSINFO_EHDR);
 
   if (I != m_auxv->end())
     m_vdso_base = I->value;
@@ -589,7 +589,7 @@ addr_t DynamicLoaderPOSIXDYLD::GetEntryP
   if (m_auxv.get() == NULL)
     return LLDB_INVALID_ADDRESS;
 
-  AuxVector::iterator I = m_auxv->FindEntry(AuxVector::AT_ENTRY);
+  AuxVector::iterator I = m_auxv->FindEntry(AuxVector::AUXV_AT_ENTRY);
 
   if (I == m_auxv->end())
     return LLDB_INVALID_ADDRESS;




More information about the lldb-commits mailing list