]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
aix: collect2 text files in archive
authorDavid Edelsohn <dje.gcc@gmail.com>
Thu, 20 May 2021 18:07:18 +0000 (14:07 -0400)
committerDavid Edelsohn <dje.gcc@gmail.com>
Tue, 6 Jul 2021 19:12:39 +0000 (15:12 -0400)
Rust places text files in archives.  AIX ld ignores such files with a
warning.  The collect2 wrapper for ld had been exiting with a fatal
error if it scanned an archive that contained a non-COFF file.

This patch updates collect2.c to issue a warning and ignore the file
member, matching the behavior of AIX ld.  GCC can encounter archives
created by Rust and should not issue a fatal error.  This changes
fatal_error to warning, with an implicit location and no associated
optimization flag.

gcc/ChangeLog:

2021-05-20  Clement Chigot  <clement.chigot@atos.net>
    David Edelsohn  <dje.gcc@gmail.com>

* collect2.c (scan_prog_file): Issue non-fatal warning for
non-COFF files.

(cherry picked from commit 5a3bf28119c7a8d2d43d26b5eee588ee0e4472e5)

gcc/collect2.c

index bd371430ab7ba52cfa2f11328be4293a818aed35..0c8af29879da0a69c8aa08dfb1a04d8f4334962e 100644 (file)
@@ -2783,7 +2783,10 @@ scan_prog_file (const char *prog_name, scanpass which_pass,
       if ((ldptr = ldopen (CONST_CAST (char *, prog_name), ldptr)) != NULL)
        {
          if (! MY_ISCOFF (HEADER (ldptr).f_magic))
-           fatal_error (input_location, "%s: not a COFF file", prog_name);
+           {
+             warning (0, "%s: not a COFF file", prog_name);
+             continue;
+           }
 
          if (GCC_CHECK_HDR (ldptr))
            {