Update of /cvsroot/fink/dists/10.4/stable/main/finkinfo/languages
In directory sc8-pr-cvs17:/tmp/cvs-serv19250

Modified Files:
        gcc42.info gcc42.patch 
Log Message:
latest version to stable, with maintainer's permission


Index: gcc42.info
===================================================================
RCS file: /cvsroot/fink/dists/10.4/stable/main/finkinfo/languages/gcc42.info,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -d -r1.2 -r1.3
--- gcc42.info  30 Jun 2007 22:00:08 -0000      1.2
+++ gcc42.info  30 Jul 2007 22:03:06 -0000      1.3
@@ -1,9 +1,9 @@
 Info2: <<
 Package: gcc42
-Version: 4.2.0
-Revision: 1001
+Version: 4.2.1
+Revision: 1000
 Source: ftp://gcc.gnu.org/pub/gcc/releases/gcc-%v/gcc-%v.tar.bz2
-Source-MD5: 4798c23548dc791ea12a139e18940684
+Source-MD5: cba410e6ff70f7d7f4be7a0267707fd0
 Type: -64bit
 NoSetCPPFLAGS: True
 NoSetLDFLAGS: True
@@ -13,7 +13,7 @@
 BuildDepends: gmp (>= 4.2.1-1), libmpfr1 (>= 2.2.0-2), libiconv-dev, 
gettext-tools, libgettext3-dev, cctools (>= 622-1)
 ConfigureParams: <<
  --prefix=%p/lib/gcc4.2 --mandir=%p/share/man --infodir=%p/share/info 
--enable-languages=c,c++,fortran,objc,java \
- `cc -v 2>&1|grep '^Configured'|tr ' ' '\n'|egrep 
'^\-\-(with\-(arch|tune)|host)='|xargs` \
+ `cc -v 2>&1|grep '^Configured'|tr ' ' '\n'|egrep 
'^\-\-(with\-(arch|tune)|host)='|sed 
's|--with-arch=apple|--with-arch=nocona|g'|xargs` \
  --with-gmp=%p --with-libiconv-prefix=%p --with-system-zlib 
--x-includes=/usr/X11R6/include --x-libraries=/usr/X11R6/lib
 <<
 Patch: %n.patch
@@ -110,7 +110,7 @@
     lib/gcc4.2/lib/libssp.0*.dylib
     lib/gcc4.2/lib/libobjc-gnu.2*.dylib
     lib/gcc4.2/lib/libgomp.1*.dylib
-    lib/gcc4.2/lib/gcj-4.2.0
+    lib/gcc4.2/lib/gcj-%v
     lib/gcc4.2/%lib/libgfortran.2*.dylib
     lib/gcc4.2/%lib/libstdc++.6*.dylib
     lib/gcc4.2/%lib/libssp.0*.dylib

Index: gcc42.patch
===================================================================
RCS file: /cvsroot/fink/dists/10.4/stable/main/finkinfo/languages/gcc42.patch,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -d -r1.2 -r1.3
--- gcc42.patch 30 Jun 2007 22:00:09 -0000      1.2
+++ gcc42.patch 30 Jul 2007 22:03:06 -0000      1.3
@@ -1,3 +1,12 @@
+--- gcc-4.2.0/libgomp/testsuite/libgomp.c++/pr30703.C.org      2007-02-07 
08:37:29.000000000 -0500
++++ gcc-4.2.0/libgomp/testsuite/libgomp.c++/pr30703.C  2007-05-17 
19:48:03.000000000 -0400
+@@ -1,5 +1,6 @@
+ // PR c++/30703
+ // { dg-do run }
++// { dg-options "-shared-libgcc" { target *-*-darwin* } }
+ 
+ #include <omp.h>
+ 
 --- gcc-4.2-20060822/gcc/testsuite/lib/prune.exp.org   2006-08-23 
18:33:56.000000000 -0400
 +++ gcc-4.2-20060822/gcc/testsuite/lib/prune.exp       2006-08-23 
18:41:28.000000000 -0400
 @@ -43,6 +43,7 @@
@@ -31,496 +40,134 @@
  for peer in $peerlibs ; do
    case $peer in
      xlib)
---- gcc-4.2.0/boehm-gc/configure.ac.org        2006-12-08 19:42:26.000000000 
-0500
-+++ gcc-4.2.0/boehm-gc/configure.ac    2007-05-16 15:38:25.000000000 -0400
-@@ -248,33 +248,46 @@
- case "$host" in
-   powerpc*-*-darwin*)
-     AC_CHECK_MEMBER(ppc_thread_state_t.r0,
--      AC_DEFINE(HAS_PPC_THREAD_STATE_R0,,[ppc_thread_state_t has field r0]),,
-+      AC_DEFINE(HAS_PPC_THREAD_STATE_R0,1,
-+      [ppc_thread_state_t has field r0]),,
-       [#include <mach/thread_status.h>])
-     AC_CHECK_MEMBER(ppc_thread_state_t.__r0,
--      AC_DEFINE(HAS_PPC_THREAD_STATE___R0,,dnl
--        [ppc_thread_state_t has field __r0]),,
-+      AC_DEFINE(HAS_PPC_THREAD_STATE___R0,1,dnl
-+      [ppc_thread_state_t has field __r0]),,
-       [#include <mach/thread_status.h>])
-     AC_CHECK_MEMBER(ppc_thread_state64_t.r0,
--      AC_DEFINE(HAS_PPC_THREAD_STATE64_R0,,dnl
--        [ppc_thread_state64_t has field r0]),,
-+      AC_DEFINE(HAS_PPC_THREAD_STATE64_R0,1,dnl
-+      [ppc_thread_state64_t has field r0]),,
-       [#include <mach/thread_status.h>])
-     AC_CHECK_MEMBER(ppc_thread_state64_t.__r0,
--      AC_DEFINE(HAS_PPC_THREAD_STATE64___R0,,dnl
--        [ppc_thread_state64_t has field __r0]),,
-+      AC_DEFINE(HAS_PPC_THREAD_STATE64___R0,1,dnl
-+      [ppc_thread_state64_t has field __r0]),,
-       [#include <mach/thread_status.h>])
-     ;;
-   i?86*-*-darwin*)
--    AC_CHECK_MEMBER(i386_thread_state_t.eax,
--      AC_DEFINE(HAS_I386_THREAD_STATE_EAX,,dnl
--        [i386_thread_state_t has field eax]),,
-+    AC_CHECK_MEMBER(x86_thread_state32_t.eax,
-+      AC_DEFINE(HAS_X86_THREAD_STATE32_EAX,1,dnl
-+      [x86_thread_state32_t has field eax]),,
-       [#include <sys/cdefs.h>
--#include <mach/thread_status.h>])
--    AC_CHECK_MEMBER(i386_thread_state_t.__eax,
--      AC_DEFINE(HAS_I386_THREAD_STATE___EAX,,dnl
--        [i386_thread_state_t has field __eax]),,
-+      #include <mach/thread_status.h>])
-+    AC_CHECK_MEMBER(x86_thread_state32_t.__eax,
-+      AC_DEFINE(HAS_X86_THREAD_STATE32___EAX,1,dnl
-+      [x86_thread_state32_t has field __eax]),,
-       [#include <sys/cdefs.h>
--#include <mach/thread_status.h>])
-+      #include <mach/thread_status.h>])
-     ;;
-+  x86_64-*-darwin*)
-+    AC_CHECK_MEMBER(x86_thread_state64_t.rax,
-+      AC_DEFINE(HAS_X86_THREAD_STATE64_RAX,1,dnl
-+      [x86_thread_state64_t has field rax]),,
-+      [#include <sys/cdefs.h>
-+      #include <mach/thread_status.h>])
-+    AC_CHECK_MEMBER(x86_thread_state64_t.__rax,
-+      AC_DEFINE(HAS_X86_THREAD_STATE64___RAX,1,dnl
-+      [x86_thread_state64_t has field __rax]),,
-+      [#include <sys/cdefs.h>
-+      #include <mach/thread_status.h>])
-+     ;;
-   *) ;;
- esac
+diff -uNr gcc-4.2.1/gcc/tree-ssa-structalias.c 
gcc-4.2.1.memfix/gcc/tree-ssa-structalias.c
+--- gcc-4.2.1/gcc/tree-ssa-structalias.c       2007-06-19 05:24:35.000000000 
-0400
++++ gcc-4.2.1.memfix/gcc/tree-ssa-structalias.c        2007-07-20 
18:28:59.000000000 -0400
+@@ -4350,6 +4350,75 @@
+   process_constraint (new_constraint (lhs, rhs));
+ }
  
---- gcc-4.2.0/boehm-gc/darwin_stop_world.c.org 2006-12-08 19:42:26.000000000 
-0500
-+++ gcc-4.2.0/boehm-gc/darwin_stop_world.c     2007-05-17 16:36:54.000000000 
-0400
-@@ -10,7 +10,7 @@
-    be allocated, is called the red zone. This area as shown in Figure 3-2 may
-    be used for any purpose as long as a new stack frame does not need to be
-    added to the stack."
--   
++/* Structure used to put solution bitmaps in a hashtable so they can
++   be shared among variables with the same points-to set.  */
 +
-    Page 50: "If a leaf procedure's red zone usage would exceed 224 bytes, then
-    it must set up a stack frame just like routines that call other routines."
- */
-@@ -20,48 +20,6 @@
- # define PPC_RED_ZONE_SIZE 320
- #endif
- 
--/* Try to work out the right way to access thread state structure members.
--   The structure has changed its definition in different Darwin versions.  */
--#if defined(__ppc__)
--# define THREAD_STATE ppc_thread_state_t
--# if defined (HAS_PPC_THREAD_STATE_R0)
--#  define THREAD_FLD(x) x
--# elif defined (HAS_PPC_THREAD_STATE___R0)
--#  define THREAD_FLD(x) __ ## x
--# else
--#  error can not work out how to access fields of ppc_thread_state_t
--# endif
--#elif defined(__ppc64__)
--# define THREAD_STATE ppc_thread_state64_t
--# if defined (HAS_PPC_THREAD_STATE64_R0)
--#  define THREAD_FLD(x) x
--# elif defined (HAS_PPC_THREAD_STATE64___R0)
--#  define THREAD_FLD(x) __ ## x
--# else
--#  error can not work out how to access fields of ppc_thread_state64_t
--# endif
--#elif defined(__i386__)
--# define THREAD_STATE i386_thread_state_t
--# if defined (HAS_I386_THREAD_STATE_EAX)
--#  define THREAD_FLD(x) x
--# elif defined (HAS_I386_THREAD_STATE___EAX)
--#  define THREAD_FLD(x) __ ## x
--# else
--#  error can not work out how to access fields of i386_thread_state_t
--# endif
--#elif defined(__x86_64__)
--# define THREAD_STATE i386_thread_state_t
--# if defined (HAS_I386_THREAD_STATE_EAX)
--#  define THREAD_FLD(x) x
--# elif defined (HAS_I386_THREAD_STATE___EAX)
--#  define THREAD_FLD(x) __ ## x
--# else
--#  error can not work out how to access fields of i386_thread_state_t
--# endif
--#else
--# error unknown architecture
--#endif
--
- typedef struct StackFrame {
-   unsigned long       savedSP;
-   unsigned long       savedCR;
-@@ -115,8 +73,8 @@
-   GC_thread p;
-   pthread_t me;
-   ptr_t lo, hi;
--  THREAD_STATE state;
--  mach_msg_type_number_t thread_state_count = MACHINE_THREAD_STATE_COUNT;
-+  GC_THREAD_STATE_T state;
-+  mach_msg_type_number_t thread_state_count = GC_MACH_THREAD_STATE_COUNT;
-   
-   me = pthread_self();
-   if (!GC_thr_initialized) GC_thr_init();
-@@ -128,11 +86,8 @@
-       lo = GC_approx_sp();
-       } else {
-       /* Get the thread state (registers, etc) */
--      r = thread_get_state(
--                           p->stop_info.mach_thread,
--                           MACHINE_THREAD_STATE,
--                           (natural_t*)&state,
--                           &thread_state_count);
-+      r = thread_get_state(p->stop_info.mach_thread, GC_MACH_THREAD_STATE,
-+                           (natural_t*)&state, &thread_state_count);
-       if(r != KERN_SUCCESS) ABORT("thread_get_state failed");
- 
- #if defined(I386)
-@@ -144,7 +99,33 @@
-       GC_push_one(state . THREAD_FLD (edx)); 
-       GC_push_one(state . THREAD_FLD (edi)); 
-       GC_push_one(state . THREAD_FLD (esi)); 
--      GC_push_one(state . THREAD_FLD (ebp)); 
-+      GC_push_one(state . THREAD_FLD (ebp));
++typedef struct shared_bitmap_info
++{
++  bitmap pt_vars;
++  hashval_t hashcode;
++} *shared_bitmap_info_t;
 +
-+#elif defined(X86_64)
-+      lo = (void*)state . THREAD_FLD (rsp);
++static htab_t shared_bitmap_table;
 +
-+      GC_push_one(state . THREAD_FLD (rax));
-+      GC_push_one(state . THREAD_FLD (rbx));
-+      GC_push_one(state . THREAD_FLD (rcx));
-+      GC_push_one(state . THREAD_FLD (rdx));
-+      GC_push_one(state . THREAD_FLD (rdi));
-+      GC_push_one(state . THREAD_FLD (rsi));
-+      GC_push_one(state . THREAD_FLD (rbp));
-+      GC_push_one(state . THREAD_FLD (rsp));
-+      GC_push_one(state . THREAD_FLD (r8));
-+      GC_push_one(state . THREAD_FLD (r9));
-+      GC_push_one(state . THREAD_FLD (r10));
-+      GC_push_one(state . THREAD_FLD (r11));
-+      GC_push_one(state . THREAD_FLD (r12));
-+      GC_push_one(state . THREAD_FLD (r13));
-+      GC_push_one(state . THREAD_FLD (r14));
-+      GC_push_one(state . THREAD_FLD (r15));
-+      GC_push_one(state . THREAD_FLD (rip));
-+      GC_push_one(state . THREAD_FLD (rflags));
-+      GC_push_one(state . THREAD_FLD (cs));
-+      GC_push_one(state . THREAD_FLD (fs));
-+      GC_push_one(state . THREAD_FLD (gs));
++/* Hash function for a shared_bitmap_info_t */
 +
- #elif defined(POWERPC)
-       lo = (void*)(state . THREAD_FLD (r1) - PPC_RED_ZONE_SIZE);
-         
-@@ -221,9 +202,9 @@
-       hi = (ptr_t)FindTopOfStack(0);
-       } else {
- #     if defined(__ppc__) || defined(__ppc64__)
--      THREAD_STATE info;
-+      GC_THREAD_STATE_T info;
-       mach_msg_type_number_t outCount = THREAD_STATE_MAX;
--      r = thread_get_state(thread, MACHINE_THREAD_STATE,
-+      r = thread_get_state(thread, GC_MACH_THREAD_STATE,
-                            (natural_t *)&info, &outCount);
-       if(r != KERN_SUCCESS) ABORT("task_get_state failed");
- 
-@@ -264,10 +245,10 @@
- #      else
-       /* FIXME: Remove after testing: */
-       WARN("This is completely untested and likely will not work\n", 0);
--      THREAD_STATE info;
-+      GC_THREAD_STATE_T info;
-       mach_msg_type_number_t outCount = THREAD_STATE_MAX;
--      r = thread_get_state(thread, MACHINE_THREAD_STATE,
--                           (natural_t *)&info, &outCount);
-+      r = thread_get_state(thread, GC_MACH_THREAD_STATE, (natural_t *)&info,
-+                           &outCount);
-       if(r != KERN_SUCCESS) ABORT("task_get_state failed");
- 
-       lo = (void*)info . THREAD_FLD (esp);
---- gcc-4.2.0/boehm-gc/dyn_load.c.org  2006-09-18 14:45:08.000000000 -0400
-+++ gcc-4.2.0/boehm-gc/dyn_load.c      2007-05-16 15:38:33.000000000 -0400
-@@ -1152,7 +1152,7 @@
- };
-     
- #ifdef DARWIN_DEBUG
--static const char *GC_dyld_name_for_hdr(struct mach_header *hdr) {
-+static const char *GC_dyld_name_for_hdr(const struct GC_MACH_HEADER *hdr) {
-     unsigned long i,c;
-     c = _dyld_image_count();
-     for(i=0;i<c;i++) if(_dyld_get_image_header(i) == hdr)
-@@ -1162,12 +1162,17 @@
- #endif
-         
- /* This should never be called by a thread holding the lock */
--static void GC_dyld_image_add(struct mach_header* hdr, unsigned long slide) {
-+static void GC_dyld_image_add(const struct GC_MACH_HEADER *hdr, intptr_t 
slide)
++static hashval_t
++shared_bitmap_hash (const void *p)
 +{
-     unsigned long start,end,i;
--    const struct section *sec;
-+    const struct GC_MACH_SECTION *sec;
-     if (GC_no_dls) return;
-     for(i=0;i<sizeof(GC_dyld_sections)/sizeof(GC_dyld_sections[0]);i++) {
--        sec = getsectbynamefromheader(
-+#   if defined (__LP64__)
-+      sec = getsectbynamefromheader_64(
-+#   else
-+      sec = getsectbynamefromheader(
-+#   endif
-             hdr,GC_dyld_sections[i].seg,GC_dyld_sections[i].sect);
-         if(sec == NULL || sec->size == 0) continue;
-         start = slide + sec->addr;
-@@ -1184,11 +1189,16 @@
- }
++  const shared_bitmap_info_t bi = (shared_bitmap_info_t) p;
++  return bi->hashcode;
++}
++
++/* Equality function for two shared_bitmap_info_t's. */
++
++static int
++shared_bitmap_eq (const void *p1, const void *p2)
++{
++  const shared_bitmap_info_t sbi1 = (shared_bitmap_info_t) p1;
++  const shared_bitmap_info_t sbi2 = (shared_bitmap_info_t) p2;
++  return bitmap_equal_p (sbi1->pt_vars, sbi2->pt_vars);
++}
++
++/* Lookup a bitmap in the shared bitmap hashtable, and return an already
++   existing instance if there is one, NULL otherwise.  */
++
++static bitmap
++shared_bitmap_lookup (bitmap pt_vars)
++{
++  void **slot;
++  struct shared_bitmap_info sbi;
++
++  sbi.pt_vars = pt_vars;
++  sbi.hashcode = bitmap_hash (pt_vars);
++  
++  slot = htab_find_slot_with_hash (shared_bitmap_table, &sbi,
++                                 sbi.hashcode, NO_INSERT);
++  if (!slot)
++    return NULL;
++  else
++    return ((shared_bitmap_info_t) *slot)->pt_vars;
++}
++
++
++/* Add a bitmap to the shared bitmap hashtable.  */
++
++static void
++shared_bitmap_add (bitmap pt_vars)
++{
++  void **slot;
++  shared_bitmap_info_t sbi = XNEW (struct shared_bitmap_info);
++  
++  sbi->pt_vars = pt_vars;
++  sbi->hashcode = bitmap_hash (pt_vars);
++  
++  slot = htab_find_slot_with_hash (shared_bitmap_table, sbi,
++                                 sbi->hashcode, INSERT);
++  gcc_assert (!*slot);
++  *slot = (void *) sbi;
++}
++
++
+ /* Set bits in INTO corresponding to the variable uids in solution set
+    FROM, which came from variable PTR.
+    For variables that are actually dereferenced, we also use type
+@@ -4460,7 +4529,9 @@
+         struct ptr_info_def *pi = get_ptr_info (p);
+         unsigned int i;
+         bitmap_iterator bi;
+-
++        bitmap finished_solution;
++        bitmap result;
++        
+         /* This variable may have been collapsed, let's get the real
+            variable.  */
+         vi = get_varinfo (find (vi->id));
+@@ -4492,10 +4563,20 @@
+         if (pi->pt_anything)
+           return false;
  
- /* This should never be called by a thread holding the lock */
--static void GC_dyld_image_remove(struct mach_header* hdr, unsigned long 
slide) {
-+static void GC_dyld_image_remove(const struct GC_MACH_HEADER *hdr,
-+                               intptr_t slide) {
-     unsigned long start,end,i;
--    const struct section *sec;
-+    const struct GC_MACH_SECTION *sec;
-     for(i=0;i<sizeof(GC_dyld_sections)/sizeof(GC_dyld_sections[0]);i++) {
--        sec = getsectbynamefromheader(
-+#   if defined (__LP64__)
-+      sec = getsectbynamefromheader_64(
-+#   else
-+      sec = getsectbynamefromheader(
-+#   endif
-             hdr,GC_dyld_sections[i].seg,GC_dyld_sections[i].sect);
-         if(sec == NULL || sec->size == 0) continue;
-         start = slide + sec->addr;
---- gcc-4.2.0/boehm-gc/include/private/gcconfig.h.org  2007-01-16 
14:44:17.000000000 -0500
-+++ gcc-4.2.0/boehm-gc/include/private/gcconfig.h      2007-05-16 
15:42:23.000000000 -0400
-@@ -302,7 +302,10 @@
- #   if defined(__ppc__)  || defined(__ppc64__)
- #    define POWERPC
- #    define mach_type_known
--#   elif defined(__i386__) || defined(__x86_64)
-+#   elif defined(__x86_64__)
-+#    define X86_64
-+#    define mach_type_known
-+#   elif defined(__i386__)
- #    define I386
- #    define mach_type_known
- #   endif
-@@ -791,7 +794,7 @@
- #     define DATAEND (_end)
- #   endif
- #   ifdef DARWIN
--#     if defined(__ppc64__) || defined(__x86_64)
-+#     if defined(__ppc64__)
- #       define ALIGNMENT 8
- #       define CPP_WORDSZ 64
- #     else
-@@ -800,7 +803,7 @@
- #     define OS_TYPE "DARWIN"
- #     define DYNAMIC_LOADING
-       /* XXX: see get_end(3), get_etext() and get_end() should not be used.
--         These aren't used when dyld support is enabled (it is by default) */
-+       These aren't used when dyld support is enabled (it is by default) */
- #     define DATASTART ((ptr_t) get_etext())
- #     define DATAEND  ((ptr_t) get_end())
- #     define STACKBOTTOM ((ptr_t) 0xc0000000)
-@@ -808,9 +811,9 @@
- #     define USE_MMAP_ANON
- #     define USE_ASM_PUSH_REGS
-       /* This is potentially buggy. It needs more testing. See the comments in
--         os_dep.c.  It relies on threads to track writes. */
-+       os_dep.c.  It relies on threads to track writes. */
- #     ifdef GC_DARWIN_THREADS
--/* #       define MPROTECT_VDB -- diabled for now.  May work for some apps. */
-+/*#       define MPROTECT_VDB -- diabled for now.  May work for some apps. */
- #     endif
- #     include <unistd.h>
- #     define GETPAGESIZE() getpagesize()
-@@ -822,7 +825,7 @@
-         __asm__ __volatile__ ("dcbtst 0,%0" : : "r" ((const void *) (x)))
- #     endif
-       /* There seems to be some issues with trylock hanging on darwin. This
--         should be looked into some more */
-+       should be looked into some more */
- #     define NO_PTHREAD_TRYLOCK
- #   endif
- #   ifdef FREEBSD
-@@ -1317,7 +1320,7 @@
- #     define DARWIN_DONT_PARSE_STACK
- #     define DYNAMIC_LOADING
-       /* XXX: see get_end(3), get_etext() and get_end() should not be used.
--        These aren't used when dyld support is enabled (it is by default) */
-+       These aren't used when dyld support is enabled (it is by default) */
- #     define DATASTART ((ptr_t) get_etext())
- #     define DATAEND  ((ptr_t) get_end())
- #     define STACKBOTTOM ((ptr_t) 0xc0000000)
-@@ -1325,15 +1328,15 @@
- #     define USE_MMAP_ANON
- #     define USE_ASM_PUSH_REGS
-       /* This is potentially buggy. It needs more testing. See the comments in
--        os_dep.c.  It relies on threads to track writes. */
-+       os_dep.c.  It relies on threads to track writes. */
- #     ifdef GC_DARWIN_THREADS
- /* #       define MPROTECT_VDB -- disabled for now.  May work for some apps. 
*/
- #     endif
- #     include <unistd.h>
- #     define GETPAGESIZE() getpagesize()
-       /* There seems to be some issues with trylock hanging on darwin. This
--         should be looked into some more */
--#      define NO_PTHREAD_TRYLOCK
-+       should be looked into some more */
-+#     define NO_PTHREAD_TRYLOCK
- #   endif /* DARWIN */
- # endif
+-        if (!pi->pt_vars)
+-          pi->pt_vars = BITMAP_GGC_ALLOC ();
++        finished_solution = BITMAP_GGC_ALLOC ();
++        set_uids_in_ptset (vi->decl, finished_solution, vi->solution);
++        result = shared_bitmap_lookup (finished_solution);
  
-@@ -1986,6 +1989,28 @@
- #         define PREFETCH_FOR_WRITE(x) __builtin_prefetch((x), 1)
- #     endif
- #   endif
-+#   ifdef DARWIN
-+#     define OS_TYPE "DARWIN"
-+#     define DARWIN_DONT_PARSE_STACK
-+#     define DYNAMIC_LOADING
-+      /* XXX: see get_end(3), get_etext() and get_end() should not be used.
-+       These aren't used when dyld support is enabled (it is by default) */
-+#     define DATASTART ((ptr_t) get_etext())
-+#     define DATAEND  ((ptr_t) get_end())
-+#     define STACKBOTTOM ((ptr_t) 0x7fff5fc00000)
-+#     define USE_MMAP
-+#     define USE_MMAP_ANON
-+#     ifdef GC_DARWIN_THREADS
-+       /* This is potentially buggy. It needs more testing. See the comments 
in
-+        os_dep.c.  It relies on threads to track writes. */
-+#       define MPROTECT_VDB
-+#     endif
-+#     include <unistd.h>
-+#     define GETPAGESIZE() getpagesize()
-+      /* There seems to be some issues with trylock hanging on darwin. This
-+       should be looked into some more */
-+#     define NO_PTHREAD_TRYLOCK
-+#   endif
- #   ifdef FREEBSD
- #     define OS_TYPE "FREEBSD"
- #     ifndef GC_FREEBSD_THREADS
---- gcc-4.2.0/boehm-gc/include/private/gc_priv.h.org   2006-01-24 
22:03:14.000000000 -0500
-+++ gcc-4.2.0/boehm-gc/include/private/gc_priv.h       2007-05-17 
16:37:16.000000000 -0400
-@@ -468,6 +468,53 @@
- #   define GETENV(name) 0
- #endif
+-        set_uids_in_ptset (vi->decl, pi->pt_vars, vi->solution);
++        if (!result)
++          {
++            shared_bitmap_add (finished_solution);
++            pi->pt_vars = finished_solution;
++          }
++        else
++          {
++            pi->pt_vars = result;
++            bitmap_clear (finished_solution);
++          }
  
-+#if defined(DARWIN)
-+#      if defined(POWERPC)
-+#              if CPP_WORDSZ == 32
-+#                define GC_THREAD_STATE_T ppc_thread_state_t
-+#               define GC_MACH_THREAD_STATE PPC_THREAD_STATE
-+#               define GC_MACH_THREAD_STATE_COUNT PPC_THREAD_STATE_COUNT
-+#                define GC_MACH_HEADER mach_header
-+#                define GC_MACH_SECTION section
-+#              else
-+#                define GC_THREAD_STATE_T ppc_thread_state64_t
-+#               define GC_MACH_THREAD_STATE PPC_THREAD_STATE64
-+#               define GC_MACH_THREAD_STATE_COUNT PPC_THREAD_STATE64_COUNT
-+#                define GC_MACH_HEADER mach_header_64
-+#                define GC_MACH_SECTION section_64
-+#              endif
-+#      elif defined(I386) || defined(X86_64)
-+#              if CPP_WORDSZ == 32
-+#                define GC_THREAD_STATE_T x86_thread_state32_t
-+#                define GC_MACH_THREAD_STATE x86_THREAD_STATE32
-+#                define GC_MACH_THREAD_STATE_COUNT x86_THREAD_STATE32_COUNT
-+#                define GC_MACH_HEADER mach_header
-+#                define GC_MACH_SECTION section
-+#              else
-+#                define GC_THREAD_STATE_T x86_thread_state64_t
-+#                define GC_MACH_THREAD_STATE x86_THREAD_STATE64
-+#                define GC_MACH_THREAD_STATE_COUNT x86_THREAD_STATE64_COUNT
-+#                define GC_MACH_HEADER mach_header_64
-+#                define GC_MACH_SECTION section_64
-+#              endif
-+#      else
-+#              error define GC_THREAD_STATE_T
-+#              define GC_MACH_THREAD_STATE MACHINE_THREAD_STATE
-+#              define GC_MACH_THREAD_STATE_COUNT MACHINE_THREAD_STATE_COUNT
-+#      endif
-+/* Try to work out the right way to access thread state structure members.
-+   The structure has changed its definition in different Darwin versions.
-+   This now defaults to the (older) names without __, thus hopefully,
-+   not breaking any existing Makefile.direct builds.  */
-+#      if defined (HAS_PPC_THREAD_STATE___R0) \
-+       || defined (HAS_PPC_THREAD_STATE64___R0) \
-+       || defined (HAS_X86_THREAD_STATE32___EAX) \
-+       || defined (HAS_X86_THREAD_STATE64___RAX)
-+#        define THREAD_FLD(x) __ ## x
-+#      else
-+#        define THREAD_FLD(x) x
-+#      endif
-+#endif
- /*********************************/
- /*                               */
- /* Word-size-dependent defines   */
---- gcc-4.2.0/boehm-gc/os_dep.c.org    2007-01-16 14:44:17.000000000 -0500
-+++ gcc-4.2.0/boehm-gc/os_dep.c        2007-05-17 16:37:28.000000000 -0400
-@@ -3371,7 +3371,7 @@
-       1. Apple's mach/xnu documentation
-       2. Timothy J. Wood's "Mach Exception Handlers 101" post to the
-          omnigroup's macosx-dev list. 
--         www.omnigroup.com/mailman/archive/macosx-dev/2000-June/002030.html
-+         www.omnigroup.com/mailman/archive/macosx-dev/2000-June/014178.html
-       3. macosx-nat.c from Apple's GDB source code.
- */
-    
-@@ -3683,7 +3683,7 @@
-         mask,
-         GC_ports.exception,
-         EXCEPTION_DEFAULT,
--        MACHINE_THREAD_STATE
-+        GC_MACH_THREAD_STATE
-     );
-     if(r != KERN_SUCCESS) ABORT("task_set_exception_ports failed");
+         if (bitmap_empty_p (pi->pt_vars))
+           pi->pt_vars = NULL;
+@@ -4691,6 +4772,8 @@
+   vi_for_tree = pointer_map_create ();
  
-@@ -3802,10 +3802,16 @@
-         mach_msg_type_number_t exc_state_count = PPC_EXCEPTION_STATE64_COUNT;
-         ppc_exception_state64_t exc_state;
- #     endif
--#   elif defined(I386)
--        thread_state_flavor_t flavor = i386_EXCEPTION_STATE;
--        mach_msg_type_number_t exc_state_count = i386_EXCEPTION_STATE_COUNT;
--        i386_exception_state_t exc_state;
-+#   elif defined(I386) || defined(X86_64)
-+#     if CPP_WORDSZ == 32
-+      thread_state_flavor_t flavor = x86_EXCEPTION_STATE32;
-+      mach_msg_type_number_t exc_state_count = x86_EXCEPTION_STATE32_COUNT;
-+      x86_exception_state32_t exc_state;
-+#     else
-+      thread_state_flavor_t flavor = x86_EXCEPTION_STATE64;
-+      mach_msg_type_number_t exc_state_count = x86_EXCEPTION_STATE64_COUNT;
-+      x86_exception_state64_t exc_state;
-+#     endif
- #   else
- #     error FIXME for non-ppc darwin
- #   endif
-@@ -3838,9 +3844,9 @@
-     
-     /* This is the address that caused the fault */
- #if defined(POWERPC)
--    addr = (char*) exc_state.dar;
--#elif defined (I386)
--    addr = (char*) exc_state.faultvaddr;
-+    addr = (char*) exc_state. THREAD_FLD(dar);
-+#elif defined (I386) || defined (X86_64)
-+    addr = (char*) exc_state. THREAD_FLD(faultvaddr);
- #else
- #   error FIXME for non POWERPC/I386
- #endif
---- gcc-4.2.0/libgomp/testsuite/libgomp.c++/pr30703.C.org      2007-02-07 
08:37:29.000000000 -0500
-+++ gcc-4.2.0/libgomp/testsuite/libgomp.c++/pr30703.C  2007-05-17 
19:48:03.000000000 -0400
-@@ -1,5 +1,6 @@
- // PR c++/30703
- // { dg-do run }
-+// { dg-options "-shared-libgcc" { target *-*-darwin* } }
+   memset (&stats, 0, sizeof (stats));
++  shared_bitmap_table = htab_create (511, shared_bitmap_hash,
++                                   shared_bitmap_eq, free);
+   init_base_vars ();
+ }
  
- #include <omp.h>
+@@ -4923,6 +5006,7 @@
+   varinfo_t v;
+   int i;
  
-
-                
++  htab_delete (shared_bitmap_table);
+   if (dump_file && (dump_flags & TDF_STATS))
+     fprintf (dump_file, "Points to sets created:%d\n",
+            stats.points_to_sets_created);


-------------------------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc.
Still grepping through log files to find problems?  Stop.
Now Search log events and configuration files using AJAX and a browser.
Download your FREE copy of Splunk now >>  http://get.splunk.com/
_______________________________________________
Fink-commits mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/fink-commits

Reply via email to