diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index e52316ab80139280cd58681e9e9e9e4ee3b5a4ab..faad0a788e8fdf33e3f6d8e2b51a30ce5565430d 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,9 @@
+2010-11-30  Richard Guenther  <rguenther@suse.de>
+
+	PR lto/44986
+	* gcc.c (main): Use the first input with a compiler as infile
+	for link spec processing.
+
 2010-11-30  Richard Guenther  <rguenther@suse.de>
 
 	PR lto/45949
diff --git a/gcc/gcc.c b/gcc/gcc.c
index 1e525b53c3048859be7d4d4b21185f9ce0adb6ed..d6f0a0812f6685cba2190623253153d204315d82 100644
--- a/gcc/gcc.c
+++ b/gcc/gcc.c
@@ -6739,7 +6739,8 @@ warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n\n"
       int i;
 
       for (i = 0; i < n_infiles ; i++)
-	if (infiles[i].language && infiles[i].language[0] != '*')
+	if (infiles[i].incompiler
+	    || (infiles[i].language && infiles[i].language[0] != '*'))
 	  {
 	    set_input (infiles[i].name);
 	    break;