diff options
author | Alan Modra <amodra@gmail.com> | 2020-02-10 11:27:16 +1030 |
---|---|---|
committer | Alan Modra <amodra@gmail.com> | 2020-02-10 15:28:23 +1030 |
commit | 821948744f578be38aade35ae6db7deecb4ee7be (patch) | |
tree | 63c6964595a2ef911ad62a7ce022816fc50214aa /gas | |
parent | e1f85e11f5875ac00a4b41f0ac45f1ba16fe5aed (diff) | |
download | gdb-821948744f578be38aade35ae6db7deecb4ee7be.zip gdb-821948744f578be38aade35ae6db7deecb4ee7be.tar.gz 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.
Diffstat (limited to 'gas')
-rw-r--r-- | gas/ChangeLog | 7 | ||||
-rw-r--r-- | gas/output-file.c | 2 | ||||
-rw-r--r-- | gas/write.c | 2 |
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 |