aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorMark Mitchell <mark@codesourcery.com>2009-11-04 15:47:00 +0000
committerNathan Sidwell <nathan@gcc.gnu.org>2009-11-04 15:47:00 +0000
commit7d6ce94a23b0a7c6398faf7cf6aa515813fde153 (patch)
treed5f60b19d9114f3dc2d743b3cbee84d72a48ad9a /gcc
parent1cddcdcac5828432683a159f43534e09606688f4 (diff)
downloadgcc-7d6ce94a23b0a7c6398faf7cf6aa515813fde153.zip
gcc-7d6ce94a23b0a7c6398faf7cf6aa515813fde153.tar.gz
gcc-7d6ce94a23b0a7c6398faf7cf6aa515813fde153.tar.bz2
re PR driver/11810 (gcc -pipe -ox.o -c x.c writes erroneous x.o on compile error)
PR driver/11810 * gcc.c (SWITCHES_NEED_SPACES): Define to "o". * config/alpha/osf.h (SWITCHES_NEED_SPACES): Remove here. * config/mips/iris.h (SWITCHES_NEED_SPACES): Remove here. From-SVN: r153900
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog7
-rw-r--r--gcc/config/alpha/osf.h4
-rw-r--r--gcc/config/mips/iris.h3
-rw-r--r--gcc/gcc.c10
4 files changed, 15 insertions, 9 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 1367409..b9735ef 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,10 @@
+2009-11-03 Mark Mitchell <mark@codesourcery.com>
+
+ PR driver/11810
+ * gcc.c (SWITCHES_NEED_SPACES): Define to "o".
+ * config/alpha/osf.h (SWITCHES_NEED_SPACES): Remove here.
+ * config/mips/iris.h (SWITCHES_NEED_SPACES): Remove here.
+
2009-11-04 Richard Earnshaw <rearnsha@arm.com>
PR target/40835
diff --git a/gcc/config/alpha/osf.h b/gcc/config/alpha/osf.h
index 2b5165c..81c12aa 100644
--- a/gcc/config/alpha/osf.h
+++ b/gcc/config/alpha/osf.h
@@ -167,10 +167,6 @@ __enable_execute_stack (void *addr) \
#define LD_INIT_SWITCH "-init"
#define LD_FINI_SWITCH "-fini"
-/* The linker needs a space after "-o". This allows -oldstyle_liblookup to
- be passed to ld. */
-#define SWITCHES_NEED_SPACES "o"
-
/* Select a format to encode pointers in exception handling data. CODE
is 0 for data, 1 for code labels, 2 for function pointers. GLOBAL is
true if the symbol may be affected by dynamic relocations.
diff --git a/gcc/config/mips/iris.h b/gcc/config/mips/iris.h
index fce8217..373691e 100644
--- a/gcc/config/mips/iris.h
+++ b/gcc/config/mips/iris.h
@@ -63,9 +63,6 @@ along with GCC; see the file COPYING3. If not see
#undef ASM_FINISH_DECLARE_OBJECT
#define ASM_FINISH_DECLARE_OBJECT mips_finish_declare_object
-/* The linker needs a space after "-o". */
-#define SWITCHES_NEED_SPACES "o"
-
/* Specify wchar_t types. */
#undef WCHAR_TYPE
#define WCHAR_TYPE (Pmode == DImode ? "int" : "long int")
diff --git a/gcc/gcc.c b/gcc/gcc.c
index b033d62..0f74dd0 100644
--- a/gcc/gcc.c
+++ b/gcc/gcc.c
@@ -684,9 +684,15 @@ proper position among the other output files. */
#endif
/* config.h can define SWITCHES_NEED_SPACES to control which options
- require spaces between the option and the argument. */
+ require spaces between the option and the argument.
+
+ We define SWITCHES_NEED_SPACES to include "o" by default. This
+ causes "-ofoo.o" to be split into "-o foo.o" during the initial
+ processing of the command-line, before being seen by the specs
+ machinery. This makes sure we record "foo.o" as the temporary file
+ to be deleted in the case of error, rather than "-ofoo.o". */
#ifndef SWITCHES_NEED_SPACES
-#define SWITCHES_NEED_SPACES ""
+#define SWITCHES_NEED_SPACES "o"
#endif
/* config.h can define ENDFILE_SPEC to override the default crtn files. */