gas -Z flag
Alan Modra
amodra@gmail.com
Mon Feb 10 04:14:00 GMT 2020
-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 might 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/output-file.c b/gas/output-file.c
index 1781d82f22..573598101c 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 5d9a239422..dfbbc7cb9b 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
--
Alan Modra
Australia Development Lab, IBM
More information about the Binutils
mailing list