libunwind-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Libunwind-devel] [PATCH] Fix compilation issues when compiling against


From: Omer Anson
Subject: [Libunwind-devel] [PATCH] Fix compilation issues when compiling against musl
Date: Wed, 4 May 2016 08:01:59 +0300

When compiling against musl, I found that execinfo.h is used
unconditionally, even though it is a glibc extension, and that
asm/unistd.h is included directly (it does not exist in musl) and not
via sys/syscall.h.

This patch changes these two issues.
---
 src/x86_64/setcontext.S      | 2 +-
 tests/test-coredump-unwind.c | 5 ++++-
 2 files changed, 5 insertions(+), 2 deletions(-)

diff --git a/src/x86_64/setcontext.S b/src/x86_64/setcontext.S
index 1af8b67..9510c74 100644
--- a/src/x86_64/setcontext.S
+++ b/src/x86_64/setcontext.S
@@ -26,7 +26,7 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.  */
 
 #include "ucontext_i.h"
 #if defined __linux__
-#include <asm/unistd.h>
+#include <sys/syscall.h>
 #define SIG_SETMASK   2
 #define SIGSET_BYTE_SIZE   (64/8)
 #elif defined __FreeBSD__
diff --git a/tests/test-coredump-unwind.c b/tests/test-coredump-unwind.c
index 5254708..0bb4010 100644
--- a/tests/test-coredump-unwind.c
+++ b/tests/test-coredump-unwind.c
@@ -31,6 +31,7 @@
 #include <dirent.h>
 #include <errno.h>
 #include <fcntl.h>
+#include <features.h>
 #include <inttypes.h>
 #include <setjmp.h>
 #include <signal.h>
@@ -57,7 +58,9 @@
 #include <grp.h>
 
 /* For SIGSEGV handler code */
+#ifdef __GLIBC__
 #include <execinfo.h>
+#endif
 #include <sys/ucontext.h>
 
 #include <libunwind-coredump.h>
@@ -242,7 +245,7 @@ void handle_sigsegv(int sig, siginfo_t *info, void *ucontext)
     void *array[50];
     int size;
     size = backtrace(array, 50);
-#ifdef __linux__
+#if defined(__linux__) && defined(__GLIBC__)
     backtrace_symbols_fd(array, size, 2);
 #endif
   }
-- 
2.4.3


reply via email to

[Prev in Thread] Current Thread [Next in Thread]