mirror of
https://github.com/vlang/v.git
synced 2023-08-10 21:13:21 +03:00
fix building v on alpine with musl libc
This commit is contained in:
parent
fed9f01b2d
commit
c92654a044
@ -23,6 +23,8 @@ CommonCHeaders = '
|
|||||||
|
|
||||||
#ifdef __linux__
|
#ifdef __linux__
|
||||||
#include <execinfo.h> // backtrace and backtrace_symbols_fd
|
#include <execinfo.h> // backtrace and backtrace_symbols_fd
|
||||||
|
#pragma weak backtrace
|
||||||
|
#pragma weak backtrace_symbols_fd
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef __linux__
|
#ifdef __linux__
|
||||||
|
@ -19,16 +19,21 @@ fn on_panic(f fn (int) int) {
|
|||||||
|
|
||||||
pub fn print_backtrace_skipping_top_frames(skipframes int) {
|
pub fn print_backtrace_skipping_top_frames(skipframes int) {
|
||||||
$if mac {
|
$if mac {
|
||||||
buffer := [100]voidptr
|
buffer := [100]byteptr
|
||||||
nr_ptrs := C.backtrace(buffer, 100)
|
nr_ptrs := C.backtrace(buffer, 100)
|
||||||
C.backtrace_symbols_fd(&buffer[skipframes], nr_ptrs-skipframes, 1)
|
C.backtrace_symbols_fd(&buffer[skipframes], nr_ptrs-skipframes, 1)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
$if linux {
|
$if linux {
|
||||||
buffer := [100]voidptr
|
if C.backtrace_symbols_fd != 0 {
|
||||||
nr_ptrs := C.backtrace(buffer, 100)
|
buffer := [100]byteptr
|
||||||
C.backtrace_symbols_fd(&buffer[skipframes], nr_ptrs-skipframes, 1)
|
nr_ptrs := C.backtrace(buffer, 100)
|
||||||
return
|
C.backtrace_symbols_fd(&buffer[skipframes], nr_ptrs-skipframes, 1)
|
||||||
|
return
|
||||||
|
}else{
|
||||||
|
C.printf('backtrace_symbols_fd is missing, so printing backtraces is not available.\n')
|
||||||
|
C.printf('Some libc implementations like musl simply do not provide it.\n')
|
||||||
|
}
|
||||||
}
|
}
|
||||||
C.printf('print_backtrace_skipping_top_frames is not implemented on this platform for now...\n')
|
C.printf('print_backtrace_skipping_top_frames is not implemented on this platform for now...\n')
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user