diff options
author | Daniel Jacobowitz <drow@false.org> | 2009-11-02 17:16:14 +0000 |
---|---|---|
committer | Daniel Jacobowitz <drow@false.org> | 2009-11-02 17:16:14 +0000 |
commit | ad09a548819bfa35c8fbf7f69ba1c5d154b82801 (patch) | |
tree | 47d09bf6d63ebe3e6543a2507c2f21c55ae392dd | |
parent | bcf71277606f177627b97d050cf45aa74e799b1c (diff) | |
download | gdb-ad09a548819bfa35c8fbf7f69ba1c5d154b82801.zip gdb-ad09a548819bfa35c8fbf7f69ba1c5d154b82801.tar.gz gdb-ad09a548819bfa35c8fbf7f69ba1c5d154b82801.tar.bz2 |
* elfread.c (elf_symfile_segments): Do not warn about
uninitialized sections outside of load segments.
-rw-r--r-- | gdb/ChangeLog | 5 | ||||
-rw-r--r-- | gdb/elfread.c | 12 |
2 files changed, 16 insertions, 1 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog index ec24e9f..8fc59bb 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,8 @@ +2009-11-02 Daniel Jacobowitz <dan@codesourcery.com> + + * elfread.c (elf_symfile_segments): Do not warn about + uninitialized sections outside of load segments. + 2009-11-02 Jan Kratochvil <jan.kratochvil@redhat.com> * symfile.c (build_id_to_debug_filename): New variable debugdir. Move diff --git a/gdb/elfread.c b/gdb/elfread.c index 767dfe6..131d7d2 100644 --- a/gdb/elfread.c +++ b/gdb/elfread.c @@ -114,7 +114,17 @@ elf_symfile_segments (bfd *abfd) break; } - if (bfd_get_section_size (sect) > 0 && j == num_segments) + /* We should have found a segment for every non-empty section. + If we haven't, we will not relocate this section by any + offsets we apply to the segments. As an exception, do not + warn about SHT_NOBITS sections; in normal ELF execution + environments, SHT_NOBITS means zero-initialized and belongs + in a segment, but in no-OS environments some tools (e.g. ARM + RealView) use SHT_NOBITS for uninitialized data. Since it is + uninitialized, it doesn't need a program header. Such + binaries are not relocatable. */ + if (bfd_get_section_size (sect) > 0 && j == num_segments + && (bfd_get_section_flags (abfd, sect) & SEC_LOAD) != 0) warning (_("Loadable segment \"%s\" outside of ELF segments"), bfd_section_name (abfd, sect)); } |