blob: 0820f615f4d8053f0542677a4be711e6552dc45b (
plain) (
blame)
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
|
Adjust for backtrace(3) on BSDs
In file included from offline_compiler/utilities/linux/safety_caller_linux.cpp:10:
offline_compiler/utilities/linux/safety_guard_linux.h:36:25: error: implicit conversion loses integer precision: 'size_t' (aka 'unsigned long') to 'int' [-Werror,-Wshorten-64-to-32]
backtraceSize = backtrace(addresses, callstackDepth);
~ ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
ld: error: undefined symbol: backtrace
>>> referenced by safety_caller_linux.cpp
>>> CMakeFiles/ocloc.dir/utilities/linux/safety_caller_linux.cpp.o:(SafetyGuardLinux::sigAction(int, __siginfo*, void*))
ld: error: undefined symbol: backtrace_symbols
>>> referenced by safety_caller_linux.cpp
>>> CMakeFiles/ocloc.dir/utilities/linux/safety_caller_linux.cpp.o:(SafetyGuardLinux::sigAction(int, __siginfo*, void*))
--- shared/offline_compiler/source/utilities/linux/safety_guard_linux.h.orig 2020-02-28 16:16:42 UTC
+++ shared/offline_compiler/source/utilities/linux/safety_guard_linux.h
@@ -33,7 +33,7 @@ class SafetyGuardLinux {
char **callstack;
int backtraceSize = 0;
- backtraceSize = backtrace(addresses, callstackDepth);
+ backtraceSize = (int)backtrace(addresses, callstackDepth);
callstack = backtrace_symbols(addresses, backtraceSize);
for (int i = 0; i < backtraceSize; ++i) {
--- shared/offline_compiler/source/CMakeLists.txt.orig 2020-02-28 16:16:42 UTC
+++ shared/offline_compiler/source/CMakeLists.txt
@@ -161,6 +161,10 @@ endif()
if(UNIX)
target_link_libraries(ocloc_lib dl pthread)
target_link_libraries(ocloc dl pthread)
+ if(CMAKE_SYSTEM_NAME MATCHES "DragonFly|FreeBSD|NetBSD|OpenBSD")
+ target_link_libraries(ocloc_lib execinfo)
+ target_link_libraries(ocloc execinfo)
+ endif()
endif()
set(CLOC_LIB_SRCS_LIB ${CLOC_LIB_SRCS_LIB} PARENT_SCOPE)
|