[Lldb-commits] [PATCH] D69523: [debugserver] Detect arch from LLVM_DEFAULT_TARGET_TRIPLE

Vedant Kumar via Phabricator via lldb-commits lldb-commits at lists.llvm.org
Mon Oct 28 12:07:52 PDT 2019


vsk created this revision.
vsk added reviewers: davide, JDevlieghere, xiaobai.
Herald added a subscriber: mgorny.

The debugserver build needs to conditionally include files depending on the
target architecture.

Switch on the architecture specified by LLVM_DEFAULT_TARGET_TRIPLE, as
the llvm and swift build systems use this variable to identify the
target (the latter, indirectly, through LLVM_HOST_TRIPLE).

It would be possible to switch on CMAKE_OSX_ARCHITECTURES, but the swift
build does not provide it, preferring instead to pass arch-specific
CFLAGS etc explicitly. Switching on LLVM_HOST_TRIPLE is also an option,
but it breaks down when cross-compiling.


https://reviews.llvm.org/D69523

Files:
  lldb/tools/debugserver/source/MacOSX/CMakeLists.txt


Index: lldb/tools/debugserver/source/MacOSX/CMakeLists.txt
===================================================================
--- lldb/tools/debugserver/source/MacOSX/CMakeLists.txt
+++ lldb/tools/debugserver/source/MacOSX/CMakeLists.txt
@@ -1,14 +1,28 @@
-if("${CMAKE_OSX_ARCHITECTURES}" MATCHES ".*arm.*")
+# The debugserver build needs to conditionally include files depending on the
+# target architecture.
+#
+# Switch on the architecture specified by LLVM_DEFAULT_TARGET_TRIPLE, as
+# the llvm and swift build systems use this variable to identify the
+# target (the latter, indirectly, through LLVM_HOST_TRIPLE).
+#
+# It would be possible to switch on CMAKE_OSX_ARCHITECTURES, but the swift
+# build does not provide it, preferring instead to pass arch-specific
+# CFLAGS etc explicitly. Switching on LLVM_HOST_TRIPLE is also an option,
+# but it breaks down when cross-compiling.
+
+string(REGEX MATCH "^[^-]*" LLDB_DEBUGSERVER_ARCH ${LLVM_DEFAULT_TARGET_TRIPLE})
+
+if("${LLDB_DEBUGSERVER_ARCH}" MATCHES ".*arm.*")
   list(APPEND SOURCES arm/DNBArchImpl.cpp arm64/DNBArchImplARM64.cpp)
   include_directories(${CURRENT_SOURCE_DIR}/arm ${CURRENT_SOURCE_DIR}/arm64)
 endif()
 
-if(NOT CMAKE_OSX_ARCHITECTURES OR "${CMAKE_OSX_ARCHITECTURES}" MATCHES ".*86.*")
+if(NOT LLDB_DEBUGSERVER_ARCH OR "${LLDB_DEBUGSERVER_ARCH}" MATCHES ".*86.*")
   list(APPEND SOURCES i386/DNBArchImplI386.cpp x86_64/DNBArchImplX86_64.cpp)
   include_directories(${CURRENT_SOURCE_DIR}/i386 ${CURRENT_SOURCE_DIR}/x86_64)
 endif()
 
-if("${CMAKE_OSX_ARCHITECTURES}" MATCHES ".*ppc.*")
+if("${LLDB_DEBUGSERVER_ARCH}" MATCHES ".*ppc.*")
   list(APPEND SOURCES ppc/DNBArchImpl.cpp)
   include_directories(${CURRENT_SOURCE_DIR}/ppc)
 endif()


-------------- next part --------------
A non-text attachment was scrubbed...
Name: D69523.226725.patch
Type: text/x-patch
Size: 1720 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/lldb-commits/attachments/20191028/e33cf816/attachment.bin>


More information about the lldb-commits mailing list