Patchwork [ia64,libgcc] Patch to fix libunwind build on IA64

login
register
mail settings
Submitter Steve Ellcey
Date Nov. 18, 2011, 5:24 p.m.
Message ID <201111181724.pAIHOMd10963@adlwrk05.cce.hp.com>
Download mbox | patch
Permalink /patch/126455/
State New
Headers show

Comments

Steve Ellcey - Nov. 18, 2011, 5:24 p.m.
This patch fixes the IA64 bootstrap when building libunwind.  When using
-fexceptions libunwind will have a reference to __gcc_personality_v0 and
the bootstrap fails, using -fno-exceptions fixes this.  This problem
started with r181172, Michael Matz's fix to mark objects death at end of
scope.

Tested on IA64 HP-UX and Linux.

While this change isn't in an ia64 specific file, ia64 is the only
platform affected because no other platform defines LIBUNWIND in order
to build a separate unwind library.  So I will go ahead and check it in
if there are no objections.

Steve Ellcey
sje@cup.hp.com


2011-11-18  Steve Ellcey  <sje@cup.hp.com>

	* Makefile.in (c_flags): Set to -fno-exceptions to build libunwind.
Michael Matz - Nov. 18, 2011, 5:26 p.m.
Hi,

On Fri, 18 Nov 2011, Steve Ellcey wrote:

> This patch fixes the IA64 bootstrap when building libunwind.  When using
> -fexceptions libunwind will have a reference to __gcc_personality_v0 and
> the bootstrap fails, using -fno-exceptions fixes this.  This problem
> started with r181172, Michael Matz's fix to mark objects death at end of
> scope.
> 
> Tested on IA64 HP-UX and Linux.

Oh, so you don't even need -fasynchronous-unwind-tables?  Even better then 
:)


Ciao,
Michael.
Rainer Orth - Nov. 18, 2011, 5:37 p.m.
Steve Ellcey <sje@cup.hp.com> writes:

> This patch fixes the IA64 bootstrap when building libunwind.  When using
> -fexceptions libunwind will have a reference to __gcc_personality_v0 and
> the bootstrap fails, using -fno-exceptions fixes this.  This problem
> started with r181172, Michael Matz's fix to mark objects death at end of
> scope.
>
> Tested on IA64 HP-UX and Linux.
>
> While this change isn't in an ia64 specific file, ia64 is the only
> platform affected because no other platform defines LIBUNWIND in order
> to build a separate unwind library.  So I will go ahead and check it in
> if there are no objections.

I think there should be a comment explaining this to avoid involuntarily
breaking this in the future ;-)

Thanks.
        Rainer
Steve Ellcey - Nov. 18, 2011, 5:41 p.m.
On Fri, 2011-11-18 at 18:26 +0100, Michael Matz wrote:
> Hi,
> 
> On Fri, 18 Nov 2011, Steve Ellcey wrote:
> 
> > This patch fixes the IA64 bootstrap when building libunwind.  When using
> > -fexceptions libunwind will have a reference to __gcc_personality_v0 and
> > the bootstrap fails, using -fno-exceptions fixes this.  This problem
> > started with r181172, Michael Matz's fix to mark objects death at end of
> > scope.
> > 
> > Tested on IA64 HP-UX and Linux.
> 
> Oh, so you don't even need -fasynchronous-unwind-tables?  Even better then 
> :)
> 
> 
> Ciao,
> Michael.

Didn't seem to.  Do you know of any special tests I should check and/or
run.  I didn't see any problems in the GCC test suite after the
bootstrap.

Steve Ellcey
sje@cup.hp.com
Michael Matz - Nov. 21, 2011, 11:29 a.m.
Hi,

On Fri, 18 Nov 2011, Steve Ellcey wrote:

> > Oh, so you don't even need -fasynchronous-unwind-tables?  Even better 
> > then
> > :)
> 
> Didn't seem to.  Do you know of any special tests I should check and/or 
> run.

No.

> I didn't see any problems in the GCC test suite after the bootstrap.

Should be sufficient, there are enough exception related tests in the 
suite.


Ciao,
Michael.

Patch

Index: Makefile.in
===================================================================
--- Makefile.in	(revision 181466)
+++ Makefile.in	(working copy)
@@ -829,7 +829,7 @@  endif
 
 # Build LIBUNWIND.
 
-c_flags := -fexceptions
+c_flags := -fno-exceptions
 
 libunwind-objects += $(addsuffix $(objext),$(basename $(notdir $(LIBUNWIND))))