(new) Failure building GFortran (Cygwin)

Angelo Graziosi angelo.graziosi@alice.it
Mon Jul 7 23:15:00 GMT 2008


Ian Lance Taylor wrote:
> It's valid, but it's not the right patch.  The right patch is to use
> XNEW and XCNEW from include/libiberty.h.
>

Gabriel Dos Reis in [1] wrote:
 > The idiom is to use  XCNEWVAR(T) for xcalloc(1, sizeof(T)),
 > XNEWVAR(T) for xmalloc(sizeof(T)),...


Gulp! I am a little confused... XNEW or XNEWVAR, etc.?


In any case, my opinion is that this should solve:

--- gcc-4.4-20080704.orig/gcc/ggc-page.c 2008-06-29 06:39:16.000000000 +0200
+++ gcc-4.4-20080704/gcc/ggc-page.c 2008-07-05 12:00:20.906250000 +0200
@@ -799,7 +799,7 @@
  	alloc_size = GGC_QUIRE_SIZE * G.pagesize;
        else
  	alloc_size = entry_size + G.pagesize - 1;
-      allocation = xmalloc (alloc_size);
+      allocation = XNEWVAR(char, alloc_size);

        page = (char *) (((size_t) allocation + G.pagesize - 1) & 
-G.pagesize);
        head_slop = page - allocation;
@@ -842,7 +842,7 @@
  	  struct page_entry *e, *f = G.free_pages;
  	  for (a = enda - G.pagesize; a != page; a -= G.pagesize)
  	    {
-	      e = xcalloc (1, page_entry_size);
+	      e = XCNEWVAR(struct page_entry, page_entry_size);
  	      e->order = order;
  	      e->bytes = G.pagesize;
  	      e->page = a;

What do you think?


Cheers,
    Angelo.

---
[1] http://gcc.gnu.org/ml/gcc/2008-07/msg00133.html



More information about the Gcc mailing list