[Lldb-commits] [lldb] r342050 - Move SafeMachO from Utility to Host

Pavel Labath via lldb-commits lldb-commits at lists.llvm.org
Wed Sep 12 05:26:05 PDT 2018


Author: labath
Date: Wed Sep 12 05:26:05 2018
New Revision: 342050

URL: http://llvm.org/viewvc/llvm-project?rev=342050&view=rev
Log:
Move SafeMachO from Utility to Host

Summary:
One of the conclusions of the discussion on D49740 was that SafeMachO is better
off in the Host module (as that's the only place which should include
mach/machine.h, which is what this header is working around). Also, Utility,
which is the only module which cannot include Host, should not be doing
anything with object file formats.

This patch implements that move, and also removes any unneded includes of that
file.

I've verified that MacOS still compiles after this.

Reviewers: jingham, zturner, teemperor

Subscribers: fedor.sergeev, lldb-commits

Differential Revision: https://reviews.llvm.org/D50383

Added:
    lldb/trunk/include/lldb/Host/SafeMachO.h
      - copied, changed from r342047, lldb/trunk/include/lldb/Utility/SafeMachO.h
Removed:
    lldb/trunk/include/lldb/Utility/SafeMachO.h
Modified:
    lldb/trunk/include/lldb/module.modulemap
    lldb/trunk/source/Host/common/Symbols.cpp
    lldb/trunk/source/Host/macosx/Symbols.cpp
    lldb/trunk/source/Host/macosx/objcxx/HostInfoMacOSX.mm
    lldb/trunk/source/Plugins/DynamicLoader/Darwin-Kernel/DynamicLoaderDarwinKernel.h
    lldb/trunk/source/Plugins/DynamicLoader/MacOSX-DYLD/DynamicLoaderDarwin.h
    lldb/trunk/source/Plugins/DynamicLoader/MacOSX-DYLD/DynamicLoaderMacOS.h
    lldb/trunk/source/Plugins/DynamicLoader/MacOSX-DYLD/DynamicLoaderMacOSXDYLD.h
    lldb/trunk/source/Plugins/ObjectContainer/Universal-Mach-O/ObjectContainerUniversalMachO.h
    lldb/trunk/source/Plugins/ObjectFile/Mach-O/ObjectFileMachO.cpp
    lldb/trunk/source/Plugins/ObjectFile/Mach-O/ObjectFileMachO.h
    lldb/trunk/source/Plugins/Process/MacOSX-Kernel/ThreadKDP.cpp
    lldb/trunk/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServerCommon.cpp
    lldb/trunk/source/Plugins/Process/mach-core/ProcessMachCore.cpp
    lldb/trunk/source/Plugins/Process/mach-core/ThreadMachCore.cpp

Copied: lldb/trunk/include/lldb/Host/SafeMachO.h (from r342047, lldb/trunk/include/lldb/Utility/SafeMachO.h)
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/include/lldb/Host/SafeMachO.h?p2=lldb/trunk/include/lldb/Host/SafeMachO.h&p1=lldb/trunk/include/lldb/Utility/SafeMachO.h&r1=342047&r2=342050&rev=342050&view=diff
==============================================================================
    (empty)

Removed: lldb/trunk/include/lldb/Utility/SafeMachO.h
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/include/lldb/Utility/SafeMachO.h?rev=342049&view=auto
==============================================================================
--- lldb/trunk/include/lldb/Utility/SafeMachO.h (original)
+++ lldb/trunk/include/lldb/Utility/SafeMachO.h (removed)
@@ -1,116 +0,0 @@
-//===-- SafeMachO.h -----------------------------------*- C++ -*-===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-#ifndef liblldb_SafeMachO_h_
-#define liblldb_SafeMachO_h_
-
-// This header file is required to work around collisions between the defines
-// in mach/machine.h, and enum members of the same name in llvm's MachO.h.  If
-// you want to use llvm/Support/MachO.h, use this file instead. The caveats
-// are: 1) You can only use the MachO.h enums, you can't use the defines.  That
-// won't make a difference since the values
-//    are the same.
-// 2) If you need any header file that relies on mach/machine.h, you must
-// include that first. 3) This isn't a total solution, it doesn't undef every
-// define that MachO.h has borrowed from various system headers,
-//    only the ones that come from mach/machine.h because that is the one we
-//    ended up pulling in from various places.
-//
-
-#undef CPU_ARCH_MASK
-#undef CPU_ARCH_ABI64
-
-#undef CPU_TYPE_ANY
-#undef CPU_TYPE_X86
-#undef CPU_TYPE_I386
-#undef CPU_TYPE_X86_64
-#undef CPU_TYPE_MC98000
-#undef CPU_TYPE_ARM
-#undef CPU_TYPE_ARM64
-#undef CPU_TYPE_SPARC
-#undef CPU_TYPE_POWERPC
-#undef CPU_TYPE_POWERPC64
-
-#undef CPU_SUB_TYPE_MASK
-#undef CPU_SUB_TYPE_LIB64
-
-#undef CPU_SUBTYPE_MULTIPLE
-
-#undef CPU_SUBTYPE_I386_ALL
-#undef CPU_SUBTYPE_386
-#undef CPU_SUBTYPE_486
-#undef CPU_SUBTYPE_486SX
-#undef CPU_SUBTYPE_586
-#undef CPU_SUBTYPE_PENT
-#undef CPU_SUBTYPE_PENTPRO
-#undef CPU_SUBTYPE_PENTII_M3
-#undef CPU_SUBTYPE_PENTII_M5
-#undef CPU_SUBTYPE_CELERON
-#undef CPU_SUBTYPE_CELERON_MOBILE
-#undef CPU_SUBTYPE_PENTIUM_3
-#undef CPU_SUBTYPE_PENTIUM_3_M
-#undef CPU_SUBTYPE_PENTIUM_3_XEON
-#undef CPU_SUBTYPE_PENTIUM_M
-#undef CPU_SUBTYPE_PENTIUM_4
-#undef CPU_SUBTYPE_PENTIUM_4_M
-#undef CPU_SUBTYPE_ITANIUM
-#undef CPU_SUBTYPE_ITANIUM_2
-#undef CPU_SUBTYPE_XEON
-#undef CPU_SUBTYPE_XEON_MP
-
-#undef CPU_SUBTYPE_X86_ALL
-#undef CPU_SUBTYPE_X86_64_ALL
-#undef CPU_SUBTYPE_X86_ARCH1
-#undef CPU_SUBTYPE_X86_64_H
-
-#undef CPU_SUBTYPE_INTEL
-#undef CPU_SUBTYPE_INTEL_FAMILY
-#undef CPU_SUBTYPE_INTEL_FAMILY_MAX
-#undef CPU_SUBTYPE_INTEL_MODEL
-#undef CPU_SUBTYPE_INTEL_MODEL_ALL
-
-#undef CPU_SUBTYPE_ARM
-#undef CPU_SUBTYPE_ARM_ALL
-#undef CPU_SUBTYPE_ARM_V4T
-#undef CPU_SUBTYPE_ARM_V6
-#undef CPU_SUBTYPE_ARM_V5
-#undef CPU_SUBTYPE_ARM_V5TEJ
-#undef CPU_SUBTYPE_ARM_XSCALE
-#undef CPU_SUBTYPE_ARM_V7
-
-#undef CPU_SUBTYPE_ARM_V7S
-#undef CPU_SUBTYPE_ARM_V7K
-#undef CPU_SUBTYPE_ARM_V6M
-#undef CPU_SUBTYPE_ARM_V7M
-#undef CPU_SUBTYPE_ARM_V7EM
-
-#undef CPU_SUBTYPE_ARM64_ALL
-
-#undef CPU_SUBTYPE_SPARC_ALL
-
-#undef CPU_SUBTYPE_POWERPC
-#undef CPU_SUBTYPE_POWERPC_ALL
-#undef CPU_SUBTYPE_POWERPC_601
-#undef CPU_SUBTYPE_POWERPC_602
-#undef CPU_SUBTYPE_POWERPC_603
-#undef CPU_SUBTYPE_POWERPC_603e
-#undef CPU_SUBTYPE_POWERPC_603ev
-#undef CPU_SUBTYPE_POWERPC_604
-#undef CPU_SUBTYPE_POWERPC_604e
-#undef CPU_SUBTYPE_POWERPC_620
-#undef CPU_SUBTYPE_POWERPC_750
-#undef CPU_SUBTYPE_POWERPC_7400
-#undef CPU_SUBTYPE_POWERPC_7450
-#undef CPU_SUBTYPE_POWERPC_970
-
-#undef CPU_SUBTYPE_MC980000_ALL
-#undef CPU_SUBTYPE_MC98601
-
-#include "llvm/BinaryFormat/MachO.h"
-
-#endif // liblldb_SafeMachO_h_

Modified: lldb/trunk/include/lldb/module.modulemap
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/include/lldb/module.modulemap?rev=342050&r1=342049&r2=342050&view=diff
==============================================================================
--- lldb/trunk/include/lldb/module.modulemap (original)
+++ lldb/trunk/include/lldb/module.modulemap Wed Sep 12 05:26:05 2018
@@ -41,6 +41,7 @@ module lldb_Host {
   module ProcessLauncher { header "Host/ProcessLauncher.h" export * }
   module ProcessRunLock { header "Host/ProcessRunLock.h" export * }
   module PseudoTerminal { header "Host/PseudoTerminal.h" export * }
+  module SafeMachO { header "Host/SafeMachO.h" export * }
   module SocketAddress { header "Host/SocketAddress.h" export * }
   module Socket { header "Host/Socket.h" export * }
   module StringConvert { header "Host/StringConvert.h" export * }

Modified: lldb/trunk/source/Host/common/Symbols.cpp
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Host/common/Symbols.cpp?rev=342050&r1=342049&r2=342050&view=diff
==============================================================================
--- lldb/trunk/source/Host/common/Symbols.cpp (original)
+++ lldb/trunk/source/Host/common/Symbols.cpp Wed Sep 12 05:26:05 2018
@@ -16,7 +16,6 @@
 #include "lldb/Utility/DataBuffer.h"
 #include "lldb/Utility/DataExtractor.h"
 #include "lldb/Utility/Log.h"
-#include "lldb/Utility/SafeMachO.h"
 #include "lldb/Utility/StreamString.h"
 #include "lldb/Utility/Timer.h"
 #include "lldb/Utility/UUID.h"
@@ -29,7 +28,6 @@ typedef int cpu_subtype_t;
 
 using namespace lldb;
 using namespace lldb_private;
-using namespace llvm::MachO;
 
 #if defined(__APPLE__)
 

Modified: lldb/trunk/source/Host/macosx/Symbols.cpp
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Host/macosx/Symbols.cpp?rev=342050&r1=342049&r2=342050&view=diff
==============================================================================
--- lldb/trunk/source/Host/macosx/Symbols.cpp (original)
+++ lldb/trunk/source/Host/macosx/Symbols.cpp Wed Sep 12 05:26:05 2018
@@ -10,7 +10,6 @@
 #include "lldb/Host/Symbols.h"
 
 // C Includes
-#include "lldb/Utility/SafeMachO.h"
 #include <dirent.h>
 #include <pwd.h>
 
@@ -42,7 +41,6 @@
 
 using namespace lldb;
 using namespace lldb_private;
-using namespace llvm::MachO;
 
 #if !defined(__arm__) && !defined(__arm64__) &&                                \
     !defined(__aarch64__) // No DebugSymbols on the iOS devices

Modified: lldb/trunk/source/Host/macosx/objcxx/HostInfoMacOSX.mm
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Host/macosx/objcxx/HostInfoMacOSX.mm?rev=342050&r1=342049&r2=342050&view=diff
==============================================================================
--- lldb/trunk/source/Host/macosx/objcxx/HostInfoMacOSX.mm (original)
+++ lldb/trunk/source/Host/macosx/objcxx/HostInfoMacOSX.mm Wed Sep 12 05:26:05 2018
@@ -11,7 +11,6 @@
 #include "lldb/Host/macosx/HostInfoMacOSX.h"
 #include "lldb/Utility/Args.h"
 #include "lldb/Utility/Log.h"
-#include "lldb/Utility/SafeMachO.h"
 
 #include "llvm/ADT/SmallString.h"
 #include "llvm/Support/FileSystem.h"

Modified: lldb/trunk/source/Plugins/DynamicLoader/Darwin-Kernel/DynamicLoaderDarwinKernel.h
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Plugins/DynamicLoader/Darwin-Kernel/DynamicLoaderDarwinKernel.h?rev=342050&r1=342049&r2=342050&view=diff
==============================================================================
--- lldb/trunk/source/Plugins/DynamicLoader/Darwin-Kernel/DynamicLoaderDarwinKernel.h (original)
+++ lldb/trunk/source/Plugins/DynamicLoader/Darwin-Kernel/DynamicLoaderDarwinKernel.h Wed Sep 12 05:26:05 2018
@@ -18,7 +18,7 @@
 
 // Other libraries and framework includes
 
-#include "lldb/Utility/SafeMachO.h"
+#include "lldb/Host/SafeMachO.h"
 
 // Project includes
 #include "lldb/Target/DynamicLoader.h"

Modified: lldb/trunk/source/Plugins/DynamicLoader/MacOSX-DYLD/DynamicLoaderDarwin.h
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Plugins/DynamicLoader/MacOSX-DYLD/DynamicLoaderDarwin.h?rev=342050&r1=342049&r2=342050&view=diff
==============================================================================
--- lldb/trunk/source/Plugins/DynamicLoader/MacOSX-DYLD/DynamicLoaderDarwin.h (original)
+++ lldb/trunk/source/Plugins/DynamicLoader/MacOSX-DYLD/DynamicLoaderDarwin.h Wed Sep 12 05:26:05 2018
@@ -18,10 +18,10 @@
 
 // Other libraries and framework includes
 // Project includes
+#include "lldb/Host/SafeMachO.h"
 #include "lldb/Target/DynamicLoader.h"
 #include "lldb/Target/Process.h"
 #include "lldb/Utility/FileSpec.h"
-#include "lldb/Utility/SafeMachO.h"
 #include "lldb/Utility/StructuredData.h"
 #include "lldb/Utility/UUID.h"
 

Modified: lldb/trunk/source/Plugins/DynamicLoader/MacOSX-DYLD/DynamicLoaderMacOS.h
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Plugins/DynamicLoader/MacOSX-DYLD/DynamicLoaderMacOS.h?rev=342050&r1=342049&r2=342050&view=diff
==============================================================================
--- lldb/trunk/source/Plugins/DynamicLoader/MacOSX-DYLD/DynamicLoaderMacOS.h (original)
+++ lldb/trunk/source/Plugins/DynamicLoader/MacOSX-DYLD/DynamicLoaderMacOS.h Wed Sep 12 05:26:05 2018
@@ -28,7 +28,6 @@
 #include "lldb/Target/DynamicLoader.h"
 #include "lldb/Target/Process.h"
 #include "lldb/Utility/FileSpec.h"
-#include "lldb/Utility/SafeMachO.h"
 #include "lldb/Utility/StructuredData.h"
 #include "lldb/Utility/UUID.h"
 

Modified: lldb/trunk/source/Plugins/DynamicLoader/MacOSX-DYLD/DynamicLoaderMacOSXDYLD.h
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Plugins/DynamicLoader/MacOSX-DYLD/DynamicLoaderMacOSXDYLD.h?rev=342050&r1=342049&r2=342050&view=diff
==============================================================================
--- lldb/trunk/source/Plugins/DynamicLoader/MacOSX-DYLD/DynamicLoaderMacOSXDYLD.h (original)
+++ lldb/trunk/source/Plugins/DynamicLoader/MacOSX-DYLD/DynamicLoaderMacOSXDYLD.h Wed Sep 12 05:26:05 2018
@@ -28,10 +28,10 @@
 
 // Other libraries and framework includes
 // Project includes
+#include "lldb/Host/SafeMachO.h"
 #include "lldb/Target/DynamicLoader.h"
 #include "lldb/Target/Process.h"
 #include "lldb/Utility/FileSpec.h"
-#include "lldb/Utility/SafeMachO.h"
 #include "lldb/Utility/StructuredData.h"
 #include "lldb/Utility/UUID.h"
 

Modified: lldb/trunk/source/Plugins/ObjectContainer/Universal-Mach-O/ObjectContainerUniversalMachO.h
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Plugins/ObjectContainer/Universal-Mach-O/ObjectContainerUniversalMachO.h?rev=342050&r1=342049&r2=342050&view=diff
==============================================================================
--- lldb/trunk/source/Plugins/ObjectContainer/Universal-Mach-O/ObjectContainerUniversalMachO.h (original)
+++ lldb/trunk/source/Plugins/ObjectContainer/Universal-Mach-O/ObjectContainerUniversalMachO.h Wed Sep 12 05:26:05 2018
@@ -14,9 +14,9 @@
 // C++ Includes
 // Other libraries and framework includes
 // Project includes
+#include "lldb/Host/SafeMachO.h"
 #include "lldb/Symbol/ObjectContainer.h"
 #include "lldb/Utility/FileSpec.h"
-#include "lldb/Utility/SafeMachO.h"
 
 class ObjectContainerUniversalMachO : public lldb_private::ObjectContainer {
 public:

Modified: lldb/trunk/source/Plugins/ObjectFile/Mach-O/ObjectFileMachO.cpp
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Plugins/ObjectFile/Mach-O/ObjectFileMachO.cpp?rev=342050&r1=342049&r2=342050&view=diff
==============================================================================
--- lldb/trunk/source/Plugins/ObjectFile/Mach-O/ObjectFileMachO.cpp (original)
+++ lldb/trunk/source/Plugins/ObjectFile/Mach-O/ObjectFileMachO.cpp Wed Sep 12 05:26:05 2018
@@ -46,7 +46,7 @@
 #include "lldb/Utility/Timer.h"
 #include "lldb/Utility/UUID.h"
 
-#include "lldb/Utility/SafeMachO.h"
+#include "lldb/Host/SafeMachO.h"
 
 #include "llvm/Support/MemoryBuffer.h"
 

Modified: lldb/trunk/source/Plugins/ObjectFile/Mach-O/ObjectFileMachO.h
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Plugins/ObjectFile/Mach-O/ObjectFileMachO.h?rev=342050&r1=342049&r2=342050&view=diff
==============================================================================
--- lldb/trunk/source/Plugins/ObjectFile/Mach-O/ObjectFileMachO.h (original)
+++ lldb/trunk/source/Plugins/ObjectFile/Mach-O/ObjectFileMachO.h Wed Sep 12 05:26:05 2018
@@ -17,9 +17,9 @@
 #include "lldb/Core/Address.h"
 #include "lldb/Core/FileSpecList.h"
 #include "lldb/Core/RangeMap.h"
+#include "lldb/Host/SafeMachO.h"
 #include "lldb/Symbol/ObjectFile.h"
 #include "lldb/Utility/FileSpec.h"
-#include "lldb/Utility/SafeMachO.h"
 #include "lldb/Utility/UUID.h"
 
 //----------------------------------------------------------------------

Modified: lldb/trunk/source/Plugins/Process/MacOSX-Kernel/ThreadKDP.cpp
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Plugins/Process/MacOSX-Kernel/ThreadKDP.cpp?rev=342050&r1=342049&r2=342050&view=diff
==============================================================================
--- lldb/trunk/source/Plugins/Process/MacOSX-Kernel/ThreadKDP.cpp (original)
+++ lldb/trunk/source/Plugins/Process/MacOSX-Kernel/ThreadKDP.cpp Wed Sep 12 05:26:05 2018
@@ -9,7 +9,7 @@
 
 #include "ThreadKDP.h"
 
-#include "lldb/Utility/SafeMachO.h"
+#include "lldb/Host/SafeMachO.h"
 
 #include "lldb/Breakpoint/Watchpoint.h"
 #include "lldb/Target/Process.h"

Modified: lldb/trunk/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServerCommon.cpp
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServerCommon.cpp?rev=342050&r1=342049&r2=342050&view=diff
==============================================================================
--- lldb/trunk/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServerCommon.cpp (original)
+++ lldb/trunk/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServerCommon.cpp Wed Sep 12 05:26:05 2018
@@ -28,6 +28,7 @@
 #include "lldb/Host/FileSystem.h"
 #include "lldb/Host/Host.h"
 #include "lldb/Host/HostInfo.h"
+#include "lldb/Host/SafeMachO.h"
 #include "lldb/Interpreter/OptionArgParser.h"
 #include "lldb/Symbol/ObjectFile.h"
 #include "lldb/Target/FileAction.h"
@@ -36,7 +37,6 @@
 #include "lldb/Utility/Endian.h"
 #include "lldb/Utility/JSON.h"
 #include "lldb/Utility/Log.h"
-#include "lldb/Utility/SafeMachO.h"
 #include "lldb/Utility/StreamGDBRemote.h"
 #include "lldb/Utility/StreamString.h"
 #include "llvm/ADT/Triple.h"

Modified: lldb/trunk/source/Plugins/Process/mach-core/ProcessMachCore.cpp
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Plugins/Process/mach-core/ProcessMachCore.cpp?rev=342050&r1=342049&r2=342050&view=diff
==============================================================================
--- lldb/trunk/source/Plugins/Process/mach-core/ProcessMachCore.cpp (original)
+++ lldb/trunk/source/Plugins/Process/mach-core/ProcessMachCore.cpp Wed Sep 12 05:26:05 2018
@@ -39,7 +39,7 @@
 #include "ThreadMachCore.h"
 
 // Needed for the plug-in names for the dynamic loaders.
-#include "lldb/Utility/SafeMachO.h"
+#include "lldb/Host/SafeMachO.h"
 
 #include "Plugins/DynamicLoader/Darwin-Kernel/DynamicLoaderDarwinKernel.h"
 #include "Plugins/DynamicLoader/MacOSX-DYLD/DynamicLoaderMacOSXDYLD.h"

Modified: lldb/trunk/source/Plugins/Process/mach-core/ThreadMachCore.cpp
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Plugins/Process/mach-core/ThreadMachCore.cpp?rev=342050&r1=342049&r2=342050&view=diff
==============================================================================
--- lldb/trunk/source/Plugins/Process/mach-core/ThreadMachCore.cpp (original)
+++ lldb/trunk/source/Plugins/Process/mach-core/ThreadMachCore.cpp Wed Sep 12 05:26:05 2018
@@ -9,8 +9,6 @@
 
 #include "ThreadMachCore.h"
 
-#include "lldb/Utility/SafeMachO.h"
-
 #include "lldb/Breakpoint/Watchpoint.h"
 #include "lldb/Symbol/ObjectFile.h"
 #include "lldb/Target/Process.h"




More information about the lldb-commits mailing list