aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlan Modra <amodra@gmail.com>2020-02-10 11:27:16 +1030
committerAlan Modra <amodra@gmail.com>2020-02-10 15:28:23 +1030
commit821948744f578be38aade35ae6db7deecb4ee7be (patch)
tree63c6964595a2ef911ad62a7ce022816fc50214aa
parente1f85e11f5875ac00a4b41f0ac45f1ba16fe5aed (diff)
downloadfsf-binutils-gdb-821948744f578be38aade35ae6db7deecb4ee7be.zip
fsf-binutils-gdb-821948744f578be38aade35ae6db7deecb4ee7be.tar.gz
fsf-binutils-gdb-821948744f578be38aade35ae6db7deecb4ee7be.tar.bz2
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.
-rw-r--r--gas/ChangeLog7
-rw-r--r--gas/output-file.c2
-rw-r--r--gas/write.c2
3 files changed, 9 insertions, 2 deletions
diff --git a/gas/ChangeLog b/gas/ChangeLog
index 1cc473b..4c60d86 100644
--- a/gas/ChangeLog
+++ b/gas/ChangeLog
@@ -1,3 +1,10 @@
+2020-02-10 Alan Modra <amodra@gmail.com>
+
+ * 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 <sergey.belyashov@gmail.com>
PR 25469
diff --git a/gas/output-file.c b/gas/output-file.c
index 1781d82..5735981 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 5d9a239..dfbbc7c 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