Commit cd8f57ee4ef42946b54a88a577583adeb7d096df

Alex Richardson 2022-05-29T10:38:56

cmake: freebsd: Don't REQUIRE libunwind.pc on FreeBSD FreeBSD includes the libunwind APIs in in the base system libgcc_s and does not install a .pc file for it. This change fixes the build on FreeBSD for me.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 5beaf3b..53aa77a 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -1416,8 +1416,10 @@ elseif(UNIX AND NOT APPLE AND NOT ANDROID AND NOT RISCOS AND NOT HAIKU)
       endif()
 
       if(HAVE_LIBUNWIND_H)
-        # We've already found the header, so REQUIRE the lib to be present
-        pkg_search_module(UNWIND REQUIRED libunwind)
+        # We've already found the header, so link the lib if present.
+        # NB: This .pc file is not present on FreeBSD where the implicitly
+        # linked base system libgcc_s includes all libunwind ABI.
+        pkg_search_module(UNWIND libunwind)
         pkg_search_module(UNWIND_GENERIC libunwind-generic)
         list(APPEND EXTRA_TEST_LIBS ${UNWIND_LIBRARIES} ${UNWIND_GENERIC_LIBRARIES})
       endif()