------- Additional Comments From dannysmith at users dot sourceforge dot net  
2005-03-01 04:49 -------
The problem appears to be that the file stage1/ada/b_gnatb.c built by the 
bootstrap gnatbind doesn't define the ponter to the exception registration 
structure (SEH).  This :

int SEH [2];

and
 __gnat_initialize ((void *)SEH);

should be generated (and is in stage2 ) by the new bindgen.adb but the old 
gnatbind doesn't have that.

I was able to get bootstap to complete by this hack to ada/init.c

*** init.c.orig Fri Feb 25 19:57:42 2005
--- init.c      Mon Feb 28 22:18:39 2005
*************** __gnat_initialize (void *eh ATTRIBUTE_UN
*** 836,842 ****
     __gnat_plist_init();
  
     /* Install the Structured Exception handler.  */
!    if (eh)
       __gnat_install_SEH_handler (eh);
  }
  
--- 836,842 ----
     __gnat_plist_init();
  
     /* Install the Structured Exception handler.  */
!    if (eh && eh != (void*)((DWORD)-1))
       __gnat_install_SEH_handler (eh);
  }
  

(gdb said that the ER was 0xffffffff. Setting *ER caused the segfault.

Must be a better way).


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=20226

Reply via email to