init.c: Enable stack probing on ppc-linux.
2008-05-20 Tristan Gingold <gingold@adacore.com> * init.c: Enable stack probing on ppc-linux. * tracebak.c: Add symbolic traceback for ppc-linux. * system-linux-ppc.ads: Enable stack probing on ppc-linux. From-SVN: r135630
This commit is contained in:
parent
8bfa6c2fa3
commit
36cee502f3
@ -568,7 +568,7 @@ __gnat_install_handler (void)
|
||||
/*********************/
|
||||
|
||||
#elif defined (linux) && (defined (i386) || defined (__x86_64__) \
|
||||
|| defined (__ia64__))
|
||||
|| defined (__ia64__) || defined (__powerpc__))
|
||||
|
||||
#include <signal.h>
|
||||
|
||||
@ -624,7 +624,9 @@ static void __gnat_error_handler (int, siginfo_t *siginfo, void *ucontext);
|
||||
void
|
||||
__gnat_adjust_context_for_raise (int signo ATTRIBUTE_UNUSED, void *ucontext)
|
||||
{
|
||||
#ifndef __powerpc__
|
||||
mcontext_t *mcontext = &((ucontext_t *) ucontext)->uc_mcontext;
|
||||
#endif
|
||||
|
||||
/* On the i386 and x86-64 architectures, stack checking is performed by
|
||||
means of probes with moving stack pointer, that is to say the probed
|
||||
@ -657,6 +659,8 @@ __gnat_adjust_context_for_raise (int signo ATTRIBUTE_UNUSED, void *ucontext)
|
||||
mcontext->gregs[REG_RIP]++;
|
||||
#elif defined (__ia64__)
|
||||
mcontext->sc_ip++;
|
||||
#elif defined (__powerpc__)
|
||||
((ucontext_t *) ucontext)->uc_mcontext.regs->nip++;
|
||||
#endif
|
||||
}
|
||||
|
||||
|
@ -7,7 +7,7 @@
|
||||
-- S p e c --
|
||||
-- (GNU-Linux/PPC Version) --
|
||||
-- --
|
||||
-- Copyright (C) 1992-2007, Free Software Foundation, Inc. --
|
||||
-- Copyright (C) 1992-2008, Free Software Foundation, Inc. --
|
||||
-- --
|
||||
-- This specification is derived from the Ada Reference Manual for use with --
|
||||
-- GNAT. The copyright notice above, and the license provisions that follow --
|
||||
@ -139,7 +139,7 @@ private
|
||||
Preallocated_Stacks : constant Boolean := False;
|
||||
Signed_Zeros : constant Boolean := True;
|
||||
Stack_Check_Default : constant Boolean := False;
|
||||
Stack_Check_Probes : constant Boolean := False;
|
||||
Stack_Check_Probes : constant Boolean := True;
|
||||
Stack_Check_Limits : constant Boolean := False;
|
||||
Support_64_Bit_Divides : constant Boolean := True;
|
||||
Support_Aggregates : constant Boolean := True;
|
||||
|
@ -6,8 +6,7 @@
|
||||
* *
|
||||
* C Implementation File *
|
||||
* *
|
||||
* Copyright (C) 2000-2007, AdaCore *
|
||||
* Copyright (C) 2008, Free Software Foundation, Inc. *
|
||||
* Copyright (C) 2000-2008, AdaCore *
|
||||
* *
|
||||
* 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- *
|
||||
@ -230,9 +229,10 @@ struct layout
|
||||
|
||||
#define BASE_SKIP 1
|
||||
|
||||
/*---------------------------- PPC VxWorks------------------------------*/
|
||||
/*-------------------- PPC ELF (GNU/Linux & VxWorks) ---------------------*/
|
||||
|
||||
#elif defined (_ARCH_PPC) && defined (__vxworks)
|
||||
#elif (defined (_ARCH_PPC) && defined (__vxworks)) || \
|
||||
(defined (linux) && defined (__powerpc__))
|
||||
|
||||
#define USE_GENERIC_UNWINDER
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user