This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[PATCH] Fix PR33608, bootstrap failure with ia64 and ada


The following fixes PR33608 where we end up installing an unwind.h header
that contains a call to abort () which we re-define inside gcc.  It 
happens that ada somewhere includes this re-define without linking to
an object that provides fancy_abort, so we'll fail bootstrap with

gcc -static-libgcc  -o gnatbind ... ../libcpp/libcpp.a   
../libiberty/libiberty.a ../libdecnumber/libdecnumber.a
-lmpfr -lgmp
ada/tracebak.o: In function `_Unwind_GetTextRelBase':
/usr/lib/gcc/ia64-suse-linux/4.3.0/include/unwind.h:229: undefined 
reference to
`fancy_abort'
collect2: ld returned 1 exit status
make[3]: *** [gnatbind] Error 1

fixed by avoiding macro-expansion in unwind-generic.h.

Bootstrapped on ia64-unknown-linux-gnu.  I'll wait a day for naysayers
or for Ada people to step up and figure out what they are doing wrong.

Thanks,
Richard.

2007-10-22  Richard Guenther  <rguenther@suse.de>

	PR bootstrap/33608
	* unwind-generic.h (_Unwind_GetTextRelBase): Avoid macro expansion
	of the call to abort.

Index: unwind-generic.h
===================================================================
*** unwind-generic.h	(revision 129547)
--- unwind-generic.h	(working copy)
*************** _Unwind_GetDataRelBase (struct _Unwind_C
*** 226,232 ****
  static inline _Unwind_Ptr
  _Unwind_GetTextRelBase (struct _Unwind_Context *_C __attribute__ ((__unused__)))
  {
!   abort ();
    return 0;
  }
  
--- 226,232 ----
  static inline _Unwind_Ptr
  _Unwind_GetTextRelBase (struct _Unwind_Context *_C __attribute__ ((__unused__)))
  {
!   (abort) ();
    return 0;
  }
  


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]