diff mbox

[Ada,Darwin] update traceback choice for newer darwin systems.

Message ID 717484AD-346A-4CBA-88A9-19CAF444A192@sandoe-acoustics.co.uk
State New
Headers show

Commit Message

Iain Sandoe Sept. 7, 2011, 9:11 a.m. UTC
This doesn't actually make any functional change to x86 darwin, but it  
does group all the darwin versions together.

Current PPC darwin (like x86) should use the GCC unwinder.

(no Ada regression on *-darwin9, x86-64-darwin10)

OK for trunk/ 4.6 when the PPC changes are in?
cheers
Iain

ada:

	* traceback.c (Darwin) USE_GCC_UNWINDER for Darwin
	versions >= 8.

Comments

Arnaud Charlet Sept. 7, 2011, 9:17 a.m. UTC | #1
> This doesn't actually make any functional change to x86 darwin, but it does
> group all the darwin versions together.
> 
> Current PPC darwin (like x86) should use the GCC unwinder.
> 
> (no Ada regression on *-darwin9, x86-64-darwin10)
> 
> OK for trunk/ 4.6 when the PPC changes are in?
> cheers
> Iain
> 
> ada:
> 
> 	* traceback.c (Darwin) USE_GCC_UNWINDER for Darwin
> 	versions >= 8.

Patch looks OK to me, thanks.

> Index: gcc/ada/tracebak.c
> ===================================================================
> 
> --- gcc/ada/tracebak.c	(revision 178627)
> +++ gcc/ada/tracebak.c	(working copy)
> @@ -203,9 +203,23 @@ extern void (*Unlock_Task) (void);
>  
>    */
>  
> -/*--------------------------- PPC AIX/Darwin
> ----------------------------*/
> +/*------------------- Darwin 8 (OSX 10.4) or newer
> ----------------------*/
> +#if defined (__APPLE__) \
> +    && defined (__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__) \
> +    && __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ >= 1040
> + 
> +#define USE_GCC_UNWINDER
>  
> -#if ((defined (_POWER) && defined (_AIX)) || \
> +#if defined (__i386__) || defined (__x86_64__)
> +#define PC_ADJUST -2
> +#elif defined (__ppc__) || defined (__ppc64__)
> +#define PC_ADJUST -4
> +#else
> +#error Unhandled darwin architecture.
> +#endif
> +
> +/*------------------------ PPC AIX/Older Darwin
> -------------------------*/
> +#elif ((defined (_POWER) && defined (_AIX)) || \
>  (defined (__ppc__) && defined (__APPLE__)))
>  
>  #define USE_GENERIC_UNWINDER
diff mbox

Patch

Index: gcc/ada/tracebak.c
===================================================================
--- gcc/ada/tracebak.c	(revision 178627)
+++ gcc/ada/tracebak.c	(working copy)
@@ -203,9 +203,23 @@  extern void (*Unlock_Task) (void);
 
   */
 
-/*--------------------------- PPC AIX/Darwin ----------------------------*/
+/*------------------- Darwin 8 (OSX 10.4) or newer ----------------------*/
+#if defined (__APPLE__) \
+    && defined (__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__) \
+    && __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ >= 1040
+ 
+#define USE_GCC_UNWINDER
 
-#if ((defined (_POWER) && defined (_AIX)) || \
+#if defined (__i386__) || defined (__x86_64__)
+#define PC_ADJUST -2
+#elif defined (__ppc__) || defined (__ppc64__)
+#define PC_ADJUST -4
+#else
+#error Unhandled darwin architecture.
+#endif
+
+/*------------------------ PPC AIX/Older Darwin -------------------------*/
+#elif ((defined (_POWER) && defined (_AIX)) || \
 (defined (__ppc__) && defined (__APPLE__)))
 
 #define USE_GENERIC_UNWINDER