- Fixed the kernel VDSO loading (`warning: no loadable sections found in
...'). - Fix the testcase for pending signals (from BZ 233852).
This commit is contained in:
parent
add1a2d48d
commit
dd40115f74
80
gdb-6.6-bfd-vdso8k.patch
Normal file
80
gdb-6.6-bfd-vdso8k.patch
Normal file
@ -0,0 +1,80 @@
|
||||
2007-09-23 Jan Kratochvil <jan.kratochvil@redhat.com>
|
||||
|
||||
* elfcode.h (NAME(_bfd_elf,bfd_from_remote_memory)): New variables
|
||||
X_SHDR_SHSTRTAB and I_SHDR_SHSTRTAB. Fixed the CONTENTS_SIZE trimming
|
||||
check for its aligned size between the last segment and still before
|
||||
the section header end. Added variables check to cover also the
|
||||
section header string table.
|
||||
|
||||
--- ./bfd/elfcode.h 14 Aug 2007 08:04:47 -0000 1.86
|
||||
+++ ./bfd/elfcode.h 23 Sep 2007 14:24:39 -0000
|
||||
@@ -1628,6 +1628,8 @@ NAME(_bfd_elf,bfd_from_remote_memory)
|
||||
Elf_Internal_Ehdr i_ehdr; /* Elf file header, internal form */
|
||||
Elf_External_Phdr *x_phdrs;
|
||||
Elf_Internal_Phdr *i_phdrs, *last_phdr;
|
||||
+ Elf_External_Shdr *x_shdr_shstrtab;
|
||||
+ Elf_Internal_Shdr *i_shdr_shstrtab;
|
||||
bfd *nbfd;
|
||||
struct bfd_in_memory *bim;
|
||||
int contents_size;
|
||||
@@ -1746,19 +1748,49 @@ NAME(_bfd_elf,bfd_from_remote_memory)
|
||||
|
||||
/* Trim the last segment so we don't bother with zeros in the last page
|
||||
that are off the end of the file. However, if the extra bit in that
|
||||
- page includes the section headers, keep them. */
|
||||
- if ((bfd_vma) contents_size > last_phdr->p_offset + last_phdr->p_filesz
|
||||
- && (bfd_vma) contents_size >= (i_ehdr.e_shoff
|
||||
- + i_ehdr.e_shnum * i_ehdr.e_shentsize))
|
||||
- {
|
||||
- contents_size = last_phdr->p_offset + last_phdr->p_filesz;
|
||||
- if ((bfd_vma) contents_size < (i_ehdr.e_shoff
|
||||
- + i_ehdr.e_shnum * i_ehdr.e_shentsize))
|
||||
- contents_size = i_ehdr.e_shoff + i_ehdr.e_shnum * i_ehdr.e_shentsize;
|
||||
- }
|
||||
- else
|
||||
+ page includes the section headers os the section header string table,
|
||||
+ keep them. */
|
||||
+ if ((bfd_vma) contents_size > last_phdr->p_offset + last_phdr->p_filesz)
|
||||
contents_size = last_phdr->p_offset + last_phdr->p_filesz;
|
||||
|
||||
+ if ((bfd_vma) contents_size < i_ehdr.e_shoff
|
||||
+ + i_ehdr.e_shnum * i_ehdr.e_shentsize)
|
||||
+ contents_size = i_ehdr.e_shoff + i_ehdr.e_shnum * i_ehdr.e_shentsize;
|
||||
+
|
||||
+ /* Section header string table is usually before the section headers
|
||||
+ so this check is here has usually no effect. */
|
||||
+ if (i_ehdr.e_shstrndx < i_ehdr.e_shnum)
|
||||
+ {
|
||||
+ x_shdr_shstrtab = bfd_malloc (sizeof *x_shdr_shstrtab
|
||||
+ + sizeof *i_shdr_shstrtab);
|
||||
+ if (x_shdr_shstrtab == NULL)
|
||||
+ {
|
||||
+ free (x_phdrs);
|
||||
+ bfd_set_error (bfd_error_no_memory);
|
||||
+ return NULL;
|
||||
+ }
|
||||
+ err = target_read_memory (ehdr_vma + i_ehdr.e_shoff
|
||||
+ + i_ehdr.e_shstrndx * sizeof *x_shdr_shstrtab,
|
||||
+ (bfd_byte *) x_shdr_shstrtab,
|
||||
+ sizeof *x_shdr_shstrtab);
|
||||
+ if (err)
|
||||
+ {
|
||||
+ free (x_shdr_shstrtab);
|
||||
+ free (x_phdrs);
|
||||
+ bfd_set_error (bfd_error_system_call);
|
||||
+ errno = err;
|
||||
+ return NULL;
|
||||
+ }
|
||||
+ i_shdr_shstrtab = (Elf_Internal_Shdr *) &x_shdr_shstrtab[1];
|
||||
+ elf_swap_shdr_in (templ, x_shdr_shstrtab, i_shdr_shstrtab);
|
||||
+
|
||||
+ if ((bfd_vma) contents_size < i_shdr_shstrtab->sh_offset
|
||||
+ + i_shdr_shstrtab->sh_size)
|
||||
+ contents_size = i_shdr_shstrtab->sh_offset + i_shdr_shstrtab->sh_size;
|
||||
+
|
||||
+ free (x_shdr_shstrtab);
|
||||
+ }
|
||||
+
|
||||
/* Now we know the size of the whole image we want read in. */
|
||||
contents = bfd_zmalloc (contents_size);
|
||||
if (contents == NULL)
|
@ -684,7 +684,7 @@
|
||||
+}
|
||||
--- /dev/null 1 Jan 1970 00:00:00 -0000
|
||||
+++ ./gdb/testsuite/gdb.threads/attach-stopped.exp 29 Jun 2007 22:06:06 -0000
|
||||
@@ -0,0 +1,213 @@
|
||||
@@ -0,0 +1,219 @@
|
||||
+# Copyright 2005-2007
|
||||
+
|
||||
+# This program is free software; you can redistribute it and/or modify
|
||||
@ -792,10 +792,13 @@
|
||||
+ # Avoid some race:
|
||||
+ sleep 2
|
||||
+
|
||||
+ set fileid [open /proc/${testpid}/status r];
|
||||
+ gets $fileid line1;
|
||||
+ gets $fileid line2;
|
||||
+ close $fileid;
|
||||
+ if [catch {open /proc/${testpid}/status r} fileid] {
|
||||
+ set line2 "NOTFOUND"
|
||||
+ } else {
|
||||
+ gets $fileid line1;
|
||||
+ gets $fileid line2;
|
||||
+ close $fileid;
|
||||
+ }
|
||||
+
|
||||
+ set test "$threadtype: attach1, exit leaves process stopped"
|
||||
+ if {[string match "*(stopped)*" $line2]} {
|
||||
@ -861,10 +864,13 @@
|
||||
+
|
||||
+ # At this point, the process should be sleeping
|
||||
+
|
||||
+ set fileid2 [open /proc/${testpid}/status r];
|
||||
+ gets $fileid2 line1;
|
||||
+ gets $fileid2 line2;
|
||||
+ close $fileid2;
|
||||
+ if [catch {open /proc/${testpid}/status r} fileid2] {
|
||||
+ set line2 "NOTFOUND"
|
||||
+ } else {
|
||||
+ gets $fileid2 line1;
|
||||
+ gets $fileid2 line2;
|
||||
+ close $fileid2;
|
||||
+ }
|
||||
+
|
||||
+ set test "$threadtype: attach2, exit leaves process sleeping"
|
||||
+ if {[string match "*(sleeping)*" $line2]} {
|
||||
|
10
gdb.spec
10
gdb.spec
@ -11,7 +11,7 @@ Name: gdb
|
||||
Version: 6.6
|
||||
|
||||
# The release always contains a leading reserved number, start it at 1.
|
||||
Release: 28%{?dist}
|
||||
Release: 29%{?dist}
|
||||
|
||||
License: GPL
|
||||
Group: Development/Debuggers
|
||||
@ -374,6 +374,9 @@ Patch272: gdb-6.6-glibc-open-fcntl2-compat.patch
|
||||
Patch273: gdb-6.6-buildid-verify.patch
|
||||
Patch274: gdb-6.6-buildid-locate.patch
|
||||
|
||||
# Fixed the kernel VDSO loading (producing `no loadable sections found').
|
||||
Patch276: gdb-6.6-bfd-vdso8k.patch
|
||||
|
||||
BuildRequires: ncurses-devel glibc-devel gcc make gzip texinfo dejagnu gettext
|
||||
BuildRequires: flex bison sharutils expat-devel
|
||||
Requires: readline
|
||||
@ -529,6 +532,7 @@ rm -f gdb/jv-exp.c gdb/m2-exp.c gdb/objc-exp.c gdb/p-exp.c
|
||||
%patch272 -p1
|
||||
%patch273 -p1
|
||||
%patch274 -p1
|
||||
%patch276 -p1
|
||||
|
||||
# Change the version that gets printed at GDB startup, so it is RedHat
|
||||
# specific.
|
||||
@ -683,6 +687,10 @@ fi
|
||||
# don't include the files in include, they are part of binutils
|
||||
|
||||
%changelog
|
||||
* Sun Sep 23 2007 Jan Kratochvil <jan.kratochvil@redhat.com> - 6.6-29
|
||||
- Fixed the kernel VDSO loading (`warning: no loadable sections found in ...').
|
||||
- Fix the testcase for pending signals (from BZ 233852).
|
||||
|
||||
* Sat Sep 22 2007 Jan Kratochvil <jan.kratochvil@redhat.com> - 6.6-28
|
||||
- Support also the `$allocate' and `$delete' ctor/dtor variants (BZ 301701).
|
||||
- Fix the build compatibility with texinfo >= 4.10.
|
||||
|
Loading…
Reference in New Issue
Block a user