From: Alan Modra Date: Mon, 10 Feb 2020 00:57:16 +0000 (+1030) Subject: gas -Z flag X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=821948744f578be38aade35ae6db7deecb4ee7be;p=binutils-gdb.git gas -Z flag -Z is supposed to "generate object file even after errors". It doesn't do so at the moment, unless you count a zero length object file as useful output. Fixed for most targets as follows. I suspect avr and pru need target patches. * output-file.c (output_file_close): Do a normal close when flag_always_generate_output. * write.c (write_object_file): Don't stop output when flag_always_generate_output. --- diff --git a/gas/ChangeLog b/gas/ChangeLog index 1cc473b49f3..4c60d86a66e 100644 --- a/gas/ChangeLog +++ b/gas/ChangeLog @@ -1,3 +1,10 @@ +2020-02-10 Alan Modra + + * output-file.c (output_file_close): Do a normal close when + flag_always_generate_output. + * write.c (write_object_file): Don't stop output when + flag_always_generate_output. + 2020-02-07 Sergey Belyashov PR 25469 diff --git a/gas/output-file.c b/gas/output-file.c index 1781d82f22a..573598101c3 100644 --- a/gas/output-file.c +++ b/gas/output-file.c @@ -58,7 +58,7 @@ output_file_close (const char *filename) return; /* Close the bfd. */ - if (had_errors ()) + if (!flag_always_generate_output && had_errors ()) res = bfd_cache_close_all (); else res = bfd_close (stdoutput); diff --git a/gas/write.c b/gas/write.c index 5d9a2394224..dfbbc7cb9be 100644 --- a/gas/write.c +++ b/gas/write.c @@ -2429,7 +2429,7 @@ write_object_file (void) #endif /* Stop if there is an error. */ - if (had_errors ()) + if (!flag_always_generate_output && had_errors ()) return; /* Now that all the sizes are known, and contents correct, we can