diff options
author | Tony Vroon <chainsaw@gentoo.org> | 2006-06-18 23:38:16 +0000 |
---|---|---|
committer | Tony Vroon <chainsaw@gentoo.org> | 2006-06-18 23:38:16 +0000 |
commit | ffa5d17b1511d2dfcce2624bacb9d7099ece4f91 (patch) | |
tree | 64e38a4fcfd54f11dcae30f4415f1721f0cf6876 /sys-devel/gdb | |
parent | Version bump, added --enable-thread-check (diff) | |
download | gentoo-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/ChangeLog | 9 | ||||
-rw-r--r-- | sys-devel/gdb/files/digest-gdb-6.4-r5 | 6 | ||||
-rw-r--r-- | sys-devel/gdb/files/gdb-6.4-ppc-stack.patch | 27 | ||||
-rw-r--r-- | sys-devel/gdb/gdb-6.4-r5.ebuild | 117 |
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 +} |