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)
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))
{