diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index b12b46590c6ce0a87134cc4e6d4fea5b84116814..95a808c36eefc4e52670707ffec9fa72c2d69076 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,9 @@
+2013-02-03  David Edelsohn  <dje.gcc@gmail.com>
+	    Andrew Dixie  <andrewd@gentrack.com>
+
+	* collect2.c (GCC_CHECK_HDR): Do not scan objects with F_LOADONLY
+	flag set.
+
 2013-02-03  Richard Sandiford  <rdsandiford@googlemail.com>
 
 	* expmed.c (extract_bit_field_1): Pass the full width of the
diff --git a/gcc/collect2.c b/gcc/collect2.c
index 93a8429d226ae888216cf6d0a03ddeeb02b69239..0db908f2636d5f4ab4b4c1648370e844a4543f2b 100644
--- a/gcc/collect2.c
+++ b/gcc/collect2.c
@@ -2763,12 +2763,14 @@ scan_libraries (const char *prog_name)
 /* 0757 = U803XTOCMAGIC (AIX 4.3) and 0767 = U64_TOCMAGIC (AIX V5) */
 #if TARGET_AIX_VERSION >= 51
 #   define GCC_CHECK_HDR(X) \
-     ((HEADER (X).f_magic == U802TOCMAGIC && ! aix64_flag) \
-      || (HEADER (X).f_magic == 0767 && aix64_flag))
+     (((HEADER (X).f_magic == U802TOCMAGIC && ! aix64_flag) \
+       || (HEADER (X).f_magic == 0767 && aix64_flag)) \
+      && !(HEADER (X).f_flags & F_LOADONLY))
 #else
 #   define GCC_CHECK_HDR(X) \
-     ((HEADER (X).f_magic == U802TOCMAGIC && ! aix64_flag) \
-      || (HEADER (X).f_magic == 0757 && aix64_flag))
+     (((HEADER (X).f_magic == U802TOCMAGIC && ! aix64_flag) \
+       || (HEADER (X).f_magic == 0757 && aix64_flag)) \
+      && !(HEADER (X).f_flags & F_LOADONLY))
 #endif
 
 #endif