ada: Fix build for RTEMS
Commit 621cccba3f
broke the Ada build for all
RTEMS targets except aarch64.
gcc/ada/
* tracebak.c: Add support for ARM RTEMS. Add support for RTEMS to PPC
ELF. Add support for RTEMS to SPARC. Merge aarch64 support of Linux
and RTEMS.
This commit is contained in:
parent
1b21d79e4e
commit
e07ea03fce
@ -316,6 +316,13 @@ __gnat_backtrace (void **array,
|
|||||||
#define PC_ADJUST -2
|
#define PC_ADJUST -2
|
||||||
#define USING_ARM_UNWINDING 1
|
#define USING_ARM_UNWINDING 1
|
||||||
|
|
||||||
|
/*---------------------- ARM RTEMS ------------------------------------ -*/
|
||||||
|
#elif (defined (__arm__) && defined (__rtems__))
|
||||||
|
|
||||||
|
#define USE_GCC_UNWINDER
|
||||||
|
#define PC_ADJUST -2
|
||||||
|
#define USING_ARM_UNWINDING 1
|
||||||
|
|
||||||
/*---------------------- PPC AIX/PPC Lynx 178/Older Darwin --------------*/
|
/*---------------------- PPC AIX/PPC Lynx 178/Older Darwin --------------*/
|
||||||
#elif ((defined (_POWER) && defined (_AIX)) || \
|
#elif ((defined (_POWER) && defined (_AIX)) || \
|
||||||
(defined (__powerpc__) && defined (__Lynx__) && !defined(__ELF__)) || \
|
(defined (__powerpc__) && defined (__Lynx__) && !defined(__ELF__)) || \
|
||||||
@ -370,11 +377,12 @@ extern void __runnit(); /* thread entry point. */
|
|||||||
|
|
||||||
#define BASE_SKIP 1
|
#define BASE_SKIP 1
|
||||||
|
|
||||||
/*----------- PPC ELF (GNU/Linux & VxWorks & Lynx178e) -------------------*/
|
/*----------- PPC ELF (GNU/Linux & VxWorks & Lynx178e & RTEMS ) ----------*/
|
||||||
|
|
||||||
#elif (defined (_ARCH_PPC) && defined (__vxworks)) || \
|
#elif (defined (_ARCH_PPC) && defined (__vxworks)) || \
|
||||||
(defined (__powerpc__) && defined (__Lynx__) && defined(__ELF__)) || \
|
(defined (__powerpc__) && defined (__Lynx__) && defined(__ELF__)) || \
|
||||||
(defined (__linux__) && defined (__powerpc__))
|
(defined (__linux__) && defined (__powerpc__)) || \
|
||||||
|
(defined (__powerpc__) && defined (__rtems__))
|
||||||
|
|
||||||
#if defined (_ARCH_PPC64) && !defined (__USING_SJLJ_EXCEPTIONS__)
|
#if defined (_ARCH_PPC64) && !defined (__USING_SJLJ_EXCEPTIONS__)
|
||||||
#define USE_GCC_UNWINDER
|
#define USE_GCC_UNWINDER
|
||||||
@ -404,9 +412,9 @@ struct layout
|
|||||||
|
|
||||||
#define BASE_SKIP 1
|
#define BASE_SKIP 1
|
||||||
|
|
||||||
/*-------------------------- SPARC Solaris -----------------------------*/
|
/*-------------------------- SPARC Solaris or RTEMS --------------------*/
|
||||||
|
|
||||||
#elif defined (__sun__) && defined (__sparc__)
|
#elif (defined (__sun__) || defined (__rtems__)) && defined (__sparc__)
|
||||||
|
|
||||||
#define USE_GENERIC_UNWINDER
|
#define USE_GENERIC_UNWINDER
|
||||||
|
|
||||||
@ -551,21 +559,9 @@ is_return_from(void *symbol_addr, void *ret_addr)
|
|||||||
#error Unhandled QNX architecture.
|
#error Unhandled QNX architecture.
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/*---------------------------- RTEMS ---------------------------------*/
|
/*------------------- aarch64-linux or aarch64-rtems -----------------*/
|
||||||
|
|
||||||
#elif defined (__rtems__)
|
#elif (defined (__aarch64__) && (defined (__linux__) || defined (__rtems__)))
|
||||||
|
|
||||||
#define USE_GCC_UNWINDER
|
|
||||||
|
|
||||||
#if defined (__aarch64__)
|
|
||||||
#define PC_ADJUST -4
|
|
||||||
#else
|
|
||||||
#error Unhandled RTEMS architecture.
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/*------------------- aarch64-linux ----------------------------------*/
|
|
||||||
|
|
||||||
#elif (defined (__aarch64__) && defined (__linux__))
|
|
||||||
|
|
||||||
#define USE_GCC_UNWINDER
|
#define USE_GCC_UNWINDER
|
||||||
#define PC_ADJUST -4
|
#define PC_ADJUST -4
|
||||||
|
Loading…
Reference in New Issue
Block a user