From 3bf65591cbad61e4505105e788456103ce674ea8 Mon Sep 17 00:00:00 2001
From: David Edelsohn <dje.gcc@gmail.com>
Date: Sun, 3 Feb 2013 14:36:25 +0000
Subject: [PATCH] collect2.c (GCC_CHECK_HDR): Do not scan objects with
 F_LOADONLY flag set.

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.

Co-Authored-By: Andrew Dixie <andrewd@gentrack.com>

From-SVN: r195696
---
 gcc/ChangeLog  |  6 ++++++
 gcc/collect2.c | 10 ++++++----
 2 files changed, 12 insertions(+), 4 deletions(-)

diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index b12b46590c6c..95a808c36eef 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 93a8429d226a..0db908f2636d 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
-- 
GitLab