summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTony Vroon <chainsaw@gentoo.org>2006-06-18 23:38:16 +0000
committerTony Vroon <chainsaw@gentoo.org>2006-06-18 23:38:16 +0000
commitffa5d17b1511d2dfcce2624bacb9d7099ece4f91 (patch)
tree64e38a4fcfd54f11dcae30f4415f1721f0cf6876 /sys-devel/gdb
parentVersion bump, added --enable-thread-check (diff)
downloadgentoo-2-ffa5d17b1511d2dfcce2624bacb9d7099ece4f91.tar.gz
gentoo-2-ffa5d17b1511d2dfcce2624bacb9d7099ece4f91.tar.bz2
gentoo-2-ffa5d17b1511d2dfcce2624bacb9d7099ece4f91.zip
Apply upstream patch to get usable backtraces on PPC. Research by illusion <morgoth6@box43.pl> in bug #137125.
(Portage version: 2.1.1_pre1-r1)
Diffstat (limited to 'sys-devel/gdb')
-rw-r--r--sys-devel/gdb/ChangeLog9
-rw-r--r--sys-devel/gdb/files/digest-gdb-6.4-r56
-rw-r--r--sys-devel/gdb/files/gdb-6.4-ppc-stack.patch27
-rw-r--r--sys-devel/gdb/gdb-6.4-r5.ebuild117
4 files changed, 158 insertions, 1 deletions
diff --git a/sys-devel/gdb/ChangeLog b/sys-devel/gdb/ChangeLog
index 7aebb4425f94..b9aac9b7c486 100644
--- a/sys-devel/gdb/ChangeLog
+++ b/sys-devel/gdb/ChangeLog
@@ -1,6 +1,13 @@
# ChangeLog for sys-devel/gdb
# Copyright 1999-2006 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/sys-devel/gdb/ChangeLog,v 1.90 2006/05/03 14:32:39 flameeyes Exp $
+# $Header: /var/cvsroot/gentoo-x86/sys-devel/gdb/ChangeLog,v 1.91 2006/06/18 23:38:16 chainsaw Exp $
+
+*gdb-6.4-r5 (18 Jun 2006)
+
+ 18 Jun 2006; Tony Vroon <chainsaw@gentoo.org>
+ +files/gdb-6.4-ppc-stack.patch, +gdb-6.4-r5.ebuild:
+ Apply upstream patch to get usable backtraces on PPC. Research by illusion
+ <morgoth6@box43.pl> in bug #137125.
03 May 2006; Diego Pettenò <flameeyes@gentoo.org> gdb-6.4-r4.ebuild:
Add ~x86-fbsd keyword.
diff --git a/sys-devel/gdb/files/digest-gdb-6.4-r5 b/sys-devel/gdb/files/digest-gdb-6.4-r5
new file mode 100644
index 000000000000..fe4f6058786f
--- /dev/null
+++ b/sys-devel/gdb/files/digest-gdb-6.4-r5
@@ -0,0 +1,6 @@
+MD5 f62c14ba0316bc88e1b4b32a4e901ffb gdb-6.4.tar.bz2 13917226
+RMD160 17e020f34628a004c9ff4539b23e630719d8c34c gdb-6.4.tar.bz2 13917226
+SHA256 af6777836ab72b563a9e55467f990250e07e56c292cfac98762745c1512167ef gdb-6.4.tar.bz2 13917226
+MD5 35e70c29e393433b3847527d808f59c2 gdb_init.txt.bz2 6247
+RMD160 877e32656cd77f0083cc2506795979884671b7d4 gdb_init.txt.bz2 6247
+SHA256 dbd88def6a317eba947a7c37af471d9deb447c4a9906322c1afccd6537f1c724 gdb_init.txt.bz2 6247
diff --git a/sys-devel/gdb/files/gdb-6.4-ppc-stack.patch b/sys-devel/gdb/files/gdb-6.4-ppc-stack.patch
new file mode 100644
index 000000000000..3c95cd215bfe
--- /dev/null
+++ b/sys-devel/gdb/files/gdb-6.4-ppc-stack.patch
@@ -0,0 +1,27 @@
+Index: gdb-6.4/gdb/rs6000-tdep.c
+===================================================================
+--- gdb-6.4.orig/gdb/rs6000-tdep.c 2005-11-01 14:32:36.000000000 -0500
++++ gdb-6.4/gdb/rs6000-tdep.c 2005-12-10 00:22:15.000000000 -0500
+@@ -911,7 +911,7 @@ skip_prologue (CORE_ADDR pc, CORE_ADDR l
+
+ remember just the first one, but skip over additional
+ ones. */
+- if (lr_reg < 0)
++ if (lr_reg == -1)
+ lr_reg = (op & 0x03e00000);
+ if (lr_reg == 0)
+ r0_contains_arg = 0;
+@@ -1024,6 +1024,13 @@ skip_prologue (CORE_ADDR pc, CORE_ADDR l
+ continue;
+
+ }
++ else if ((op & 0xfe80ffff) == 0x42800005 && lr_reg != -1)
++ {
++ /* bcl 20,xx,.+4 is used to get the current PC, with or without
++ prediction bits. If the LR has already been saved, we can
++ skip it. */
++ continue;
++ }
+ else if (op == 0x48000005)
+ { /* bl .+4 used in
+ -mrelocatable */
diff --git a/sys-devel/gdb/gdb-6.4-r5.ebuild b/sys-devel/gdb/gdb-6.4-r5.ebuild
new file mode 100644
index 000000000000..de701ba43d30
--- /dev/null
+++ b/sys-devel/gdb/gdb-6.4-r5.ebuild
@@ -0,0 +1,117 @@
+# Copyright 1999-2006 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/sys-devel/gdb/gdb-6.4-r5.ebuild,v 1.1 2006/06/18 23:38:16 chainsaw 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=1
+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 ~x86-fbsd"
+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.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.3-partial-die-20050503.patch #120091
+ epatch "${FILESDIR}"/gdb-6.4-avr-eclipse.patch #126288
+
+ 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
+ epatch "${FILESDIR}"/gdb-6.4-ppc-stack.patch
+ fi
+
+ epatch "${FILESDIR}"/gdb-configure-LANG.patch
+ 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
+}