dwarf2read: Allow SEC_ALLOC sections to be located at address 0
Commit Message
GDB already allows statically initialized variables, located in
SEC_LOAD sections, to be placed at address 0. This change allows
uninitialized variables (which are in SEC_ALLOC sections) to be placed
address 0 as well.
gdb/ChangeLog:
* dwarf2read.c (dwarf2_locate_sections): Allow has_section_at_zero
to be set for SEC_ALLOC sections too.
---
gdb/dwarf2read.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
Comments
On 07/11/2015 02:01 AM, Kevin Buettner wrote:
> GDB already allows statically initialized variables, located in
> SEC_LOAD sections, to be placed at address 0. This change allows
> uninitialized variables (which are in SEC_ALLOC sections) to be placed
> address 0 as well.
>
> gdb/ChangeLog:
>
> * dwarf2read.c (dwarf2_locate_sections): Allow has_section_at_zero
> to be set for SEC_ALLOC sections too.
LGTM.
Thanks,
Pedro Alves
On Tue, 14 Jul 2015 12:56:30 +0100
Pedro Alves <palves@redhat.com> wrote:
> On 07/11/2015 02:01 AM, Kevin Buettner wrote:
> > GDB already allows statically initialized variables, located in
> > SEC_LOAD sections, to be placed at address 0. This change allows
> > uninitialized variables (which are in SEC_ALLOC sections) to be placed
> > address 0 as well.
> >
> > gdb/ChangeLog:
> >
> > * dwarf2read.c (dwarf2_locate_sections): Allow has_section_at_zero
> > to be set for SEC_ALLOC sections too.
>
> LGTM.
I've pushed this.
Thanks for looking it over.
Kevin
@@ -2241,7 +2241,7 @@ dwarf2_locate_sections (bfd *abfd, asection *sectp, void *vnames)
dwarf2_per_objfile->gdb_index.size = bfd_get_section_size (sectp);
}
- if ((bfd_get_section_flags (abfd, sectp) & SEC_LOAD)
+ if ((bfd_get_section_flags (abfd, sectp) & (SEC_LOAD | SEC_ALLOC))
&& bfd_section_vma (abfd, sectp) == 0)
dwarf2_per_objfile->has_section_at_zero = 1;
}