Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
A
Actor Framework
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Operations
Operations
Metrics
Environments
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
cpp-libs
Actor Framework
Commits
14b76ad9
Commit
14b76ad9
authored
Oct 30, 2020
by
Dominik Charousset
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Link against libatomic on 32-bit systems
Closes #1129.
parent
5ccca5da
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
25 additions
and
1 deletion
+25
-1
CHANGELOG.md
CHANGELOG.md
+4
-0
CMakeLists.txt
CMakeLists.txt
+1
-0
libcaf_core/CMakeLists.txt
libcaf_core/CMakeLists.txt
+20
-1
No files found.
CHANGELOG.md
View file @
14b76ad9
...
...
@@ -35,6 +35,10 @@ is based on [Keep a Changelog](https://keepachangelog.com).
case or do unexpected things in the latter case. The stringification inspector
now matches precisely on pointer types to stop the compiler from doing
implicit conversions in the first place.
-
Building executables that link to CAF on 32-bit Linux versions using GCC
failed due to undefined references to
`__atomic_fetch`
symbols. Adding a CMake
dependency for
`caf_core`
to libatomic gets executables to compile and link as
expected.
## [0.18.0-rc.1] - 2020-09-09
...
...
CMakeLists.txt
View file @
14b76ad9
...
...
@@ -5,6 +5,7 @@ project(CAF CXX)
include
(
CMakeDependentOption
)
# Conditional default values
include
(
CMakePackageConfigHelpers
)
# For creating .cmake files
include
(
CheckCXXSourceCompiles
)
# For checking whether some C++ features work
include
(
GNUInstallDirs
)
# Sets default install paths
include
(
GenerateExportHeader
)
# Auto-generates dllexport macros
...
...
libcaf_core/CMakeLists.txt
View file @
14b76ad9
...
...
@@ -194,7 +194,26 @@ caf_core_set_default_properties(libcaf_core_obj libcaf_core)
caf_export_and_install_lib
(
core
)
install
(
FILES
"
${
CMAKE_BINARY_DIR
}
/caf/detail/build_config.hpp"
DESTINATION
"
${
CMAKE_INSTALL_INCLUDEDIR
}
/caf/detail"
)
DESTINATION
"
${
CMAKE_INSTALL_INCLUDEDIR
}
/caf/detail"
)
# Check whether we need to link against libatomic.
if
(
NOT CMAKE_CROSSCOMPILING
)
set
(
snippet
"#include <cstdint>
#include <atomic>
std::atomic<uint64_t> x;
int main(int, char**) { return static_cast<int>(x.load()); }"
)
check_cxx_source_compiles
(
"
${
snippet
}
"
has_64bit_atomic
)
if
(
NOT has_64bit_atomic
)
set
(
required_libs_backup
"
${
CMAKE_REQUIRED_LIBRARIES
}
"
)
list
(
APPEND CMAKE_REQUIRED_LIBRARIES
"atomic"
)
check_cxx_source_compiles
(
"
${
snippet
}
"
has_64bit_atomic_with_libatomic
)
set
(
CMAKE_REQUIRED_LIBRARIES
"
${
required_libs_backup
}
"
)
if
(
NOT has_64bit_atomic_with_libatomic
)
message
(
FATAL_ERROR
"Unable to compile code with std::atomic<uint64_t>"
)
endif
()
target_link_libraries
(
libcaf_core INTERFACE atomic
)
endif
()
endif
()
# -- build unit tests ----------------------------------------------------------
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment