From: James E Wilson Date: Tue, 6 Dec 2005 05:31:39 +0000 (-0800) Subject: re PR target/24934 (profilebootstrap failure) X-Git-Tag: releases/gcc-4.2.0~5553 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=e395963ff613e9e6b497466bd9b49c6a3eb2f1eb;p=thirdparty%2Fgcc.git re PR target/24934 (profilebootstrap failure) PR target/24934 * opts.c (decode_options): Turn off partitioning if flag_unwind_tables is set. From-SVN: r108103 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 0bc88d3cca6f..7edad6f740c9 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2005-12-05 James E Wilson + + PR target/24934 + * opts.c (decode_options): Turn off partitioning if flag_unwind_tables + is set. + 2005-12-05 Daniel Berlin * print-tree.c (print_node): Ditto. diff --git a/gcc/opts.c b/gcc/opts.c index 7edaeac5b53e..776ce73f3c5f 100644 --- a/gcc/opts.c +++ b/gcc/opts.c @@ -675,7 +675,8 @@ decode_options (unsigned int argc, const char **argv) /* The optimization to partition hot and cold basic blocks into separate sections of the .o and executable files does not work (currently) - with exception handling. If flag_exceptions is turned on we need to + with exception handling. This is because there is no support for + generating unwind info. If flag_exceptions is turned on we need to turn off the partitioning optimization. */ if (flag_exceptions && flag_reorder_blocks_and_partition) @@ -686,8 +687,24 @@ decode_options (unsigned int argc, const char **argv) flag_reorder_blocks = 1; } + /* If user requested unwind info, then turn off the partitioning + optimization. */ + + if (flag_unwind_tables && ! targetm.unwind_tables_default + && flag_reorder_blocks_and_partition) + { + inform ("-freorder-blocks-and-parition does not support unwind info"); + flag_reorder_blocks_and_partition = 0; + flag_reorder_blocks = 1; + } + + /* If the target requested unwind info, then turn off the partitioning + optimization with a different message. Likewise, if the target does not + support named sections. */ + if (flag_reorder_blocks_and_partition - && !targetm.have_named_sections) + && (!targetm.have_named_sections + || (flag_unwind_tables && targetm.unwind_tables_default))) { inform ("-freorder-blocks-and-partition does not work on this architecture");