aboutsummaryrefslogtreecommitdiff
path: root/gcc/ada/init.c
diff options
context:
space:
mode:
authorArnaud Charlet <charlet@gcc.gnu.org>2010-06-14 10:06:34 +0200
committerArnaud Charlet <charlet@gcc.gnu.org>2010-06-14 10:06:34 +0200
commit71158d7e6d3ce21ac0ef3b96a516073870178631 (patch)
treec63c0484219a240c529048c454d5cc7adf6dbe53 /gcc/ada/init.c
parentce71b410ae578bb9038c534989bb9324ff299c6b (diff)
downloadgcc-71158d7e6d3ce21ac0ef3b96a516073870178631.zip
gcc-71158d7e6d3ce21ac0ef3b96a516073870178631.tar.gz
gcc-71158d7e6d3ce21ac0ef3b96a516073870178631.tar.bz2
[multiple changes]
2010-06-14 Pascal Obry <obry@adacore.com> * prj-proc.adb: Fix copy of object directory for extending projects. 2010-06-14 Jose Ruiz <ruiz@adacore.com> * init.c (__gnat_alternate_stack): Define this space for PowerPC linux (__gnat_install_handler, PowerPC linux): Activate the alternative signal stack. From-SVN: r160708
Diffstat (limited to 'gcc/ada/init.c')
-rw-r--r--gcc/ada/init.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/gcc/ada/init.c b/gcc/ada/init.c
index 28498c4..551bdf9 100644
--- a/gcc/ada/init.c
+++ b/gcc/ada/init.c
@@ -706,7 +706,7 @@ __gnat_error_handler (int sig,
Raise_From_Signal_Handler (exception, msg);
}
-#if defined (i386) || defined (__x86_64__)
+#if defined (i386) || defined (__x86_64__) || defined (__powerpc__)
/* This must be in keeping with System.OS_Interface.Alternate_Stack_Size. */
char __gnat_alternate_stack[16 * 1024]; /* 2 * SIGSTKSZ */
#endif
@@ -747,7 +747,7 @@ __gnat_install_handler (void)
handled properly, avoiding a SEGV generation from stack usage by the
handler itself. */
-#if defined (i386) || defined (__x86_64__)
+#if defined (i386) || defined (__x86_64__) || defined (__powerpc__)
stack_t stack;
stack.ss_sp = __gnat_alternate_stack;
stack.ss_size = sizeof (__gnat_alternate_stack);
@@ -768,7 +768,7 @@ __gnat_install_handler (void)
sigaction (SIGILL, &act, NULL);
if (__gnat_get_interrupt_state (SIGBUS) != 's')
sigaction (SIGBUS, &act, NULL);
-#if defined (i386) || defined (__x86_64__)
+#if defined (i386) || defined (__x86_64__) || defined (__powerpc__)
act.sa_flags |= SA_ONSTACK;
#endif
if (__gnat_get_interrupt_state (SIGSEGV) != 's')