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")
|