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]

[committed] unwind info and partitioning conflict


This is for PR 24934, which reports that profilebootstrap fails on an
IA-64 machine.  It fails with an assembler abort.  I fixed the assembler
so it wouldn't abort, but now we get an assembler error, and the
compiler has to be fixed to avoid this.

The underlying problem here is that the hot/cold partitioning stuff
doesn't support generation of unwind info.  It is disabled by default if
-fexceptions is on.  However, there are other ways to ask the compiler
for unwind info, and we need to handle them also.  We need to check for
the case where the user specifies -funwind-tables.  Also, IA-64 defaults
to flag_unwind_table true, so we need to check for that also.  I believe
this covers every possible case, since anything that wants unwind info
will either set flag_exceptions or flg_unwind_tables.

I'm emitting 3 different messages here, as I think this makes things
clearer for the end user.  So we get one message for C++ where exception
are enabled by default, a second message for IA-64 where unwind info is
enabled by default, and a third message if the user manually adds
-funwind-tables to the command line.

This was tested with an IA-64 profilebootstrap.  It fails without the
patch.  It works with the patch.  I also did a make check and the
results looked OK.

I have added this patch to mainline and the gcc-4.1 branch.
-- 
Jim Wilson, GNU Tools Support, http://www.specifix.com

Attachment: patch.unwind.partition
Description: Text document


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