[Lldb-commits] [lldb] [lldb] Require gmake on FreeBSD and NetBSD (PR #119573)

David Spickett via lldb-commits lldb-commits at lists.llvm.org
Wed Dec 11 07:46:12 PST 2024


https://github.com/DavidSpickett created https://github.com/llvm/llvm-project/pull/119573

gmake is GNU make where make is not GNU compatible. This leads to a lot of tests failing to build
with errors like:
```
make: "<...>/Makefile.rules" line 569: Invalid line type
```

See https://cmake.org/cmake/help/latest/variable/CMAKE_SYSTEM_NAME.html for the platform names.

Tested on Linux and FreeBSD. Not tested on NetBSD, but the logic was always "if netbsd or freebsd use gmake" so I think I'm safe to assume NetBSD will be fine with this.

>From 4bec90c17bde6b70eca304801989ec1dc2a48097 Mon Sep 17 00:00:00 2001
From: David Spickett <david.spickett at linaro.org>
Date: Wed, 11 Dec 2024 15:16:46 +0000
Subject: [PATCH] [lldb] Require gmake on FreeBSD and NetBSD

gmake is GNU make where make is not GNU compatible.
This leads to a lot of tests failing to build
with errors like:
```
make: "<...>/Makefile.rules" line 569: Invalid line type
```

See https://cmake.org/cmake/help/latest/variable/CMAKE_SYSTEM_NAME.html
for the platform names.

Tested on Linux and FreeBSD. Not tested on NetBSD, but the logic
was always "if netbsd or freebsd use gmake" so I think I'm
safe to assume NetBSD will be fine with this.
---
 lldb/test/API/CMakeLists.txt | 11 +++++++++--
 1 file changed, 9 insertions(+), 2 deletions(-)

diff --git a/lldb/test/API/CMakeLists.txt b/lldb/test/API/CMakeLists.txt
index 36f4973ad9a452..66eccff297a999 100644
--- a/lldb/test/API/CMakeLists.txt
+++ b/lldb/test/API/CMakeLists.txt
@@ -52,11 +52,18 @@ set(LLDB_DEFAULT_TEST_DSYMUTIL "${LLVM_TOOLS_BINARY_DIR}/dsymutil${CMAKE_EXECUTA
 if(LLDB_TEST_MAKE)
   set(LLDB_DEFAULT_TEST_MAKE ${LLDB_TEST_MAKE})
 else()
-  find_program(LLDB_DEFAULT_TEST_MAKE make gmake)
+  set(MAKE_NAMES "gmake")
+
+  # "make" on FreeBSD and NetBSD is not GNU make compatible.
+  if(NOT CMAKE_SYSTEM_NAME STREQUAL "FreeBSD" AND NOT CMAKE_SYSTEM_NAME STREQUAL "NetBSD")
+    list(APPEND MAKE_NAMES "make")
+  endif()
+
+  find_program(LLDB_DEFAULT_TEST_MAKE NAMES ${MAKE_NAMES})
   if(LLDB_DEFAULT_TEST_MAKE)
     message(STATUS "Found make: ${LLDB_DEFAULT_TEST_MAKE}")
   else()
-    message(STATUS "Not found: make")
+    message(STATUS "Did not find one of: ${MAKE_NAMES}")
     message(WARNING
           "Many LLDB API tests require 'make' tool. Please provide it in Path "
           "or pass via LLDB_TEST_MAKE.")



More information about the lldb-commits mailing list