re PR ada/60411 (Ada bootstrap failure on ARM)

PR ada/60411
	* sigtramp.h: Add Android support.

From-SVN: r209227
This commit is contained in:
Eric Botcazou 2014-04-08 20:35:14 +00:00 committed by Eric Botcazou
parent 98e6ecab8c
commit edb2b1b1fa
2 changed files with 23 additions and 3 deletions

View File

@ -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>

View File

@ -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