mirror of
https://sourceware.org/git/binutils-gdb.git
synced 2024-11-27 03:51:15 +08:00
Check return value of bfd_init
Alan recently added a way for BFD library users to check whether they were in fact loading a compatible version of BFD: https://sourceware.org/ml/binutils/2018-10/msg00198.html It seemed reasonable to me that gdb should do this check as well, in case someone is dynamically linking against BFD. Simon pointed out that an earlier version of the patch would cause a gdb crash if the test failed. This version works around this by lowering the call to bfd_init and adding a comment explaining where 'error' can safely be called in captured_main_1. gdb/ChangeLog 2018-10-30 Tom Tromey <tom@tromey.com> * main.c (captured_main_1): Check return value of bfd_init.
This commit is contained in:
parent
fd332753fa
commit
4d5d104997
@ -1,3 +1,7 @@
|
||||
2018-10-30 Tom Tromey <tom@tromey.com>
|
||||
|
||||
* main.c (captured_main_1): Check return value of bfd_init.
|
||||
|
||||
2018-10-29 Sergio Durigan Junior <sergiodj@redhat.com>
|
||||
|
||||
* common/offset-type.h (DEFINE_OFFSET_REL_OP): Delete.
|
||||
|
@ -506,7 +506,6 @@ captured_main_1 (struct captured_main_args *context)
|
||||
textdomain (PACKAGE);
|
||||
#endif
|
||||
|
||||
bfd_init ();
|
||||
notice_open_fds ();
|
||||
|
||||
saved_command_line = (char *) xstrdup ("");
|
||||
@ -517,12 +516,17 @@ captured_main_1 (struct captured_main_args *context)
|
||||
setvbuf (stderr, NULL, _IONBF, BUFSIZ);
|
||||
#endif
|
||||
|
||||
/* Note: `error' cannot be called before this point, because the
|
||||
caller will crash when trying to print the exception. */
|
||||
main_ui = new ui (stdin, stdout, stderr);
|
||||
current_ui = main_ui;
|
||||
|
||||
gdb_stdtargerr = gdb_stderr; /* for moment */
|
||||
gdb_stdtargin = gdb_stdin; /* for moment */
|
||||
|
||||
if (bfd_init () != BFD_INIT_MAGIC)
|
||||
error (_("fatal error: libbfd ABI mismatch"));
|
||||
|
||||
#ifdef __MINGW32__
|
||||
/* On Windows, argv[0] is not necessarily set to absolute form when
|
||||
GDB is found along PATH, without which relocation doesn't work. */
|
||||
|
Loading…
Reference in New Issue
Block a user