aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAnthony G. Basile <blueness@gentoo.org>2015-06-11 18:16:08 -0400
committerAnthony G. Basile <blueness@gentoo.org>2015-06-11 18:16:08 -0400
commit8eddda8072add075ebf56cf6d288bc1450d6b5f8 (patch)
tree373e2d36142a298a821f6643c097007aa38aa29f /sys-devel/gdb
downloadmusl-8eddda8072add075ebf56cf6d288bc1450d6b5f8.tar.gz
musl-8eddda8072add075ebf56cf6d288bc1450d6b5f8.tar.bz2
musl-8eddda8072add075ebf56cf6d288bc1450d6b5f8.zip
Initial migration from hardened-dev::musl
Diffstat (limited to 'sys-devel/gdb')
-rw-r--r--sys-devel/gdb/Manifest7
-rw-r--r--sys-devel/gdb/files/gdb-7.4-linux-nat.patch32
-rw-r--r--sys-devel/gdb/files/gdb-7.5.1-amd64-linux-nat.patch11
-rw-r--r--sys-devel/gdb/files/gdb-7.6-linux-low-threaddb.patch34
-rw-r--r--sys-devel/gdb/gdb-7.7.1-r99.ebuild213
-rw-r--r--sys-devel/gdb/metadata.xml11
6 files changed, 308 insertions, 0 deletions
diff --git a/sys-devel/gdb/Manifest b/sys-devel/gdb/Manifest
new file mode 100644
index 0000000..43bcc44
--- /dev/null
+++ b/sys-devel/gdb/Manifest
@@ -0,0 +1,7 @@
+AUX gdb-7.4-linux-nat.patch 778 SHA256 26d5bb6567c66300cf59380da18e790ee5a5d20b7be3c90e4cd0012e244ba306 SHA512 6aab4819bec533623b3b57e5fab43681693c350889c77749fa242b7d6131b6c026f029f5efca5d0b5ca162fa9c11cd00b18a402c05b44866de5e36bf8380f75e WHIRLPOOL ecb605f5e02d25416e8ab146bcade3aee0f6a5662557878176d9cb68d733c2e1433050e9a8389ce05cc79cdc0077b482fbed7d8a3e91c16994ecb3044b3f309f
+AUX gdb-7.5.1-amd64-linux-nat.patch 294 SHA256 3cd462098d40ed19073dbf9ca208e6f82bfa6ec0dedcca0d881cbcd6f1627f91 SHA512 86c0938f349fc122e275b9398690dabbae2253c018fa95b2b64584beb803bf343106dd39724a0783e6599af9496783ea0f12931dc4185c50103585a494fd3d94 WHIRLPOOL bb6f3c33b921b2c356c31e996906cda2a97303a726e7eb9b676f43f3b8fac19dcc7d9576a04ee8989ee4b365316c667fe0a1947bba65dc43236698357d338510
+AUX gdb-7.6-linux-low-threaddb.patch 1013 SHA256 bc5160a5d23565b8108c6324dea94af8b882121d01a322321fbed89196d55f6b SHA512 3f73326ff33e3bb12eb10c6912d514bd8e4baa6855b7262e8acccccc3ef1c6c070704106fc65fed6518818e5da0c087070f036e6403ffb812113b11559970520 WHIRLPOOL c6f590ebc638c31f740814d0bc9cac5ce03943d4c3a8f8786e2ccf60201361d079669173f8faa5d155fa530ffa59d02d086c4f66e7330837a2798ca4e8b18e68
+DIST gdb-7.7.1-patches-1.tar.xz 8600 SHA256 336cdcb2c90da0ca970dc21dc0285a8cb1fbcf81af63c49ee3f3d45c0aef7200 SHA512 427aba554e77ccfe9cdf5b0a833a1d64f1882e8f9e37d1288c5f2510cc63d154b4c22054a2a653d156e37044d7655937dee4a1a9cd0f9768abaafc8c34ae1cc0 WHIRLPOOL d5db4b874475724ac62bae9f1b33c566192570dd68195fe1c2065b7502a36b06f5a64079a88c63a965392d87e9b7a8eb0c709578297d6692fdce1ee933a867f4
+DIST gdb-7.7.1.tar.bz2 24849503 SHA256 0dbd5260406f1b0c70fcf027c6488527fadde0cd9bb574593491fe076eb03aa5 SHA512 887b9b726dae8f6e3e5e41574460a67e4f9002b0d47bc985dcf63bdf3518397a90b6a208cb5b19e5ed2341715ad75cfeed4df4fb423f39f74218e36bc87f1cab WHIRLPOOL 3b726d5f519167105248eb3a400be0d9bc70f72dbce9a04aa56a765b6c2ed9fc00a7c2e6ec72d0372f87bada1d74a40fc998c10a5322e2f3b5c8ea53c7ba6aa4
+EBUILD gdb-7.7.1-r99.ebuild 5967 SHA256 9d5b4c30ec58c13d57404f9f7b6c3d429ab0d21d94ed2957b31aa1eeccda791e SHA512 5e278577afd886cef054007437513aeb1a2311bd09ef4012df562eb6bd8a65e4db67ae0e7283c65ff1e4893e36247a7dfd381161b9733c98ab126e50773fbb92 WHIRLPOOL 8162a0ea2019510ad23dcd8b8138c99c3501d18917885be1962c947786d7eb064fea2eca4e23f6fa63840107605b7e8a9cd29362119bc0bcc66fadfdb72ebb0d
+MISC metadata.xml 552 SHA256 e86791dadf315a7a079e460854bcc4a28d7c69a93694efc85014b325824b81cf SHA512 bb4901b011b63137fb7e359ff657fbe8aa2bd7d36a78be397c163a0bd37486a32bddf4929ab5a2a3b7b7d52f3c2edd69ce18d4bb5e2f56b45d43bb59cb54f686 WHIRLPOOL 214e51279eed4230ed8cba15e42581213428ff06c32ad7832b17c1af6c2eae351a843aae51d78a99486b5bbfea2369faa4aaa4b99cae1ce7a41da5748d8e2211
diff --git a/sys-devel/gdb/files/gdb-7.4-linux-nat.patch b/sys-devel/gdb/files/gdb-7.4-linux-nat.patch
new file mode 100644
index 0000000..30bfbc8
--- /dev/null
+++ b/sys-devel/gdb/files/gdb-7.4-linux-nat.patch
@@ -0,0 +1,32 @@
+taken from sabotage linux
+
+the first chunk fixes build errors,
+the non_stop part below fixes thread debugging being available
+by default without setting any breakpoints or usage of libthread_db.
+
+--- gdb-7.4.org/gdb/linux-nat.c 2013-08-10 05:24:24.651000003 +0000
++++ gdb-7.4/gdb/linux-nat.c 2013-08-10 05:25:50.966000003 +0000
+@@ -71,6 +71,14 @@
+ # endif
+ #endif /* HAVE_PERSONALITY */
+
++#ifndef __SIGRTMIN
++#define __SIGRTMIN SIGRTMIN
++#endif
++
++#ifndef W_STOPCODE
++#define W_STOPCODE(sig) ((sig) << 8 | 0x7f)
++#endif
++
+ /* This comment documents high-level logic of this file.
+
+ Waiting for events in sync mode
+@@ -2265,7 +2273,7 @@
+ status = 0;
+ }
+
+- if (non_stop)
++ if (1)
+ {
+ /* Add the new thread to GDB's lists as soon as possible
+ so that:
diff --git a/sys-devel/gdb/files/gdb-7.5.1-amd64-linux-nat.patch b/sys-devel/gdb/files/gdb-7.5.1-amd64-linux-nat.patch
new file mode 100644
index 0000000..13459ad
--- /dev/null
+++ b/sys-devel/gdb/files/gdb-7.5.1-amd64-linux-nat.patch
@@ -0,0 +1,11 @@
+--- a/gdb-7.5.1/gdb/amd64-linux-nat.c
++++ b/gdb-7.5.1/gdb/amd64-linux-nat.c
+@@ -31,7 +31,7 @@
+ #include "elf/common.h"
+ #include <sys/uio.h>
+ #include <sys/ptrace.h>
+-#include <sys/debugreg.h>
++#include <asm/debugreg.h>
+ #include <sys/syscall.h>
+ #include <sys/procfs.h>
+ #include <sys/user.h>
diff --git a/sys-devel/gdb/files/gdb-7.6-linux-low-threaddb.patch b/sys-devel/gdb/files/gdb-7.6-linux-low-threaddb.patch
new file mode 100644
index 0000000..4b0f1aa
--- /dev/null
+++ b/sys-devel/gdb/files/gdb-7.6-linux-low-threaddb.patch
@@ -0,0 +1,34 @@
+taken from sabotage linux
+
+this patch fixes compilation of gdbserver on systems that don't have
+thread_db.h. in that case we fall back to gdb's own copy
+"gdb_thread_db.h", so the typedef of the td_thrhandle_t member is
+available, which is accessed in other parts of the code without
+checking whether thread_db.h is available.
+this is by far the cleaner solution, removing the accesses to the
+th member in other parts of the source would either litter it with
+ifdefs or cripple the functionality.
+
+--- gdb-7.6.2.org/gdb/gdbserver/linux-low.h
++++ gdb-7.6.2/gdb/gdbserver/linux-low.h
+@@ -18,6 +18,8 @@
+
+ #ifdef HAVE_THREAD_DB_H
+ #include <thread_db.h>
++#else
++#include "gdb_thread_db.h"
+ #endif
+ #include <signal.h>
+
+@@ -270,11 +272,9 @@
+ int need_step_over;
+
+ int thread_known;
+-#ifdef HAVE_THREAD_DB_H
+ /* The thread handle, used for e.g. TLS access. Only valid if
+ THREAD_KNOWN is set. */
+ td_thrhandle_t th;
+-#endif
+
+ /* Arch-specific additions. */
+ struct arch_lwp_info *arch_private;
diff --git a/sys-devel/gdb/gdb-7.7.1-r99.ebuild b/sys-devel/gdb/gdb-7.7.1-r99.ebuild
new file mode 100644
index 0000000..b588707
--- /dev/null
+++ b/sys-devel/gdb/gdb-7.7.1-r99.ebuild
@@ -0,0 +1,213 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/sys-devel/gdb/gdb-7.7.1.ebuild,v 1.10 2014/11/04 20:15:26 maekke Exp $
+
+EAPI="4"
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit flag-o-matic eutils python-single-r1
+
+export CTARGET=${CTARGET:-${CHOST}}
+if [[ ${CTARGET} == ${CHOST} ]] ; then
+ if [[ ${CATEGORY/cross-} != ${CATEGORY} ]] ; then
+ export CTARGET=${CATEGORY/cross-}
+ fi
+fi
+is_cross() { [[ ${CHOST} != ${CTARGET} ]] ; }
+
+RPM=
+MY_PV=${PV}
+case ${PV} in
+*.*.*.*.*.*)
+ # fedora version: gdb-6.8.50.20090302-8.fc11.src.rpm
+ inherit versionator rpm
+ gvcr() { get_version_component_range "$@"; }
+ MY_PV=$(gvcr 1-4)
+ RPM="${PN}-${MY_PV}-$(gvcr 5).fc$(gvcr 6).src.rpm"
+ SRC_URI="mirror://fedora/development/source/SRPMS/${RPM}"
+ ;;
+*.*.50.*)
+ # weekly snapshots
+ SRC_URI="ftp://sourceware.org/pub/gdb/snapshots/current/gdb-weekly-${PV}.tar.bz2"
+ ;;
+9999*)
+ # live git tree
+ EGIT_REPO_URI="git://sourceware.org/git/binutils-gdb.git"
+ inherit git-2
+ SRC_URI=""
+ ;;
+*)
+ # Normal upstream release
+ SRC_URI="mirror://gnu/gdb/${P}.tar.bz2
+ ftp://sourceware.org/pub/gdb/releases/${P}.tar.bz2"
+ ;;
+esac
+
+PATCH_VER="1"
+DESCRIPTION="GNU debugger"
+HOMEPAGE="http://sourceware.org/gdb/"
+SRC_URI="${SRC_URI} ${PATCH_VER:+mirror://gentoo/${P}-patches-${PATCH_VER}.tar.xz}"
+
+LICENSE="GPL-2 LGPL-2"
+SLOT="0"
+if [[ ${PV} != 9999* ]] ; then
+ KEYWORDS="amd64 arm ~mips ppc x86"
+fi
+IUSE="+client expat lzma multitarget nls +python +server test vanilla zlib"
+REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} )"
+
+RDEPEND="!dev-util/gdbserver
+ >=sys-libs/ncurses-5.2-r2
+ sys-libs/readline
+ expat? ( dev-libs/expat )
+ lzma? ( app-arch/xz-utils )
+ python? ( ${PYTHON_DEPS} )
+ zlib? ( sys-libs/zlib )"
+DEPEND="${RDEPEND}
+ app-arch/xz-utils
+ virtual/yacc
+ test? ( dev-util/dejagnu )
+ nls? ( sys-devel/gettext )"
+
+S=${WORKDIR}/${PN}-${MY_PV}
+
+pkg_setup() {
+ use python && python-single-r1_pkg_setup
+}
+
+src_prepare() {
+ epatch ${FILESDIR}/${PN}-7.4-linux-nat.patch
+ epatch ${FILESDIR}/${PN}-7.5.1-amd64-linux-nat.patch
+
+ [[ -n ${RPM} ]] && rpm_spec_epatch "${WORKDIR}"/gdb.spec
+ use vanilla || [[ -n ${PATCH_VER} ]] && EPATCH_SUFFIX="patch" epatch "${WORKDIR}"/patch
+ epatch_user
+ strip-linguas -u bfd/po opcodes/po
+ if [[ ${CHOST} == *-darwin* ]] ; then
+ # make sure we have a python-config that matches our install,
+ # such that the python check doesn't fail just because the
+ # gdb-provided copy isn't quite what our python installed
+ # version is
+ rm -f "${S}"/gdb/python/python-config.py || die
+ pushd "${S}"/gdb/python > /dev/null || die
+ ln -s "${T}"/${EPYTHON}/bin/python-config python-config.py || die
+ popd > /dev/null || die
+ fi
+}
+
+gdb_branding() {
+ printf "Gentoo ${PV} "
+ if ! use vanilla && [[ -n ${PATCH_VER} ]] ; then
+ printf "p${PATCH_VER}"
+ else
+ printf "vanilla"
+ fi
+}
+
+src_configure() {
+ strip-unsupported-flags
+
+ local myconf=(
+ --with-pkgversion="$(gdb_branding)"
+ --with-bugurl='http://bugs.gentoo.org/'
+ --disable-werror
+ # Disable modules that are in a combined binutils/gdb tree. #490566
+ --disable-{binutils,etc,gas,gold,gprof,ld}
+ )
+ local sysroot="${EPREFIX}/usr/${CTARGET}"
+ is_cross && myconf+=(
+ --with-sysroot="${sysroot}"
+ --includedir="${sysroot}/usr/include"
+ )
+
+ if use server && ! use client ; then
+ # just configure+build in the gdbserver subdir to speed things up
+ cd gdb/gdbserver
+ myconf+=( --program-transform-name='' )
+ else
+ # gdbserver only works for native targets (CHOST==CTARGET).
+ # it also doesn't support all targets, so rather than duplicate
+ # the target list (which changes between versions), use the
+ # "auto" value when things are turned on.
+ is_cross \
+ && myconf+=( --disable-gdbserver ) \
+ || myconf+=( $(use_enable server gdbserver auto) )
+ fi
+
+ if ! ( use server && ! use client ) ; then
+ # if we are configuring in the top level, then use all
+ # the additional global options
+ myconf+=(
+ --enable-64-bit-bfd
+ --disable-install-libbfd
+ --disable-install-libiberty
+ # This only disables building in the readline subdir.
+ # For gdb itself, it'll use the system version.
+ --disable-readline
+ --with-system-readline
+ --with-separate-debug-dir="${EPREFIX}"/usr/lib/debug
+ $(use_with expat)
+ $(use_with lzma)
+ $(use_enable nls)
+ $(use multitarget && echo --enable-targets=all)
+ $(use_with python python "${EPYTHON}")
+ $(use_with zlib)
+ )
+ fi
+
+ econf "${myconf[@]}"
+}
+
+src_test() {
+ nonfatal emake check || ewarn "tests failed"
+}
+
+src_install() {
+ use server && ! use client && cd gdb/gdbserver
+ default
+ use client && find "${ED}"/usr -name libiberty.a -delete
+ cd "${S}"
+
+ # Don't install docs when building a cross-gdb
+ if [[ ${CTARGET} != ${CHOST} ]] ; then
+ rm -r "${ED}"/usr/share
+ return 0
+ fi
+ # Install it by hand for now:
+ # http://sourceware.org/ml/gdb-patches/2011-12/msg00915.html
+ # Only install if it exists due to the twisted behavior (see
+ # notes in src_configure above).
+ [[ -e gdb/gdbserver/gdbreplay ]] && dobin gdb/gdbserver/gdbreplay
+
+ if use client ; then
+ docinto gdb
+ dodoc gdb/CONTRIBUTE gdb/README gdb/MAINTAINERS \
+ gdb/NEWS gdb/ChangeLog gdb/PROBLEMS
+ fi
+ docinto sim
+ dodoc sim/{ChangeLog,MAINTAINERS,README-HACKING}
+ if use server ; then
+ docinto gdbserver
+ dodoc gdb/gdbserver/{ChangeLog,README}
+ fi
+
+ if [[ -n ${PATCH_VER} ]] ; then
+ dodoc "${WORKDIR}"/extra/gdbinit.sample
+ fi
+
+ # Remove shared info pages
+ rm -f "${ED}"/usr/share/info/{annotate,bfd,configure,standards}.info*
+}
+
+pkg_postinst() {
+ # portage sucks and doesnt unmerge files in /etc
+ rm -vf "${EROOT}"/etc/skel/.gdbinit
+
+ if use prefix && [[ ${CHOST} == *-darwin* ]] ; then
+ ewarn "gdb is unable to get a mach task port when installed by Prefix"
+ ewarn "Portage, unprivileged. To make gdb fully functional you'll"
+ ewarn "have to perform the following steps:"
+ ewarn " % sudo chgrp procmod ${EPREFIX}/usr/bin/gdb"
+ ewarn " % sudo chmod g+s ${EPREFIX}/usr/bin/gdb"
+ fi
+}
diff --git a/sys-devel/gdb/metadata.xml b/sys-devel/gdb/metadata.xml
new file mode 100644
index 0000000..ab9c41a
--- /dev/null
+++ b/sys-devel/gdb/metadata.xml
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+<herd>toolchain</herd>
+<use>
+ <flag name='client'>Install the main "gdb" program (most people want this)</flag>
+ <flag name='multitarget'>Support all known targets in one gdb binary</flag>
+ <flag name='python'>Enable support for the new internal scripting language, as well as extended pretty printers</flag>
+ <flag name='server'>Install the "gdbserver" program (useful for embedded/remote targets)</flag>
+</use>
+</pkgmetadata>