diff options
author | Sergei Trofimovich <slyfox@gentoo.org> | 2017-08-31T20·41+0100 |
---|---|---|
committer | Sergei Trofimovich <slyfox@gentoo.org> | 2017-08-31T20·41+0100 |
commit | c9857ef262c391672b47e7714e61f1686b684e4d (patch) | |
tree | 4e1362da20d47b415a54f6b3a577c2b6fed8fef7 | |
parent | bbdf08bc0facb5157a10c794712dae7e5902be03 (diff) |
src/libmain/stack.cc: fix 'ucontext' usage on glibc-2.26
Build fails as: $ make CXX src/libmain/stack.o src/libmain/stack.cc: In function 'void nix::sigsegvHandler(int, siginfo_t*, void*)': src/libmain/stack.cc:21:21: error: 'ucontext' was not declared in this scope sp = (char *) ((ucontext *) ctx)->uc_mcontext.gregs[REG_RSP]; ^~~~~~~~ src/libmain/stack.cc:21:21: note: suggested alternative: 'ucontext_t' sp = (char *) ((ucontext *) ctx)->uc_mcontext.gregs[REG_RSP]; ^~~~~~~~ ucontext_t It's caused by upstream rename: https://sourceware.org/git/?p=glibc.git;a=commitdiff;h=251287734e89a52da3db682a8241eb6bccc050c9 which basically changes typedef struct ucontext {} ucontext_t; to typedef struct ucontext_t {} ucontext_t; The change uses ucontext_t. Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>
-rw-r--r-- | src/libmain/stack.cc | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/src/libmain/stack.cc b/src/libmain/stack.cc index ab3baf62c3d4..cc0eea68fca3 100644 --- a/src/libmain/stack.cc +++ b/src/libmain/stack.cc @@ -18,9 +18,9 @@ static void sigsegvHandler(int signo, siginfo_t * info, void * ctx) bool haveSP = true; char * sp = 0; #if defined(__x86_64__) && defined(REG_RSP) - sp = (char *) ((ucontext *) ctx)->uc_mcontext.gregs[REG_RSP]; + sp = (char *) ((ucontext_t *) ctx)->uc_mcontext.gregs[REG_RSP]; #elif defined(REG_ESP) - sp = (char *) ((ucontext *) ctx)->uc_mcontext.gregs[REG_ESP]; + sp = (char *) ((ucontext_t *) ctx)->uc_mcontext.gregs[REG_ESP]; #else haveSP = false; #endif |