[arch-commits] CVS update of arch/build/base/gcc (DW_CFA_val.patch PKGBUILD)

Jan de Groot jgc at archlinux.org
Sat Aug 25 08:11:05 UTC 2007


    Date: Saturday, August 25, 2007 @ 04:11:05
  Author: jgc
    Path: /home/cvs-arch/arch/build/base/gcc

Modified: PKGBUILD (1.78 -> 1.79)
 Removed: DW_CFA_val.patch (1.1)

upgpkg: gcc 4.2.1-3.1
Build without debug symbols


------------------+
 DW_CFA_val.patch |  825 -----------------------------------------------------
 PKGBUILD         |    6 
 2 files changed, 3 insertions(+), 828 deletions(-)


Index: arch/build/base/gcc/DW_CFA_val.patch
diff -u arch/build/base/gcc/DW_CFA_val.patch:1.1 arch/build/base/gcc/DW_CFA_val.patch:removed
--- arch/build/base/gcc/DW_CFA_val.patch:1.1	Fri Nov  3 18:29:48 2006
+++ arch/build/base/gcc/DW_CFA_val.patch	Sat Aug 25 04:11:05 2007
@@ -1,825 +0,0 @@
---- gcc/testsuite/gcc.target/i386/cleanup-1.c	1970-01-01 01:00:00.000000000 +0100
-+++ gcc/testsuite/gcc.target/i386/cleanup-1.c	2006-11-03 19:52:47.000000000 +0100
-@@ -0,0 +1,240 @@
-+/* { dg-do run { target i?86-*-linux* x86_64-*-linux* } } */
-+/* { dg-options "-fexceptions -fnon-call-exceptions -fasynchronous-unwind-tables -O2" } */
-+/* Test complex CFA value expressions.  */
-+
-+#include <unwind.h>
-+#include <stdlib.h>
-+#include <string.h>
-+#include <stdio.h>
-+#include <unistd.h>
-+
-+static _Unwind_Reason_Code
-+force_unwind_stop (int version, _Unwind_Action actions,
-+		   _Unwind_Exception_Class exc_class,
-+		   struct _Unwind_Exception *exc_obj,
-+		   struct _Unwind_Context *context,
-+		   void *stop_parameter)
-+{
-+  if (actions & _UA_END_OF_STACK)
-+    abort ();
-+  return _URC_NO_REASON;
-+}
-+
-+static void
-+force_unwind ()
-+{
-+  struct _Unwind_Exception *exc = malloc (sizeof (*exc));
-+  memset (&exc->exception_class, 0, sizeof (exc->exception_class));
-+  exc->exception_cleanup = 0;
-+
-+  _Unwind_ForcedUnwind (exc, force_unwind_stop, 0);
-+  abort ();
-+}
-+
-+int count;
-+
-+static void
-+counter (void *p __attribute__((unused)))
-+{
-+  ++count;
-+}
-+
-+static void
-+handler (void *p __attribute__((unused)))
-+{
-+  if (count != 2)
-+    abort ();
-+  _exit (0);
-+}
-+
-+static int __attribute__((noinline))
-+fn5 (void)
-+{
-+  char dummy __attribute__((cleanup (counter)));
-+  force_unwind ();
-+  return 0;
-+}
-+
-+void
-+bar (void)
-+{
-+  char dummy __attribute__((cleanup (counter)));
-+  fn5 ();
-+}
-+
-+void __attribute__((noinline))
-+foo (int x)
-+{
-+  char buf[256];
-+#ifdef __i386__
-+  __asm (
-+	"testl	%0, %0\n\t"
-+	"jnz	1f\n\t"
-+	".subsection 1\n\t"
-+	".type	_L_mutex_lock_%=, @function\n"
-+"_L_mutex_lock_%=:\n"
-+"1:\t"	"leal	%1, %%ecx\n"
-+"2:\t"	"call	bar\n"
-+"3:\t"	"jmp	18f\n"
-+"4:\t"	".size _L_mutex_lock_%=, .-_L_mutex_lock_%=\n\t"
-+	".previous\n\t"
-+	".section	.eh_frame,\"a\", at progbits\n"
-+"5:\t"	".long	7f-6f	# Length of Common Information Entry\n"
-+"6:\t"	".long	0x0	# CIE Identifier Tag\n\t"
-+	".byte	0x1	# CIE Version\n\t"
-+	".ascii \"zR\\0\"	# CIE Augmentation\n\t"
-+	".uleb128 0x1	# CIE Code Alignment Factor\n\t"
-+	".sleb128 -4	# CIE Data Alignment Factor\n\t"
-+	".byte	0x8	# CIE RA Column\n\t"
-+	".uleb128 0x1	# Augmentation size\n\t"
-+	".byte	0x1b	# FDE Encoding (pcrel sdata4)\n\t"
-+	".byte	0xc	# DW_CFA_def_cfa\n\t"
-+	".uleb128 0x4\n\t"
-+	".uleb128 0x0\n\t"
-+	".align 4\n"
-+"7:\t"	".long	17f-8f	# FDE Length\n"
-+"8:\t"	".long	8b-5b	# FDE CIE offset\n\t"
-+	".long	1b-.	# FDE initial location\n\t"
-+	".long	4b-1b	# FDE address range\n\t"
-+	".uleb128 0x0	# Augmentation size\n\t"
-+	".byte	0x16	# DW_CFA_val_expression\n\t"
-+	".uleb128 0x8\n\t"
-+	".uleb128 10f-9f\n"
-+"9:\t"	".byte	0x78	# DW_OP_breg8\n\t"
-+	".sleb128 3b-1b\n"
-+"10:\t"	".byte	0x40 + (2b-1b) # DW_CFA_advance_loc\n\t"
-+	".byte	0x16	# DW_CFA_val_expression\n\t"
-+	".uleb128 0x8\n\t"
-+	".uleb128 12f-11f\n"
-+"11:\t"	".byte	0x78	# DW_OP_breg8\n\t"
-+	".sleb128 3b-2b\n"
-+"12:\t"	".byte	0x40 + (3b-2b-1) # DW_CFA_advance_loc\n\t"
-+	".byte	0x16	# DW_CFA_val_expression\n\t"
-+	".uleb128 0x8\n\t"
-+	".uleb128 16f-13f\n"
-+"13:\t"	".byte	0x78	# DW_OP_breg8\n\t"
-+	".sleb128 15f-14f\n\t"
-+	".byte	0x0d	# DW_OP_const4s\n"
-+"14:\t"	".4byte	3b-.\n\t"
-+	".byte	0x1c	# DW_OP_minus\n\t"
-+	".byte	0x0d	# DW_OP_const4s\n"
-+"15:\t"	".4byte	18f-.\n\t"
-+	".byte	0x22	# DW_OP_plus\n"
-+"16:\t"	".align 4\n"
-+"17:\t"	".previous\n"
-+"18:"
-+	: : "r" (x), "m" (x), "r" (buf)
-+	: "memory", "eax", "edx", "ecx");
-+#elif defined __x86_64__
-+  __asm (
-+	"testl	%0, %0\n\t"
-+	"jnz	1f\n\t"
-+	".subsection 1\n\t"
-+	".type	_L_mutex_lock_%=, @function\n"
-+"_L_mutex_lock_%=:\n"
-+"1:\t"	"leaq	%1, %%rdi\n"
-+"2:\t"	"subq	$128, %%rsp\n"
-+"3:\t"	"call	bar\n"
-+"4:\t"	"addq	$128, %%rsp\n"
-+"5:\t"	"jmp	24f\n"
-+"6:\t"	".size _L_mutex_lock_%=, .-_L_mutex_lock_%=\n\t"
-+	".previous\n\t"
-+	".section	.eh_frame,\"a\", at progbits\n"
-+"7:\t"	".long	9f-8f	# Length of Common Information Entry\n"
-+"8:\t"	".long	0x0	# CIE Identifier Tag\n\t"
-+	".byte	0x1	# CIE Version\n\t"
-+	".ascii \"zR\\0\"	# CIE Augmentation\n\t"
-+	".uleb128 0x1	# CIE Code Alignment Factor\n\t"
-+	".sleb128 -8	# CIE Data Alignment Factor\n\t"
-+	".byte	0x10	# CIE RA Column\n\t"
-+	".uleb128 0x1	# Augmentation size\n\t"
-+	".byte	0x1b	# FDE Encoding (pcrel sdata4)\n\t"
-+	".byte	0x12	# DW_CFA_def_cfa_sf\n\t"
-+	".uleb128 0x7\n\t"
-+	".sleb128 16\n\t"
-+	".align 8\n"
-+"9:\t"	".long	23f-10f	# FDE Length\n"
-+"10:\t"	".long	10b-7b	# FDE CIE offset\n\t"
-+	".long	1b-.	# FDE initial location\n\t"
-+	".long	6b-1b	# FDE address range\n\t"
-+	".uleb128 0x0	# Augmentation size\n\t"
-+	".byte	0x16	# DW_CFA_val_expression\n\t"
-+	".uleb128 0x10\n\t"
-+	".uleb128 12f-11f\n"
-+"11:\t"	".byte	0x80	# DW_OP_breg16\n\t"
-+	".sleb128 4b-1b\n"
-+"12:\t"	".byte	0x40 + (2b-1b) # DW_CFA_advance_loc\n\t"
-+	".byte	0x16	# DW_CFA_val_expression\n\t"
-+	".uleb128 0x10\n\t"
-+	".uleb128 14f-13f\n"
-+"13:\t"	".byte	0x80	# DW_OP_breg16\n\t"
-+	".sleb128 4b-2b\n"
-+"14:\t"	".byte	0x40 + (3b-2b) # DW_CFA_advance_loc\n\t"
-+	".byte	0x0e	# DW_CFA_def_cfa_offset\n\t"
-+	".uleb128 0\n\t"
-+	".byte	0x16	# DW_CFA_val_expression\n\t"
-+	".uleb128 0x10\n\t"
-+	".uleb128 16f-15f\n"
-+"15:\t"	".byte	0x80	# DW_OP_breg16\n\t"
-+	".sleb128 4b-3b\n"
-+"16:\t"	".byte	0x40 + (4b-3b-1) # DW_CFA_advance_loc\n\t"
-+	".byte	0x0e	# DW_CFA_def_cfa_offset\n\t"
-+	".uleb128 128\n\t"
-+	".byte	0x16	# DW_CFA_val_expression\n\t"
-+	".uleb128 0x10\n\t"
-+	".uleb128 20f-17f\n"
-+"17:\t"	".byte	0x80	# DW_OP_breg16\n\t"
-+	".sleb128 19f-18f\n\t"
-+	".byte	0x0d	# DW_OP_const4s\n"
-+"18:\t"	".4byte	4b-.\n\t"
-+	".byte	0x1c	# DW_OP_minus\n\t"
-+	".byte	0x0d	# DW_OP_const4s\n"
-+"19:\t"	".4byte	24f-.\n\t"
-+	".byte	0x22	# DW_OP_plus\n"
-+"20:\t"	".byte	0x40 + (5b-4b+1) # DW_CFA_advance_loc\n\t"
-+	".byte	0x13	# DW_CFA_def_cfa_offset_sf\n\t"
-+	".sleb128 16\n\t"
-+	".byte	0x16	# DW_CFA_val_expression\n\t"
-+	".uleb128 0x10\n\t"
-+	".uleb128 22f-21f\n"
-+"21:\t"	".byte	0x80	# DW_OP_breg16\n\t"
-+	".sleb128 4b-5b\n"
-+"22:\t"	".align 8\n"
-+"23:\t"	".previous\n"
-+"24:"
-+	: : "r" (x), "m" (x), "r" (buf)
-+	: "memory", "rax", "rdx", "rcx", "rsi", "rdi",
-+	  "r8", "r9", "r10", "r11");
-+#else
-+# error Unsupported test architecture
-+#endif
-+}
-+
-+static int __attribute__((noinline))
-+fn2 (void)
-+{
-+  foo (3);
-+  return 0;
-+}
-+
-+static int __attribute__((noinline))
-+fn1 (void)
-+{
-+  fn2 ();
-+  return 0;
-+}
-+
-+static void *
-+fn0 (void)
-+{
-+  char dummy __attribute__((cleanup (handler)));
-+  fn1 ();
-+  return 0;
-+}
-+
-+int
-+main (void)
-+{
-+  fn0 ();
-+  return 0;
-+}
---- gcc/testsuite/gcc.target/i386/cleanup-2.c	1970-01-01 01:00:00.000000000 +0100
-+++ gcc/testsuite/gcc.target/i386/cleanup-2.c	2006-11-03 19:54:48.000000000 +0100
-@@ -0,0 +1,205 @@
-+/* { dg-do run { target { { i?86-*-linux* x86_64-*-linux* } && lp64 } } } */
-+/* { dg-options "-fexceptions -fnon-call-exceptions -fasynchronous-unwind-tables -O2" } */
-+/* Test complex CFA value expressions.  */
-+
-+#include <unwind.h>
-+#include <stdlib.h>
-+#include <string.h>
-+#include <stdio.h>
-+#include <unistd.h>
-+
-+static _Unwind_Reason_Code
-+force_unwind_stop (int version, _Unwind_Action actions,
-+		   _Unwind_Exception_Class exc_class,
-+		   struct _Unwind_Exception *exc_obj,
-+		   struct _Unwind_Context *context,
-+		   void *stop_parameter)
-+{
-+  if (actions & _UA_END_OF_STACK)
-+    abort ();
-+  return _URC_NO_REASON;
-+}
-+
-+static void
-+force_unwind ()
-+{
-+  struct _Unwind_Exception *exc = malloc (sizeof (*exc));
-+  memset (&exc->exception_class, 0, sizeof (exc->exception_class));
-+  exc->exception_cleanup = 0;
-+
-+  _Unwind_ForcedUnwind (exc, force_unwind_stop, 0);
-+  abort ();
-+}
-+
-+int count;
-+
-+static void
-+counter (void *p __attribute__((unused)))
-+{
-+  ++count;
-+}
-+
-+static void
-+handler (void *p __attribute__((unused)))
-+{
-+  if (count != 2)
-+    abort ();
-+  _exit (0);
-+}
-+
-+static int __attribute__((noinline))
-+fn5 (void)
-+{
-+  char dummy __attribute__((cleanup (counter)));
-+  force_unwind ();
-+  return 0;
-+}
-+
-+void
-+bar (void)
-+{
-+  char dummy __attribute__((cleanup (counter)));
-+  fn5 ();
-+}
-+
-+void __attribute__((noinline))
-+foo (int x)
-+{
-+  char buf[256];
-+#ifdef __x86_64__
-+  __asm (
-+	"testl	%0, %0\n\t"
-+	"jnz	1f\n\t"
-+	".subsection 1\n\t"
-+	".type	_L_mutex_lock_%=, @function\n"
-+"_L_mutex_lock_%=:\n"
-+"1:\t"	"leaq	%1, %%rdi\n"
-+"2:\t"	"subq	$128, %%rsp\n"
-+"3:\t"	"call	bar\n"
-+"4:\t"	"addq	$128, %%rsp\n"
-+"5:\t"	"jmp	21f\n"
-+"6:\t"	".size _L_mutex_lock_%=, .-_L_mutex_lock_%=\n\t"
-+	".previous\n\t"
-+	".section	.eh_frame,\"a\", at progbits\n"
-+"7:\t"	".long	9f-8f	# Length of Common Information Entry\n"
-+"8:\t"	".long	0x0	# CIE Identifier Tag\n\t"
-+	".byte	0x1	# CIE Version\n\t"
-+	".ascii \"zR\\0\"	# CIE Augmentation\n\t"
-+	".uleb128 0x1	# CIE Code Alignment Factor\n\t"
-+	".sleb128 -8	# CIE Data Alignment Factor\n\t"
-+	".byte	0x10	# CIE RA Column\n\t"
-+	".uleb128 0x1	# Augmentation size\n\t"
-+	".byte	0x1b	# FDE Encoding (pcrel sdata4)\n\t"
-+	".byte	0xc	# DW_CFA_def_cfa\n\t"
-+	".uleb128 0x7\n\t"
-+	".uleb128 0x0\n\t"
-+	".align 8\n"
-+"9:\t"	".long	20f-10f	# FDE Length\n"
-+"10:\t"	".long	10b-7b	# FDE CIE offset\n\t"
-+	".long	1b-.	# FDE initial location\n\t"
-+	".long	6b-1b	# FDE address range\n\t"
-+	".uleb128 0x0	# Augmentation size\n\t"
-+	/* This CFA expression computes the address right
-+	   past the jnz instruction above, from %rip somewhere
-+	   within the _L_mutex_lock_%= subsection.  */
-+	".byte	0x16	# DW_CFA_val_expression\n\t"
-+	".uleb128 0x10\n\t"
-+	".uleb128 19f-11f\n"
-+"11:\t"	".byte	0x80	# DW_OP_breg16\n\t"
-+	".sleb128 0\n"
-+"12:\t"	".byte	0x12	# DW_OP_dup\n\t"
-+	".byte	0x94	# DW_OP_deref_size\n\t"
-+	".byte	1\n\t"
-+	".byte	0x12	# DW_OP_dup\n\t"
-+	".byte	0x08	# DW_OP_const1u\n\t"
-+	".byte	0x48\n\t"
-+	".byte	0x2e	# DW_OP_ne\n\t"
-+	".byte	0x28	# DW_OP_bra\n\t"
-+	".2byte	16f-13f\n"
-+"13:\t"	".byte	0x13	# DW_OP_drop\n\t"
-+	".byte	0x23	# DW_OP_plus_uconst\n\t"
-+	".uleb128 1\n\t"
-+	".byte	0x12	# DW_OP_dup\n\t"
-+	".byte	0x94	# DW_OP_deref_size\n\t"
-+	".byte	1\n\t"
-+	".byte	0x08	# DW_OP_const1u\n\t"
-+	".byte	0x81\n\t"
-+	".byte	0x2e	# DW_OP_ne\n\t"
-+	".byte	0x28	# DW_OP_bra\n\t"
-+	".2byte	15f-14f\n"
-+"14:\t"	".byte	0x23	# DW_OP_plus_uconst\n\t"
-+	".uleb128 3b-2b-1\n\t"
-+	".byte	0x2f	# DW_OP_skip\n\t"
-+	".2byte	12b-15f\n"
-+"15:\t"	".byte	0x23	# DW_OP_plus_uconst\n\t"
-+	".uleb128 2b-1b-1\n\t"
-+	".byte	0x2f	# DW_OP_skip\n\t"
-+	".2byte	12b-16f\n"
-+"16:\t"	".byte	0x08	# DW_OP_const1u\n\t"
-+	".byte	0xe8\n\t"
-+	".byte	0x2e	# DW_OP_ne\n\t"
-+	".byte	0x28	# DW_OP_bra\n\t"
-+	".2byte	18f-17f\n"
-+"17:\t"	".byte	0x23	# DW_OP_plus_uconst\n\t"
-+	".uleb128 4b-3b\n\t"
-+	".byte	0x2f	# DW_OP_skip\n\t"
-+	".2byte	12b-18f\n"
-+"18:\t"	".byte	0x23	# DW_OP_plus_uconst\n\t"
-+	".uleb128 1\n\t"
-+	".byte	0x12	# DW_OP_dup\n\t"
-+	".byte	0x94	# DW_OP_deref_size\n\t"
-+	".byte	4\n\t"
-+	".byte	0x08	# DW_OP_const1u\n\t"
-+	".byte	72 - (6b-5b) * 8 # (6b-5b) == 5 ? 32 : 56\n\t"
-+	".byte	0x24	# DW_OP_shl\n\t"
-+	".byte	0x08	# DW_OP_const1u\n\t"
-+	".byte	72 - (6b-5b) * 8 # (6b-5b) == 5 ? 32 : 56\n\t"
-+	".byte	0x26	# DW_OP_shra\n\t"
-+	".byte	0x22	# DW_OP_plus\n\t"
-+	".byte	0x23	# DW_OP_plus_uconst\n\t"
-+	".uleb128 6b-5b-1\n"
-+"19:\t"	".byte	0x40 + (3b-1b) # DW_CFA_advance_loc\n\t"
-+	".byte	0xe	# DW_CFA_def_cfa_offset\n\t"
-+	".uleb128 128\n\t"
-+	".byte	0x40 + (5b-3b) # DW_CFA_advance_loc\n\t"
-+	".byte	0xe	# DW_CFA_def_cfa_offset\n\t"
-+	".uleb128 0\n\t"
-+	".align 8\n"
-+"20:\t"	".previous\n"
-+"21:"
-+	: : "r" (x), "m" (x), "r" (buf)
-+	: "memory", "rax", "rdx", "rcx", "rsi", "rdi",
-+	  "r8", "r9", "r10", "r11");
-+#else
-+# error Unsupported test architecture
-+#endif
-+}
-+
-+static int __attribute__((noinline))
-+fn2 (void)
-+{
-+  foo (3);
-+  return 0;
-+}
-+
-+static int __attribute__((noinline))
-+fn1 (void)
-+{
-+  fn2 ();
-+  return 0;
-+}
-+
-+static void *
-+fn0 (void)
-+{
-+  char dummy __attribute__((cleanup (handler)));
-+  fn1 ();
-+  return 0;
-+}
-+
-+int
-+main (void)
-+{
-+  fn0 ();
-+  return 0;
-+}
---- gcc/unwind-dw2.c	2006/02/27 17:26:26	111488
-+++ gcc/unwind-dw2.c	2006/03/04 07:07:12	111705
-@@ -71,6 +71,7 @@
-   void *lsda;
-   struct dwarf_eh_bases bases;
-   _Unwind_Word args_size;
-+  char by_value[DWARF_FRAME_REGISTERS+1];
- };
- 
- /* Byte size of every register managed by these routines.  */
-@@ -117,7 +118,7 @@
- static inline unsigned long
- read_8s (const void *p) { const union unaligned *up = p; return up->s8; }
- 
--/* Get the value of register REG as saved in CONTEXT.  */
-+/* Get the value of register INDEX as saved in CONTEXT.  */
- 
- inline _Unwind_Word
- _Unwind_GetGR (struct _Unwind_Context *context, int index)
-@@ -135,6 +136,9 @@
-   size = dwarf_reg_size_table[index];
-   ptr = context->reg[index];
- 
-+  if (context->by_value[index])
-+    return (_Unwind_Word) (_Unwind_Internal_Ptr) ptr;
-+
-   /* This will segfault if the register hasn't been saved.  */
-   if (size == sizeof(_Unwind_Ptr))
-     return * (_Unwind_Ptr *) ptr;
-@@ -159,7 +163,7 @@
-   return (_Unwind_Ptr) context->cfa;
- }
- 
--/* Overwrite the saved value for register REG in CONTEXT with VAL.  */
-+/* Overwrite the saved value for register INDEX in CONTEXT with VAL.  */
- 
- inline void
- _Unwind_SetGR (struct _Unwind_Context *context, int index, _Unwind_Word val)
-@@ -170,6 +174,13 @@
-   index = DWARF_REG_TO_UNWIND_COLUMN (index);
-   gcc_assert (index < (int) sizeof(dwarf_reg_size_table));
-   size = dwarf_reg_size_table[index];
-+
-+  if (context->by_value[index])
-+    {
-+      context->reg[index] = (void *) (_Unwind_Internal_Ptr) val;
-+      return;
-+    }
-+
-   ptr = context->reg[index];
- 
-   if (size == sizeof(_Unwind_Ptr))
-@@ -187,6 +198,8 @@
- _Unwind_GetGRPtr (struct _Unwind_Context *context, int index)
- {
-   index = DWARF_REG_TO_UNWIND_COLUMN (index);
-+  if (context->by_value[index])
-+    return &context->reg[index];
-   return context->reg[index];
- }
- 
-@@ -196,9 +209,34 @@
- _Unwind_SetGRPtr (struct _Unwind_Context *context, int index, void *p)
- {
-   index = DWARF_REG_TO_UNWIND_COLUMN (index);
-+  context->by_value[index] = 0;
-   context->reg[index] = p;
- }
- 
-+/* Overwrite the saved value for register INDEX in CONTEXT with VAL.  */
-+
-+static inline void
-+_Unwind_SetGRValue (struct _Unwind_Context *context, int index,
-+		    _Unwind_Word val)
-+{
-+  index = DWARF_REG_TO_UNWIND_COLUMN (index);
-+  gcc_assert (index < (int) sizeof(dwarf_reg_size_table));
-+  gcc_assert (dwarf_reg_size_table[index] == sizeof (_Unwind_Ptr));
-+
-+  context->by_value[index] = 1;
-+  context->reg[index] = (void *) (_Unwind_Internal_Ptr) val;
-+}
-+
-+/* Return non-zero if register INDEX is stored by value rather than
-+   by reference.  */
-+
-+static inline int
-+_Unwind_GRByValue (struct _Unwind_Context *context, int index)
-+{
-+  index = DWARF_REG_TO_UNWIND_COLUMN (index);
-+  return context->by_value[index];
-+}
-+
- /* Retrieve the return address for CONTEXT.  */
- 
- inline _Unwind_Ptr
-@@ -902,7 +940,7 @@
- 	  insn_ptr += utmp;
- 	  break;
- 
--	  /* From the dwarf3 draft.  */
-+	  /* Dwarf3.  */
- 	case DW_CFA_offset_extended_sf:
- 	  insn_ptr = read_uleb128 (insn_ptr, &reg);
- 	  insn_ptr = read_sleb128 (insn_ptr, &stmp);
-@@ -925,6 +963,33 @@
- 	  /* cfa_how deliberately not set.  */
- 	  break;
- 
-+	case DW_CFA_val_offset:
-+	  insn_ptr = read_uleb128 (insn_ptr, &reg);
-+	  insn_ptr = read_uleb128 (insn_ptr, &utmp);
-+	  offset = (_Unwind_Sword) utmp * fs->data_align;
-+	  fs->regs.reg[DWARF_REG_TO_UNWIND_COLUMN (reg)].how
-+	    = REG_SAVED_VAL_OFFSET;
-+	  fs->regs.reg[DWARF_REG_TO_UNWIND_COLUMN (reg)].loc.offset = offset;
-+	  break;
-+
-+	case DW_CFA_val_offset_sf:
-+	  insn_ptr = read_uleb128 (insn_ptr, &reg);
-+	  insn_ptr = read_sleb128 (insn_ptr, &stmp);
-+	  offset = stmp * fs->data_align;
-+	  fs->regs.reg[DWARF_REG_TO_UNWIND_COLUMN (reg)].how
-+	    = REG_SAVED_VAL_OFFSET;
-+	  fs->regs.reg[DWARF_REG_TO_UNWIND_COLUMN (reg)].loc.offset = offset;
-+	  break;
-+
-+	case DW_CFA_val_expression:
-+	  insn_ptr = read_uleb128 (insn_ptr, &reg);
-+	  fs->regs.reg[DWARF_REG_TO_UNWIND_COLUMN (reg)].how
-+	    = REG_SAVED_VAL_EXP;
-+	  fs->regs.reg[DWARF_REG_TO_UNWIND_COLUMN (reg)].loc.exp = insn_ptr;
-+	  insn_ptr = read_uleb128 (insn_ptr, &utmp);
-+	  insn_ptr += utmp;
-+	  break;
-+
- 	case DW_CFA_GNU_window_save:
- 	  /* ??? Hardcoded for SPARC register window configuration.  */
- 	  for (reg = 16; reg < 32; ++reg)
-@@ -1092,7 +1157,7 @@
- 
- static inline void
- _Unwind_SetSpColumn (struct _Unwind_Context *context, void *cfa,
--                     _Unwind_SpTmp *tmp_sp)
-+		     _Unwind_SpTmp *tmp_sp)
- {
-   int size = dwarf_reg_size_table[__builtin_dwarf_sp_column ()];
-   
-@@ -1173,9 +1238,14 @@
- 	break;
- 
-       case REG_SAVED_REG:
--	_Unwind_SetGRPtr
--	  (context, i,
--	   _Unwind_GetGRPtr (&orig_context, fs->regs.reg[i].loc.reg));
-+	if (_Unwind_GRByValue (&orig_context, fs->regs.reg[i].loc.reg))
-+	  _Unwind_SetGRValue (context, i,
-+			      _Unwind_GetGR (&orig_context,
-+					     fs->regs.reg[i].loc.reg));
-+	else
-+	  _Unwind_SetGRPtr (context, i,
-+			    _Unwind_GetGRPtr (&orig_context,
-+					      fs->regs.reg[i].loc.reg));
- 	break;
- 
-       case REG_SAVED_EXP:
-@@ -1190,6 +1260,25 @@
- 	  _Unwind_SetGRPtr (context, i, (void *) val);
- 	}
- 	break;
-+
-+      case REG_SAVED_VAL_OFFSET:
-+	_Unwind_SetGRValue (context, i,
-+			    (_Unwind_Internal_Ptr)
-+			    (cfa + fs->regs.reg[i].loc.offset));
-+	break;
-+
-+      case REG_SAVED_VAL_EXP:
-+	{
-+	  const unsigned char *exp = fs->regs.reg[i].loc.exp;
-+	  _Unwind_Word len;
-+	  _Unwind_Ptr val;
-+
-+	  exp = read_uleb128 (exp, &len);
-+	  val = execute_stack_op (exp, exp + len, &orig_context,
-+				  (_Unwind_Ptr) cfa);
-+	  _Unwind_SetGRValue (context, i, val);
-+	}
-+	break;
-       }
- 
- #ifdef MD_FROB_UPDATE_CONTEXT
-@@ -1304,14 +1393,31 @@
-   /* If the target frame does not have a saved stack pointer,
-      then set up the target's CFA.  */
-   if (!_Unwind_GetGRPtr (target, __builtin_dwarf_sp_column ()))
--	_Unwind_SetSpColumn (target, target->cfa, &sp_slot);
-+    _Unwind_SetSpColumn (target, target->cfa, &sp_slot);
- 
-   for (i = 0; i < DWARF_FRAME_REGISTERS; ++i)
-     {
-       void *c = current->reg[i];
-       void *t = target->reg[i];
- 
--      if (t && c && t != c)
-+      gcc_assert (current->by_value[i] == 0);
-+      if (target->by_value[i] && c)
-+	{
-+	  _Unwind_Word w;
-+	  _Unwind_Ptr p;
-+	  if (dwarf_reg_size_table[i] == sizeof (_Unwind_Word))
-+	    {
-+	      w = (_Unwind_Internal_Ptr) t;
-+	      memcpy (c, &w, sizeof (_Unwind_Word));
-+	    }
-+	  else
-+	    {
-+	      gcc_assert (dwarf_reg_size_table[i] == sizeof (_Unwind_Ptr));
-+	      p = (_Unwind_Internal_Ptr) t;
-+	      memcpy (c, &p, sizeof (_Unwind_Ptr));
-+	    }
-+	}
-+      else if (t && c && t != c)
- 	memcpy (c, t, dwarf_reg_size_table[i]);
-     }
- 
---- gcc/unwind-dw2.h	2006/02/27 17:26:26	111488
-+++ gcc/unwind-dw2.h	2006/03/04 07:07:12	111705
-@@ -53,7 +53,9 @@
- 	REG_UNSAVED,
- 	REG_SAVED_OFFSET,
- 	REG_SAVED_REG,
--	REG_SAVED_EXP
-+	REG_SAVED_EXP,
-+	REG_SAVED_VAL_OFFSET,
-+	REG_SAVED_VAL_EXP
-       } how;
-     } reg[DWARF_FRAME_REGISTERS+1];
- 
---- gcc/dwarf2.h	2005/06/25 02:02:01	101317
-+++ gcc/dwarf2.h	2006/03/01 23:26:13	111620
-@@ -1,7 +1,7 @@
--/* Declarations and definitions of codes relating to the DWARF2 symbolic
--   debugging information format.
-+/* Declarations and definitions of codes relating to the DWARF2 and
-+   DWARF3 symbolic debugging information formats.
-    Copyright (C) 1992, 1993, 1995, 1996, 1997, 1999, 2000, 2001, 2002,
--   2003, 2004 Free Software Foundation, Inc.
-+   2003, 2004, 2005, 2006 Free Software Foundation, Inc.
- 
-    Written by Gary Funck (gary at intrepid.com) The Ada Joint Program
-    Office (AJPO), Florida State University and Silicon Graphics Inc.
-@@ -187,6 +187,8 @@
-     DW_TAG_unspecified_type = 0x3b,
-     DW_TAG_partial_unit = 0x3c,
-     DW_TAG_imported_unit = 0x3d,
-+    DW_TAG_condition = 0x3f,
-+    DW_TAG_shared_type = 0x40,
-     /* SGI/MIPS Extensions.  */
-     DW_TAG_MIPS_loop = 0x4081,
-     /* HP extensions.  See: ftp://ftp.hp.com/pub/lang/tools/WDB/wdb-4.0.tar.gz .  */
-@@ -317,6 +319,21 @@
-     DW_AT_call_column   = 0x57,
-     DW_AT_call_file     = 0x58,
-     DW_AT_call_line     = 0x59,
-+    DW_AT_description   = 0x5a,
-+    DW_AT_binary_scale  = 0x5b,
-+    DW_AT_decimal_scale = 0x5c,
-+    DW_AT_small         = 0x5d,
-+    DW_AT_decimal_sign  = 0x5e,
-+    DW_AT_digit_count   = 0x5f,
-+    DW_AT_picture_string = 0x60,
-+    DW_AT_mutable       = 0x61,
-+    DW_AT_threads_scaled = 0x62,
-+    DW_AT_explicit      = 0x63,
-+    DW_AT_object_pointer = 0x64,
-+    DW_AT_endianity     = 0x65,
-+    DW_AT_elemental     = 0x66,
-+    DW_AT_pure          = 0x67,
-+    DW_AT_recursive     = 0x68,
-     /* SGI/MIPS extensions.  */
-     DW_AT_MIPS_fde = 0x2001,
-     DW_AT_MIPS_loop_begin = 0x2002,
-@@ -518,6 +535,9 @@
-     DW_OP_call2 = 0x98,
-     DW_OP_call4 = 0x99,
-     DW_OP_call_ref = 0x9a,
-+    DW_OP_form_tls_address = 0x9b,
-+    DW_OP_call_frame_cfa = 0x9c,
-+    DW_OP_bit_piece = 0x9d,
-     /* GNU extensions.  */
-     DW_OP_GNU_push_tls_address = 0xe0,
-     /* HP extensions.  */
-@@ -547,6 +567,12 @@
-     DW_ATE_unsigned_char = 0x8,
-     /* DWARF 3.  */
-     DW_ATE_imaginary_float = 0x9,
-+    DW_ATE_packed_decimal = 0xa,
-+    DW_ATE_numeric_string = 0xb,
-+    DW_ATE_edited = 0xc,
-+    DW_ATE_signed_fixed = 0xd,
-+    DW_ATE_unsigned_fixed = 0xe,
-+    DW_ATE_decimal_float = 0xf,
-     /* HP extensions.  */
-     DW_ATE_HP_float80            = 0x80, /* Floating-point (80 bit).  */
-     DW_ATE_HP_complex_float80    = 0x81, /* Complex floating-point (80 bit).  */
-@@ -560,6 +586,29 @@
- #define	DW_ATE_lo_user 0x80
- #define	DW_ATE_hi_user 0xff
- 
-+/* Decimal sign encodings.  */
-+enum dwarf_decimal_sign_encoding
-+  {
-+    /* DWARF 3.  */
-+    DW_DS_unsigned = 0x01,
-+    DW_DS_leading_overpunch = 0x02,
-+    DW_DS_trailing_overpunch = 0x03,
-+    DW_DS_leading_separate = 0x04,
-+    DW_DS_trailing_separate = 0x05
-+  };
-+
-+/* Endianity encodings.  */
-+enum dwarf_endianity_encoding
-+  {
-+    /* DWARF 3.  */
-+    DW_END_default = 0x00,
-+    DW_END_big = 0x01,
-+    DW_END_little = 0x02
-+  };
-+
-+#define DW_END_lo_user 0x40
-+#define DW_END_hi_user 0xff
-+
- /* Array ordering names and codes.  */
- enum dwarf_array_dim_ordering
-   {
-@@ -666,6 +715,9 @@
-     DW_LNE_HP_define_proc              = 0x20
-   };
- 
-+#define DW_LNE_lo_user 0x80
-+#define DW_LNE_hi_user 0xff
-+
- /* Call frame information.  */
- enum dwarf_call_frame_info
-   {
-@@ -693,6 +745,9 @@
-     DW_CFA_offset_extended_sf = 0x11,
-     DW_CFA_def_cfa_sf = 0x12,
-     DW_CFA_def_cfa_offset_sf = 0x13,
-+    DW_CFA_val_offset = 0x14,
-+    DW_CFA_val_offset_sf = 0x15,
-+    DW_CFA_val_expression = 0x16,
-     /* SGI/MIPS specific.  */
-     DW_CFA_MIPS_advance_loc8 = 0x1d,
-     /* GNU extensions.  */
-@@ -726,11 +781,16 @@
-     DW_LANG_Fortran90 = 0x0008,
-     DW_LANG_Pascal83 = 0x0009,
-     DW_LANG_Modula2 = 0x000a,
--    DW_LANG_Java = 0x000b,
-     /* DWARF 3.  */
-+    DW_LANG_Java = 0x000b,
-     DW_LANG_C99 = 0x000c,
-     DW_LANG_Ada95 = 0x000d,
-     DW_LANG_Fortran95 = 0x000e,
-+    DW_LANG_PLI = 0x000f,
-+    DW_LANG_ObjC = 0x0010,
-+    DW_LANG_ObjC_plus_plus = 0x0011,
-+    DW_LANG_UPC = 0x0012,
-+    DW_LANG_D = 0x0013,
-     /* MIPS.  */
-     DW_LANG_Mips_Assembler = 0x8001,
-     /* UPC.  */
Index: arch/build/base/gcc/PKGBUILD
diff -u arch/build/base/gcc/PKGBUILD:1.78 arch/build/base/gcc/PKGBUILD:1.79
--- arch/build/base/gcc/PKGBUILD:1.78	Tue Aug 21 11:34:58 2007
+++ arch/build/base/gcc/PKGBUILD	Sat Aug 25 04:11:05 2007
@@ -1,15 +1,15 @@
-# $Id: PKGBUILD,v 1.78 2007/08/21 15:34:58 dan Exp $
+# $Id: PKGBUILD,v 1.79 2007/08/25 08:11:05 jgc Exp $
 # Maintainer: Jan de Groot <jgc at archlinux.org>
 pkgname=gcc
 pkgver=4.2.1
-pkgrel=3
+pkgrel=3.1
 #_snapshot=4.2.1-RC-20070703
 pkgdesc="The GNU Compiler Collection"
 arch=(i686 x86_64)
 license=('GPL' 'LGPL')
 groups=('base')
 url="http://gcc.gnu.org"
-depends=('glibc>=2.6' 'binutils>=2.17.50.0.18')
+depends=('glibc>=2.6.1' 'binutils>=2.17.50.0.18')
 options=('!libtool')
 source=(ftp://gcc.gnu.org/pub/gcc/releases/gcc-${pkgver}/gcc-{core,g++,objc}-${pkgver}.tar.bz2
 	#ftp://gcc.gnu.org/pub/gcc/snapshots/${_snapshot}/gcc-{core,g++,objc}-${_snapshot}.tar.bz2




More information about the arch-commits mailing list