summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--sys-devel/gdb/ChangeLog8
-rw-r--r--sys-devel/gdb/Manifest17
-rw-r--r--sys-devel/gdb/files/digest-gdb-6.4-r12
-rw-r--r--sys-devel/gdb/files/gdb-6.4-scanmem.patch238
-rw-r--r--sys-devel/gdb/gdb-6.4-r1.ebuild114
-rw-r--r--sys-devel/gdb/gdb-6.4.ebuild4
6 files changed, 374 insertions, 9 deletions
diff --git a/sys-devel/gdb/ChangeLog b/sys-devel/gdb/ChangeLog
index 24cb128725d7..9ab14c16efbe 100644
--- a/sys-devel/gdb/ChangeLog
+++ b/sys-devel/gdb/ChangeLog
@@ -1,6 +1,12 @@
# ChangeLog for sys-devel/gdb
# Copyright 1999-2005 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/sys-devel/gdb/ChangeLog,v 1.81 2005/12/09 00:02:07 vapier Exp $
+# $Header: /var/cvsroot/gentoo-x86/sys-devel/gdb/ChangeLog,v 1.82 2005/12/09 04:48:35 solar Exp $
+
+*gdb-6.4-r1 (08 Dec 2005)
+
+ 08 Dec 2005; <solar@gentoo.org> +files/gdb-6.4-scanmem.patch,
+ +gdb-6.4-r1.ebuild, gdb-6.4.ebuild:
+ - fwd port scanmem patch for gdb-6.4
09 Dec 2005; Mike Frysinger <vapier@gentoo.org>
+files/gdb-6.4-sse2-register-display.patch, gdb-6.4.ebuild:
diff --git a/sys-devel/gdb/Manifest b/sys-devel/gdb/Manifest
index bfb802231b61..105fd3b58cdf 100644
--- a/sys-devel/gdb/Manifest
+++ b/sys-devel/gdb/Manifest
@@ -1,12 +1,13 @@
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
-MD5 bb995d75f2b79c87c8f405ee6470e48f ChangeLog 11817
+MD5 818a63a042ed9604c80ce3331c44e668 ChangeLog 11985
MD5 d3ab2683d88b3cbecb8a9faa439703a1 files/bfd-malloc-wrap.patch 782
MD5 460629563df21e6a68b8941c07d4f30b files/digest-gdb-6.1 131
MD5 b3790be989db97b22c599572afbce109 files/digest-gdb-6.2.1 133
MD5 1bf79e32094a4c2c7cde754dd12e4d90 files/digest-gdb-6.3-r4 183
MD5 944b2661cbb8d3308ce71d31e66533ac files/digest-gdb-6.4 121
+MD5 944b2661cbb8d3308ce71d31e66533ac files/digest-gdb-6.4-r1 121
MD5 1de0e1b91ac150426719e904f0e1a5cd files/gdb-5.3-sparc-nat-asm.patch 521
MD5 e497ab2f05d847bde74f4e3441e2c7a2 files/gdb-6.0-coreutils.patch 1964
MD5 c6dfff1373e52fef5872c1bdca4cb706 files/gdb-6.0-info.patch 1108
@@ -24,18 +25,22 @@ MD5 2657b597618d0c35b48f47e3f808d171 files/gdb-6.3-relative-paths.patch 3286
MD5 a4610ec65e88f73e0b00b525467a5372 files/gdb-6.3-scanmem.patch 6652
MD5 8b7f5c46b8dabbc9239c37f52278b971 files/gdb-6.3-uclibc.patch 8221
MD5 8323dafe6749f0da44b8e11ebbbc96c4 files/gdb-6.4-relative-paths.patch 3147
+MD5 c8fced1c2241b098eae50b1f8c8ef463 files/gdb-6.4-scanmem.patch 6692
MD5 20a129e5e58c07f1ad5fc0d09a1a3c75 files/gdb-6.4-sse2-register-display.patch 1470
MD5 78d8fa43c0e2e339346b3bc7aa10c2d9 files/gdb-6.4-uclibc.patch 2435
MD5 7ea8f83bb7b0d70e7e6d6c8cf42292d3 files/gdb-6.x-crash.patch 678
MD5 2a52c4cd9bf5e2667c6bc7312e179fa0 gdb-6.1.ebuild 1807
MD5 fb4ab4aaccb90b523c650a5f30d02281 gdb-6.2.1.ebuild 1784
MD5 20334b11833489b3bcc13c0fea645a1d gdb-6.3-r4.ebuild 2983
-MD5 529136a28596f98817377a9dba9cb584 gdb-6.4.ebuild 2998
+MD5 abe5b46c3552ca8670ffb68c048d4ffd gdb-6.4-r1.ebuild 3009
+MD5 f5428a658b66b60aeaa511d39cc450b3 gdb-6.4.ebuild 2996
MD5 567094e03359ffc1c95af7356395228d metadata.xml 162
-----BEGIN PGP SIGNATURE-----
-Version: GnuPG v1.4.2 (GNU/Linux)
+Version: GnuPG v1.4.1 (GNU/Linux)
-iD8DBQFDmMo2gIKl8Uu19MoRAgpnAJ99MA5Y+L85stnRYwbsNycefw/sFgCdHgL7
-mbuEJCy37p2dLz4cAVBMqlo=
-=+1nc
+iQCVAwUBQ5kMsp4WFLgrx1GWAQICcwP/X6BNIopTEeo53WgXSjtJdglsMaT5mDqp
+YV6CPhBppTytyhGlpBcdUzMLtK9Pc/LOXaHoGsIrasOtjrC4l5Xw743SC/XzyT8u
+rMBtzmTCew0hOAovv4TwhqT98wo+qlWwOwo2sFW7StdNzjFoye/n8q7vMqQ5M4am
+ISuSoiuZ79w=
+=S8ZF
-----END PGP SIGNATURE-----
diff --git a/sys-devel/gdb/files/digest-gdb-6.4-r1 b/sys-devel/gdb/files/digest-gdb-6.4-r1
new file mode 100644
index 000000000000..701f64eee627
--- /dev/null
+++ b/sys-devel/gdb/files/digest-gdb-6.4-r1
@@ -0,0 +1,2 @@
+MD5 f62c14ba0316bc88e1b4b32a4e901ffb gdb-6.4.tar.bz2 13917226
+MD5 35e70c29e393433b3847527d808f59c2 gdb_init.txt.bz2 6247
diff --git a/sys-devel/gdb/files/gdb-6.4-scanmem.patch b/sys-devel/gdb/files/gdb-6.4-scanmem.patch
new file mode 100644
index 000000000000..899977dda137
--- /dev/null
+++ b/sys-devel/gdb/files/gdb-6.4-scanmem.patch
@@ -0,0 +1,238 @@
+diff -Nrup gdb-6.4.orig/gdb/printcmd.c gdb-6.4/gdb/printcmd.c
+--- gdb-6.4.orig/gdb/printcmd.c 2005-02-24 08:51:34.000000000 -0500
++++ gdb-6.4/gdb/printcmd.c 2005-12-08 23:17:09.000000000 -0500
+@@ -942,6 +942,195 @@ print_command (char *exp, int from_tty)
+ print_command_1 (exp, 0, 1);
+ }
+
++static void
++scanmem_command(char *exp, int from_tty)
++{
++ struct expression *expr;
++ struct value *val;
++ struct format_data fmt;
++ CORE_ADDR addr;
++ unsigned char *data;
++ unsigned char *size;
++ unsigned char *pattern;
++ unsigned char typ;
++ unsigned char typc;
++ unsigned char my_buf[4];
++ unsigned int nfetch;
++ unsigned int len = 10;
++ unsigned int memsize;
++ unsigned int i;
++ int typi;
++ int errcode;
++
++ if (exp && *exp) {
++ struct type *type;
++ char *str_num = NULL;
++ char *string_to_seek = NULL;
++ char *tmp = strdup(exp);
++ char *c;
++
++ c = tmp;
++ if (*c == ' ')
++ while (*c && *c == ' ')
++ c++;
++
++ while (*c && *c != ' ')
++ c++;
++
++ *c = '\0';
++ c++;
++
++ while (*c && *c == ' ')
++ c++;
++
++ size = c;
++
++ while (*c && *c != ' ')
++ c++;
++
++ *c = '\0';
++ c++;
++
++ while (*c && *c == ' ')
++ c++;
++
++ typ = *c;
++ c++;
++
++ *c = '\0';
++ c++;
++
++ while (*c && *c == ' ')
++ c++;
++ pattern = c;
++
++ printf_filtered(">>addr %s: size %s: type:%c pattern:%s<< \n",
++ tmp, size, typ, pattern);
++
++ expr = parse_expression(tmp);
++ val = evaluate_expression(expr);
++
++ if (TYPE_CODE(value_type(val)) == TYPE_CODE_REF)
++ val = value_ind(val);
++
++ if (TYPE_CODE(value_type(val)) == TYPE_CODE_FUNC
++ && VALUE_LVAL(val) == lval_memory)
++ addr = VALUE_ADDRESS(val);
++ else
++ addr = value_as_address(val);
++
++ len = atoi(size);
++ data = xmalloc(len);
++ nfetch = partial_memory_read(addr, data, len, &errcode);
++
++ if (nfetch != len)
++ printf_filtered("we can read only %i bytes\n", nfetch);
++
++ switch (typ) {
++ case 's':
++ memsize = strlen(pattern);
++ if (nfetch < memsize) {
++ printf_filtered
++ ("we read only %i bytes and we seek for a pattern of %i bytes\n",
++ nfetch, memsize);
++ free(data);
++ free(tmp);
++ return;
++ }
++ for (i = 0; i <= (nfetch - memsize); i++, addr++) {
++ if (memcmp(data + i, pattern, memsize) == 0) {
++ printf_filtered("pattern match at ");
++ deprecated_print_address_numeric((addr), 1, gdb_stdout);
++ printf_filtered("\n");
++ }
++ }
++ break;
++ case 'i':
++ memsize = sizeof(int);
++ typi = atoi(pattern);
++
++ if (nfetch < memsize) {
++ printf_filtered
++ ("we read only %i bytes and we seek for a pattern of %i bytes\n",
++ nfetch, memsize);
++ free(data);
++ free(tmp);
++ return;
++ }
++ for (i = 0; i <= (nfetch - memsize); i++, addr++) {
++ int *pint;
++ pint = (unsigned char *) (data + i);
++ if (*pint == typi) {
++ printf_filtered("pattern match at ");
++ deprecated_print_address_numeric((addr), 1, gdb_stdout);
++ printf_filtered("\n");
++ }
++ }
++ break;
++ case 'a':
++ memsize = sizeof(unsigned long);
++ if (sscanf(pattern, "0x%x", &i) == 0) {
++ printf_filtered("cant convert to hexa %s\n", pattern);
++ break;
++ }
++ my_buf[0] = (unsigned char) ((i & 0x000000FF));
++ my_buf[1] = (unsigned char) ((i & 0x0000FF00) >> 8);
++ my_buf[2] = (unsigned char) ((i & 0x00FF0000) >> 16);
++ my_buf[3] = (unsigned char) ((i & 0xFF000000) >> 24);
++ if (nfetch < memsize) {
++ printf_filtered
++ ("we read only %i bytes and we seek for a pattern of %i bytes\n",
++ nfetch, memsize);
++ free(data);
++ free(tmp);
++ return;
++ }
++ for (i = 0; i <= (nfetch - memsize); i++, addr++) {
++ if (memcmp((data + i), my_buf, memsize) == 0) {
++ printf_filtered("pattern match at ");
++ deprecated_print_address_numeric((addr), 1, gdb_stdout);
++ printf_filtered("\n");
++ }
++ }
++ break;
++ case 'b':
++ case 'c':
++ memsize = sizeof(char);
++ if (typ == 'c')
++ typc = *pattern;
++ else {
++ if (strncmp("0x", pattern, 2) == 0) {
++ sscanf(pattern, "0x%02x", &typc);
++ } else
++ typc = (unsigned char)atoi(pattern);
++ }
++ printf_filtered(">>>%0x2\n", (int) typc);
++ if (nfetch < memsize) {
++ printf_filtered
++ ("we read only %i bytes and we seek for a pattern of %i bytes\n",
++ nfetch, memsize);
++ free(data);
++ free(tmp);
++ return;
++ }
++ for (i = 0; i <= (nfetch - memsize); i++, addr++) {
++ if (*(data + i) == typc) {
++ printf_filtered("pattern match at ");
++ deprecated_print_address_numeric((addr), 1, gdb_stdout);
++ printf_filtered("\n");
++ }
++ }
++ break;
++ default:
++ printf_filtered("'%c' is not a valid type\n", typ);
++ break;
++ }
++ free(data);
++ free(tmp);
++ return;
++ }
++}
++
+ /* Same as print, except in epoch, it gets its own window */
+ static void
+ inspect_command (char *exp, int from_tty)
+@@ -2138,6 +2327,17 @@ EXP may be preceded with /FMT, where FMT
+ but no count or size letter (see \"x\" command)."));
+ set_cmd_completer (c, location_completer);
+ add_com_alias ("p", "print", class_vars, 1);
++ c =
++ add_com ("scanmem", class_vars, scanmem_command,
++ "scanmem <addr> <num> <type> <string>\n"
++ "example: scanmem $esp 100 a 0x8048434\n"
++ " scan for this addr into the stack\n\n"
++ " scanmem 0x08048434 100 s fsck\n"
++ " seek for a string\n"
++ " scanmem 0x8048434 100 b 0x75\n"
++ " scan for the char 0x75\n"
++ " a = address c = char b = byte i = int s = string\n"
++ "\n"); /* antilove@zolo.freelsd.net */
+
+ c = add_com ("inspect", class_vars, inspect_command, _("\
+ Same as \"print\" command, except that if you are running in the epoch\n\
+diff -Nrup gdb-6.4.orig/gdb/valprint.c gdb-6.4/gdb/valprint.c
+--- gdb-6.4.orig/gdb/valprint.c 2005-10-09 21:03:59.000000000 -0400
++++ gdb-6.4/gdb/valprint.c 2005-12-08 23:17:09.000000000 -0500
+@@ -39,7 +39,7 @@
+
+ /* Prototypes for local functions */
+
+-static int partial_memory_read (CORE_ADDR memaddr, char *myaddr,
++int partial_memory_read (CORE_ADDR memaddr, char *myaddr,
+ int len, int *errnoptr);
+
+ static void show_print (char *, int);
+@@ -1037,7 +1037,7 @@ val_print_array_elements (struct type *t
+ /* FIXME: cagney/1999-10-14: Only used by val_print_string. Can this
+ function be eliminated. */
+
+-static int
++int
+ partial_memory_read (CORE_ADDR memaddr, char *myaddr, int len, int *errnoptr)
+ {
+ int nread; /* Number of bytes actually read. */
diff --git a/sys-devel/gdb/gdb-6.4-r1.ebuild b/sys-devel/gdb/gdb-6.4-r1.ebuild
new file mode 100644
index 000000000000..430254c08ee3
--- /dev/null
+++ b/sys-devel/gdb/gdb-6.4-r1.ebuild
@@ -0,0 +1,114 @@
+# Copyright 1999-2005 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/sys-devel/gdb/gdb-6.4-r1.ebuild,v 1.1 2005/12/09 04:48:35 solar Exp $
+
+inherit flag-o-matic eutils
+
+export CTARGET=${CTARGET:-${CHOST}}
+if [[ ${CTARGET} == ${CHOST} ]] ; then
+ if [[ ${CATEGORY/cross-} != ${CATEGORY} ]] ; then
+ export CTARGET=${CATEGORY/cross-}
+ fi
+fi
+
+#DEB_VER=6
+DESCRIPTION="GNU debugger"
+HOMEPAGE="http://sources.redhat.com/gdb/"
+SRC_URI="http://ftp.gnu.org/gnu/gdb/${P}.tar.bz2
+ ftp://sources.redhat.com/pub/gdb/releases/${P}.tar.bz2
+ mirror://gentoo/gdb_init.txt.bz2"
+
+LICENSE="GPL-2 LGPL-2"
+[[ ${CTARGET} != ${CHOST} ]] \
+ && SLOT="${CTARGET}" \
+ || SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sparc ~x86"
+IUSE="nls test vanilla"
+
+RDEPEND=">=sys-libs/ncurses-5.2-r2"
+DEPEND="${RDEPEND}
+ test? ( dev-util/dejagnu )
+ nls? ( sys-devel/gettext )"
+
+src_unpack() {
+ unpack ${A}
+ cd "${S}"
+ mv "${WORKDIR}"/gdb_init.txt . || die
+
+ if ! use vanilla ; then
+ if [[ -n ${DEB_VER} ]] ; then
+ epatch "${WORKDIR}"/gdb_${PV}-${DEB_VER}.diff
+ for f in $(<debian/patches/series) ; do
+ EPATCH_SINGLE_MSG="Applying Debian's ${f}" \
+ epatch debian/patches/${f}
+ done
+ fi
+ epatch "${FILESDIR}"/gdb-6.4-uclibc.patch
+ epatch "${FILESDIR}"/gdb-6.4-relative-paths.patch
+ #epatch "${FILESDIR}"/gdb-6.x-crash.patch
+ epatch "${FILESDIR}"/gdb-6.2.1-pass-libdir.patch
+ epatch "${FILESDIR}"/gdb-6.4-scanmem.patch
+ epatch "${FILESDIR}"/gdb-6.3-gdbinit-stat.patch
+ epatch "${FILESDIR}"/bfd-malloc-wrap.patch #91398
+
+ epatch "${FILESDIR}"/gdb-6.2.1-200-uclibc-readline-conf.patch
+ epatch "${FILESDIR}"/gdb-6.2.1-400-mips-coredump.patch
+ epatch "${FILESDIR}"/gdb-6.2.1-libiberty-pic.patch
+ fi
+
+ strip-linguas -u bfd/po opcodes/po
+}
+
+src_compile() {
+ replace-flags -O? -O2
+ econf \
+ --disable-werror \
+ $(use_enable nls) \
+ || die
+ emake -j1 || die
+}
+
+src_test() {
+ make check || ewarn "tests failed"
+}
+
+src_install() {
+ make \
+ prefix="${D}"/usr \
+ mandir="${D}"/usr/share/man \
+ infodir="${D}"/usr/share/info \
+ libdir="${D}"/nukeme includedir="${D}"/nukeme \
+ install || die "install"
+ # The includes and libs are in binutils already
+ rm -r "${D}"/nukeme
+
+ # Don't install docs when building a cross-gdb
+ if [[ ${CTARGET} != ${CHOST} ]] ; then
+ rm -r "${D}"/usr/share
+ return 0
+ fi
+
+ dodoc README
+ docinto gdb
+ dodoc gdb/CONTRIBUTE gdb/README gdb/MAINTAINERS \
+ gdb/NEWS gdb/ChangeLog* gdb/TODO
+ docinto sim
+ dodoc sim/ChangeLog sim/MAINTAINERS sim/README-HACKING
+ docinto mmalloc
+ dodoc mmalloc/MAINTAINERS mmalloc/ChangeLog mmalloc/TODO
+
+ if use x86 ; then
+ dodir /etc/skel/
+ cp "${S}"/gdb_init.txt "${D}"/etc/skel/.gdbinit \
+ || die "install ${D}/etc/skel/.gdbinit"
+ fi
+
+ if ! has noinfo ${FEATURES} ; then
+ make \
+ infodir="${D}"/usr/share/info \
+ install-info \
+ || die "install doc info"
+ # Remove shared info pages
+ rm -f "${D}"/usr/share/info/{annotate,bfd,configure,standards}.info*
+ fi
+}
diff --git a/sys-devel/gdb/gdb-6.4.ebuild b/sys-devel/gdb/gdb-6.4.ebuild
index 50203e41cac0..29386ab2b147 100644
--- a/sys-devel/gdb/gdb-6.4.ebuild
+++ b/sys-devel/gdb/gdb-6.4.ebuild
@@ -1,6 +1,6 @@
# Copyright 1999-2005 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/sys-devel/gdb/gdb-6.4.ebuild,v 1.2 2005/12/09 00:02:07 vapier Exp $
+# $Header: /var/cvsroot/gentoo-x86/sys-devel/gdb/gdb-6.4.ebuild,v 1.3 2005/12/09 04:48:35 solar Exp $
inherit flag-o-matic eutils
@@ -47,7 +47,7 @@ src_unpack() {
epatch "${FILESDIR}"/gdb-6.4-relative-paths.patch
#epatch "${FILESDIR}"/gdb-6.x-crash.patch
epatch "${FILESDIR}"/gdb-6.2.1-pass-libdir.patch
- #epatch "${FILESDIR}"/gdb-6.3-scanmem.patch
+ epatch "${FILESDIR}"/gdb-6.4-scanmem.patch
epatch "${FILESDIR}"/gdb-6.3-gdbinit-stat.patch
epatch "${FILESDIR}"/bfd-malloc-wrap.patch #91398