aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHans-Peter Nilsson <hp@axis.com>2002-01-21 21:57:48 +0000
committerHans-Peter Nilsson <hp@axis.com>2002-01-21 21:57:48 +0000
commit58255df39cc133d5e5f2eab79e22113c7fd0289f (patch)
treef8d0cbda4ca6532349de78fd3debd81b367ff316
parentaaf320fa4ac11363de3d05bd5a239ec6463ffd24 (diff)
downloadgdb-58255df39cc133d5e5f2eab79e22113c7fd0289f.zip
gdb-58255df39cc133d5e5f2eab79e22113c7fd0289f.tar.gz
gdb-58255df39cc133d5e5f2eab79e22113c7fd0289f.tar.bz2
* elf32-cris.c (cris_elf_relocate_section) <case R_CRIS_32_GOTREL>:
Check for and emit error if sgot is NULL at this point.
-rw-r--r--bfd/ChangeLog5
-rw-r--r--bfd/elf32-cris.c14
2 files changed, 19 insertions, 0 deletions
diff --git a/bfd/ChangeLog b/bfd/ChangeLog
index bf19404..f6a3025 100644
--- a/bfd/ChangeLog
+++ b/bfd/ChangeLog
@@ -1,3 +1,8 @@
+2002-01-21 Hans-Peter Nilsson <hp@bitrange.com>
+
+ * elf32-cris.c (cris_elf_relocate_section) <case R_CRIS_32_GOTREL>:
+ Check for and emit error if sgot is NULL at this point.
+
2002-01-21 Jason Thorpe <thorpej@wasabisystems.com>
* config.bfd (ia64*-*-netbsd*): New target.
diff --git a/bfd/elf32-cris.c b/bfd/elf32-cris.c
index 2e3add1..6feb292 100644
--- a/bfd/elf32-cris.c
+++ b/bfd/elf32-cris.c
@@ -1162,6 +1162,20 @@ cris_elf_relocate_section (output_bfd, info, input_bfd, input_section,
return false;
}
+ /* This can happen if we get a link error with the input ELF
+ variant mismatching the output variant. Emit an error so
+ it's noticed if it happens elsewhere. */
+ if (sgot == NULL)
+ {
+ (*_bfd_error_handler)
+ (_("%s: relocation %s in section %s with no GOT created"),
+ bfd_archive_filename (input_bfd),
+ cris_elf_howto_table[r_type].name,
+ bfd_get_section_name (input_bfd, input_section));
+ bfd_set_error (bfd_error_bad_value);
+ return false;
+ }
+
/* This relocation is like a PC-relative one, except the
reference point is the location of GOT. Note that
sgot->output_offset is not involved in this calculation. We