From: Cyrill Gorcunov <gorcunov@gmail.com> To: tml <tarantool-patches@dev.tarantool.org> Cc: Vladislav Shpilevoy <v.shpilevoy@tarantool.org> Subject: [Tarantool-patches] [PATCH] crash: allow to build on non x86-64 machines Date: Mon, 28 Dec 2020 22:36:22 +0300 [thread overview] Message-ID: <20201228193622.652307-1-gorcunov@gmail.com> (raw) The general purpose registers were optional earlier lets make them optional back allowing the code to be compiled on non x86-64 machines. Signed-off-by: Cyrill Gorcunov <gorcunov@gmail.com> --- Guys, obviously I didn't test on real non x86 machine. But since we've been notifying from public chat that people are trying to compile tarantool on arm lets make a quick fix. branch gorcunov/crash-cross-compile src/lib/core/crash.c | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/src/lib/core/crash.c b/src/lib/core/crash.c index 8397603bc..5b50ed3c4 100644 --- a/src/lib/core/crash.c +++ b/src/lib/core/crash.c @@ -30,10 +30,11 @@ /** Use strlcpy with destination as an array */ #define strlcpy_a(dst, src) strlcpy(dst, src, sizeof(dst)) -#ifdef TARGET_OS_LINUX -#ifndef __x86_64__ -# error "Non x86-64 architectures are not supported" +#if defined(TARGET_OS_LINUX) && defined(__x86_64__) +# define HAS_GREG #endif + +#ifdef HAS_GREG struct crash_greg { uint64_t r8; uint64_t r9; @@ -64,7 +65,7 @@ struct crash_greg { uint64_t fpstate; uint64_t reserved1[8]; }; -#endif /* TARGET_OS_LINUX */ +#endif /* HAS_GREG */ static struct crash_info { /** @@ -76,7 +77,7 @@ static struct crash_info { */ void *context_addr; void *siginfo_addr; -#ifdef TARGET_OS_LINUX +#ifdef HAS_GREG /** * Registers contents. */ @@ -199,7 +200,7 @@ crash_collect(int signo, siginfo_t *siginfo, void *ucontext) backtrace(start, sizeof(cinfo->backtrace_buf)); #endif -#ifdef TARGET_OS_LINUX +#ifdef HAS_GREG /* * uc_mcontext on libc level looks somehow strange, * they define an array of uint64_t where each register @@ -411,7 +412,7 @@ crash_report_stderr(struct crash_info *cinfo) fprintf(stderr, " context: %p\n", cinfo->context_addr); fprintf(stderr, " siginfo: %p\n", cinfo->siginfo_addr); -#ifdef TARGET_OS_LINUX +#ifdef HAS_GREG # define fprintf_reg(__n, __v) \ fprintf(stderr, " %-9s0x%-17llx%lld\n", \ __n, (long long)__v, (long long)__v) @@ -441,7 +442,7 @@ crash_report_stderr(struct crash_info *cinfo) fprintf_reg("oldmask", cinfo->greg.oldmask); fprintf_reg("trapno", cinfo->greg.trapno); # undef fprintf_reg -#endif /* TARGET_OS_LINUX */ +#endif /* HAS_GREG */ fprintf(stderr, "Current time: %u\n", (unsigned)time(0)); fprintf(stderr, "Please file a bug at " -- 2.26.2
next reply other threads:[~2020-12-28 19:36 UTC|newest] Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top 2020-12-28 19:36 Cyrill Gorcunov [this message] 2020-12-29 16:15 ` Alexander V. Tikhonov 2020-12-29 16:34 ` Alexander Turenko 2020-12-29 17:02 ` Cyrill Gorcunov
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=20201228193622.652307-1-gorcunov@gmail.com \ --to=gorcunov@gmail.com \ --cc=tarantool-patches@dev.tarantool.org \ --cc=v.shpilevoy@tarantool.org \ --subject='Re: [Tarantool-patches] [PATCH] crash: allow to build on non x86-64 machines' \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: link
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox