summaryrefslogtreecommitdiff
blob: 654d3fc9873a2f4f5d2409939063e26fe7064e92 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
https://bugs.gentoo.org/832816
https://sources.debian.org/patches/capnproto/0.9.1-2/07_libatomic.patch/

Description: link against libatomic
Bug-Debian: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1005066
--- a/configure.ac
+++ b/configure.ac
@@ -16,6 +16,11 @@
 
 AM_INIT_AUTOMAKE([tar-ustar])
 
+AC_ARG_WITH([libatomic],
+  [AS_HELP_STRING([--with-libatomic],
+    [build by linking against libatomic @<:@default=check@:>@])],
+  [],[with_libatomic=check])
+
 AC_ARG_WITH([external-capnp],
   [AS_HELP_STRING([--with-external-capnp],
     [use the system capnp binary (or the one specified with $CAPNP) instead of compiling a new
@@ -195,8 +200,19 @@
 ])
 AM_CONDITIONAL([BUILD_KJ_TLS], [test "$with_openssl" != no])
 
-# CapnProtoConfig.cmake.in needs this variable.
+AS_IF([test "$with_libatomic" = check], [
+  AC_SEARCH_LIBS([__atomic_load_8], [atomic], [with_libatomic=yes], [with_libatomic=no])
+], [
+  AS_IF([test "$with_libatomic" = yes], [
+    AC_SEARCH_LIBS([__atomic_load_8], [atomic], [:], [
+      AC_MSG_ERROR([could not find libatomic])
+    ])
+  ])
+])
+
+# CapnProtoConfig.cmake.in needs these variables.
 AC_SUBST(WITH_OPENSSL, $with_openssl)
+AC_SUBST(WITH_LIBATOMIC, $with_libatomic)
 
 AM_CONDITIONAL([HAS_FUZZING_ENGINE], [test "x$LIB_FUZZING_ENGINE" != "x"])
 
--- a/cmake/CapnProtoConfig.cmake.in
+++ b/cmake/CapnProtoConfig.cmake.in
@@ -62,6 +62,16 @@
   endif()
 endif()
 
+if (@WITH_LIBATOMIC@)  # WITH_LIBATOMIC
+  include(CheckLibraryExists)
+  check_library_exists(atomic __atomic_load_8 "" FOUND_LIBATOMIC)
+  if (FOUND_LIBATOMIC)
+    list(APPEND CMAKE_REQUIRED_LIBRARIES "atomic")
+  else()
+    message(FATAL_ERROR "libatomic not found")
+  endif()
+endif()
+
 include("${CMAKE_CURRENT_LIST_DIR}/CapnProtoTargets.cmake")
 include("${CMAKE_CURRENT_LIST_DIR}/CapnProtoMacros.cmake")