This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: [PATCH] Fix PR33608, bootstrap failure with ia64 and ada
On Mon, 22 Oct 2007, Eric Botcazou wrote:
> > 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.
>
> Thanks for investigating this. I think that we can get away on the Ada side
> by using the same kludge in tb-gcc.c as in raise-gcc.c:
>
> /* We don't want fancy_abort here. */
> #undef abort
>
>
> If that works for you, please install it.
As tb-gcc.c is only included from tracebak.c a better place to #undef
abort is probably there.
Like the following. Ok if this passes?
Thanks,
Richard.
Index: tracebak.c
===================================================================
--- tracebak.c (revision 129547)
+++ tracebak.c (working copy)
@@ -57,6 +57,8 @@
#else
#include "config.h"
#include "system.h"
+/* We don't want fancy_abort here. */
+#undef abort
#endif
extern int __gnat_backtrace (void **, int, void *, void *, int);