From edb2b1b1fa0af901ab22ed58a4644115d3f4bbff Mon Sep 17 00:00:00 2001 From: Eric Botcazou <ebotcazou@adacore.com> Date: Tue, 8 Apr 2014 20:35:14 +0000 Subject: [PATCH] re PR ada/60411 (Ada bootstrap failure on ARM) PR ada/60411 * sigtramp.h: Add Android support. From-SVN: r209227 --- gcc/ada/ChangeLog | 1 + gcc/ada/sigtramp.h | 25 ++++++++++++++++++++++--- 2 files changed, 23 insertions(+), 3 deletions(-) diff --git a/gcc/ada/ChangeLog b/gcc/ada/ChangeLog index 3353b89867a6..e3a690ad0ec4 100644 --- a/gcc/ada/ChangeLog +++ b/gcc/ada/ChangeLog @@ -5,6 +5,7 @@ * s-linux-android.ads: New file. * s-intman-android.adb: Likewise. * sigtramp-armdroid.c: Likewise. + * sigtramp.h: Add Android support. 2014-04-07 Eric Botcazou <ebotcazou@adacore.com> diff --git a/gcc/ada/sigtramp.h b/gcc/ada/sigtramp.h index cf5f4707ee34..7419e172510e 100644 --- a/gcc/ada/sigtramp.h +++ b/gcc/ada/sigtramp.h @@ -6,7 +6,7 @@ * * * C Header File * * * - * Copyright (C) 2011-2013, Free Software Foundation, Inc. * + * Copyright (C) 2011-2014, Free Software Foundation, Inc. * * * * GNAT is free software; you can redistribute it and/or modify it under * * terms of the GNU General Public License as published by the Free Soft- * @@ -41,10 +41,29 @@ extern "C" { #endif - typedef void sighandler_t (int signo, void *siginfo, void *sigcontext); +#ifdef __ANDROID__ +#include <stdlib.h> +#include <asm/signal.h> +#include <asm/sigcontext.h> + +/* Android SDK doesn't define these structs */ +typedef struct sigcontext mcontext_t; + +typedef struct ucontext + { + unsigned long uc_flags; + struct ucontext *uc_link; + stack_t uc_stack; + mcontext_t uc_mcontext; +} ucontext_t; +#endif + + /* This typedef signature sometimes conflicts with the sighandler_t from + system headers so call it something unique. */ + typedef void __sigtramphandler_t (int signo, void *siginfo, void *sigcontext); void __gnat_sigtramp (int signo, void *siginfo, void *sigcontext, - sighandler_t * handler); + __sigtramphandler_t * handler); /* To be called from an established signal handler. Setup the DWARF CFI bits letting unwinders walk through the signal frame up into the -- GitLab