summaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/collect2.c5
-rw-r--r--gcc/gcc.c5
3 files changed, 8 insertions, 7 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 3a8ac5440a8..31b4ad7c37f 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,5 +1,10 @@
2009-10-07 Jan Hubicka <jh@suse.cz>
+ * collect2.c (main): Add -fno-whole-program.
+ * gcc.c (set_collect_gcc_options): Do not remove whole program here.
+
+2009-10-07 Jan Hubicka <jh@suse.cz>
+
* lto-symtab.c (lto_cgraph_replace_node): Assert that inline clones has
no address taken.
* cgraph.c (cgraph_mark_needed_node): Assert that inline clones are
diff --git a/gcc/collect2.c b/gcc/collect2.c
index 20caa451f89..01ef4317379 100644
--- a/gcc/collect2.c
+++ b/gcc/collect2.c
@@ -1271,8 +1271,8 @@ main (int argc, char **argv)
obstack_free (&temporary_obstack, temporary_firstobj);
/* -fno-profile-arcs -fno-test-coverage -fno-branch-probabilities
- -fno-exceptions -w */
- num_c_args += 5;
+ -fno-exceptions -w -fno-whole-program */
+ num_c_args += 6;
c_argv = XCNEWVEC (char *, num_c_args);
c_ptr = CONST_CAST2 (const char **, char **, c_argv);
@@ -1440,6 +1440,7 @@ main (int argc, char **argv)
*c_ptr++ = "-fno-branch-probabilities";
*c_ptr++ = "-fno-exceptions";
*c_ptr++ = "-w";
+ *c_ptr++ = "-fno-whole-program";
/* !!! When GCC calls collect2,
it does not know whether it is calling collect2 or ld.
diff --git a/gcc/gcc.c b/gcc/gcc.c
index 033c99fbecc..d94462d9ac5 100644
--- a/gcc/gcc.c
+++ b/gcc/gcc.c
@@ -4636,11 +4636,6 @@ set_collect_gcc_options (void)
if ((switches[i].live_cond & SWITCH_IGNORE) != 0)
continue;
- /* Don't use -fwhole-program when compiling the init and fini routines,
- since we'd wrongly assume that the routines aren't needed. */
- if (strcmp (switches[i].part1, "fwhole-program") == 0)
- continue;
-
obstack_grow (&collect_obstack, "'-", 2);
q = switches[i].part1;
while ((p = strchr (q, '\'')))