diff options
author | 2005-12-09 04:48:35 +0000 | |
---|---|---|
committer | 2005-12-09 04:48:35 +0000 | |
commit | e1e0a74a7b1050d1af083b3b1602183a7cfe4286 (patch) | |
tree | be37d997c059599ad95013c67200a457e4e513d5 /sys-devel/gdb | |
parent | Add dep for fontconfig. Bug #114727 (diff) | |
download | historical-e1e0a74a7b1050d1af083b3b1602183a7cfe4286.tar.gz historical-e1e0a74a7b1050d1af083b3b1602183a7cfe4286.tar.bz2 historical-e1e0a74a7b1050d1af083b3b1602183a7cfe4286.zip |
- fwd port scanmem patch for gdb-6.4
Package-Manager: portage-2.0.53
Diffstat (limited to 'sys-devel/gdb')
-rw-r--r-- | sys-devel/gdb/ChangeLog | 8 | ||||
-rw-r--r-- | sys-devel/gdb/Manifest | 17 | ||||
-rw-r--r-- | sys-devel/gdb/files/digest-gdb-6.4-r1 | 2 | ||||
-rw-r--r-- | sys-devel/gdb/files/gdb-6.4-scanmem.patch | 238 | ||||
-rw-r--r-- | sys-devel/gdb/gdb-6.4-r1.ebuild | 114 | ||||
-rw-r--r-- | sys-devel/gdb/gdb-6.4.ebuild | 4 |
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 |