PATCH: Return NULL on NULL bfd (Problem with linker with binutils-040414)

Nick Clifton nickc@redhat.com
Wed Apr 21 12:26:00 GMT 2004


Hi Dave,

>  Well, there's *two* errors here; one is an error that is predictable and
>handled gracefully by bfd, which tries to display a message; the other is an
>internal coding error in the bfd library, which can't be handled.  So rather
>than saying that the 'actual' error message isn't displayed, I'd rather
>suggest that in the abort case it is the 'most serious' error message that
>gets displayed.  
>
Well except that in the abort case no real error message is displayed.  
(I discount the abort message because that does not tell the user 
anything about what is going wrong, other than the fact that the BFD 
library is broken).

>And I'd also point out that if you return a 'bogus'
>filename, what subsequently gets displayed is *not* the 'actual' error, but
>a mangled and misleading misrepresentation of whatever the original error
>was actually trying to say.....
>  
>
Well we can argue this back and forth all day. :-)  I would say that the 
error message is not mangled but improved, coping not only with the 
detected error but also gracefully handling an internal error whilst 
still giving the user some informative output.

Perhaps the best compromise would be for bfd_archive_filename() to 
display its own error message (using _bfd_error_handler) when it is 
given a NULL input, but then to continue on and return NULL.  That way 
the error handler will (presumably) stop the output from being 
generated, but bfd_archive_filename() will still execute so that the 
calling function will be able to display its error/warning message, 
which will further help to locate the problem that is plaguing the library.

Cheers
  Nick



More information about the Binutils mailing list