Skip to content

Commit fbb3e09

Browse files
committed
Add custom __MUSL__ flag to detect musl based distributions
1 parent 43ac426 commit fbb3e09

File tree

1 file changed

+14
-19
lines changed

1 file changed

+14
-19
lines changed

src/api.cpp

Lines changed: 14 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -34,26 +34,21 @@ using namespace Rcpp;
3434
#endif
3535

3636
#if defined(__GNUC__)
37-
#if defined(_WIN32) || defined(__FreeBSD__) || defined(__NetBSD__) || defined(__OpenBSD__) || defined(__CYGWIN__) || defined(__sun) || defined(_AIX)
37+
#if defined(_WIN32) || defined(__FreeBSD__) || defined(__NetBSD__) || defined(__OpenBSD__) || defined(__CYGWIN__) || defined(__sun) || defined(_AIX) || defined(__MUSL__)
3838
// do nothing
3939
#else
40-
#ifndef __GLIBC__
41-
// do nothing
42-
#else
43-
#include <execinfo.h>
44-
45-
static std::string demangler_one(const char* input) {
46-
static std::string buffer;
47-
buffer = input;
48-
buffer.resize(buffer.find_last_of('+') - 1);
49-
buffer.erase(
50-
buffer.begin(),
51-
buffer.begin() + buffer.find_last_of(' ') + 1
52-
);
53-
return demangle(buffer);
54-
}
55-
#endif
56-
40+
#include <execinfo.h>
41+
42+
static std::string demangler_one(const char* input) {
43+
static std::string buffer;
44+
buffer = input;
45+
buffer.resize(buffer.find_last_of('+') - 1);
46+
buffer.erase(
47+
buffer.begin(),
48+
buffer.begin() + buffer.find_last_of(' ') + 1
49+
);
50+
return demangle(buffer);
51+
}
5752
#endif
5853
#endif
5954

@@ -261,7 +256,7 @@ SEXP rcpp_can_use_cxx11() {
261256
// [[Rcpp::register]]
262257
SEXP stack_trace(const char* file, int line) {
263258
#if defined(__GNUC__)
264-
#if defined(_WIN32) || defined(__FreeBSD__) || defined(__NetBSD__) || defined(__OpenBSD__) || defined(__CYGWIN__) || defined(__sun) || defined(_AIX)
259+
#if defined(_WIN32) || defined(__FreeBSD__) || defined(__NetBSD__) || defined(__OpenBSD__) || defined(__CYGWIN__) || defined(__sun) || defined(_AIX) || defined(__MUSL__)
265260
// Simpler version for Windows and *BSD
266261
List trace = List::create(_["file"] = file,
267262
_[ "line" ] = line,

0 commit comments

Comments
 (0)