* [gentoo-commits] repo/gentoo:master commit in: sys-devel/gdb/files/, sys-devel/gdb/
@ 2018-06-30 11:06 Sergei Trofimovich
0 siblings, 0 replies; 18+ messages in thread
From: Sergei Trofimovich @ 2018-06-30 11:06 UTC (permalink / raw
To: gentoo-commits
commit: c61c0eeba20f941011ed6d87c86664c77f9b4152
Author: Sergei Trofimovich <slyfox <AT> gentoo <DOT> org>
AuthorDate: Sat Jun 30 11:06:26 2018 +0000
Commit: Sergei Trofimovich <slyfox <AT> gentoo <DOT> org>
CommitDate: Sat Jun 30 11:06:40 2018 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=c61c0eeb
sys-devel/gdb: fix build failure on ia64, bug #658014
It's a backport of upstream fix by Émeric Maschino
https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;a=commitdiff;h=5a6c3296a7a90694ad4042f6256f3da6d4fa4ee8
Reported-by: Émeric Maschino
Fixed-by: Émeric Maschino
Closes: https://bugs.gentoo.org/658014
Package-Manager: Portage-2.3.41, Repoman-2.3.9
sys-devel/gdb/files/gdb-7.12.1-ia64-include.patch | 26 +++++++++++++++++++++++
sys-devel/gdb/gdb-7.12.1.ebuild | 1 +
2 files changed, 27 insertions(+)
diff --git a/sys-devel/gdb/files/gdb-7.12.1-ia64-include.patch b/sys-devel/gdb/files/gdb-7.12.1-ia64-include.patch
new file mode 100644
index 00000000000..3b910da4227
--- /dev/null
+++ b/sys-devel/gdb/files/gdb-7.12.1-ia64-include.patch
@@ -0,0 +1,26 @@
+fixes build failure on ia64
+
+It's a backport of upstream fix by Émeric Maschino
+https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;a=commitdiff;h=5a6c3296a7a90694ad4042f6256f3da6d4fa4ee8
+https://bugs.gentoo.org/658014
+--- a/gdb/nat/linux-ptrace.c 2017-01-21 14:48:42.000000000 +0100
++++ b/gdb/nat/linux-ptrace.c 2018-06-20 00:03:40.520317323 +0200
+@@ -21,8 +21,6 @@
+ #include "linux-procfs.h"
+ #include "linux-waitpid.h"
+ #include "buffer.h"
+-#include "gdb_wait.h"
+-#include "gdb_ptrace.h"
+ #include <sys/procfs.h>
+
+ /* Stores the ptrace options supported by the running kernel.
+--- a/gdb/nat/linux-ptrace.h 2017-01-21 14:46:47.000000000 +0100
++++ b/gdb/nat/linux-ptrace.h 2018-06-20 00:04:28.706220951 +0200
+@@ -21,6 +21,7 @@
+ struct buffer;
+
+ #include "nat/gdb_ptrace.h"
++#include "gdb_wait.h"
+
+ #ifdef __UCLIBC__
+ #if !(defined(__UCLIBC_HAS_MMU__) || defined(__ARCH_HAS_MMU__))
diff --git a/sys-devel/gdb/gdb-7.12.1.ebuild b/sys-devel/gdb/gdb-7.12.1.ebuild
index a1863b60ff0..48dde882bdd 100644
--- a/sys-devel/gdb/gdb-7.12.1.ebuild
+++ b/sys-devel/gdb/gdb-7.12.1.ebuild
@@ -92,6 +92,7 @@ pkg_setup() {
src_prepare() {
[[ -n ${RPM} ]] && rpm_spec_epatch "${WORKDIR}"/gdb.spec
! use vanilla && [[ -n ${PATCH_VER} ]] && EPATCH_SUFFIX="patch" epatch "${WORKDIR}"/patch
+ epatch "${FILESDIR}"/${P}-ia64-include.patch #655270
epatch_user
strip-linguas -u bfd/po opcodes/po
}
^ permalink raw reply related [flat|nested] 18+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: sys-devel/gdb/files/, sys-devel/gdb/
@ 2018-10-21 16:27 Sergei Trofimovich
0 siblings, 0 replies; 18+ messages in thread
From: Sergei Trofimovich @ 2018-10-21 16:27 UTC (permalink / raw
To: gentoo-commits
commit: 63d949769e25176de0d879cbef2b7cd80348ad0f
Author: Sergei Trofimovich <slyfox <AT> gentoo <DOT> org>
AuthorDate: Sun Oct 21 16:26:47 2018 +0000
Commit: Sergei Trofimovich <slyfox <AT> gentoo <DOT> org>
CommitDate: Sun Oct 21 16:27:36 2018 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=63d94976
sys-devel/gdb: link against tinfow first, then tinfo. bug #669096
In bug #669096 gdb was directly linked both
to libtinfo.so.6 and libncursesw.so.6:
$ lddtree /usr/bin/gdb
/usr/bin/gdb (interpreter => /lib64/ld-linux-x86-64.so.2)
libtinfo.so.6 => /lib64/libtinfo.so.6
libncursesw.so.6 => /lib64/libncursesw.so.6
libtinfow.so.6 => /lib64/libtinfow.so.6
...
and caused gdb to SIGSEGV at start.
Let's consistently link against *w libraries when both available.
Note: the fix on it's own is not enough:
- we don't pass include paths to ncursesw libraries
- libreadline.so.7 is still linked against libtinfo.so.6 in Gentoo
and needs a separate fix.
But it's enough to make immediate SIGSEGV to go away.
Reported-by: Michał Górny
Bug: https://bugs.gentoo.org/669096
Signed-off-by: Sergei Trofimovich <slyfox <AT> gentoo.org>
Package-Manager: Portage-2.3.51, Repoman-2.3.11
sys-devel/gdb/files/gdb-8.2-tinfow.patch | 44 ++++++
sys-devel/gdb/gdb-8.2-r1.ebuild | 261 +++++++++++++++++++++++++++++++
2 files changed, 305 insertions(+)
diff --git a/sys-devel/gdb/files/gdb-8.2-tinfow.patch b/sys-devel/gdb/files/gdb-8.2-tinfow.patch
new file mode 100644
index 00000000000..48f6109664a
--- /dev/null
+++ b/sys-devel/gdb/files/gdb-8.2-tinfow.patch
@@ -0,0 +1,44 @@
+Try to link gdb against tinfow first, then tinfo.
+
+In bug #669096 gdb was directly linked both
+to libtinfo.so.6 and libncursesw.so.6:
+ $ lddtree /usr/bin/gdb
+ /usr/bin/gdb (interpreter => /lib64/ld-linux-x86-64.so.2)
+ libtinfo.so.6 => /lib64/libtinfo.so.6
+ libncursesw.so.6 => /lib64/libncursesw.so.6
+ libtinfow.so.6 => /lib64/libtinfow.so.6
+ ...
+and caused gdb to SIGSEGV at start.
+
+Let's consistently link against *w libraries.
+
+Note: the fix on it's own is not enough:
+- we don't pass include paths to ncursesw libraries
+- libreadline.so.7 is still linked against libtinfo.so.6 in Gentoo
+ and needs a separate fix.
+
+But it's enough to make immediate SIGSEGV to go away.
+
+Reported-by: Michał Górny
+Bug: https://bugs.gentoo.org/669096
+--- a/gdb/configure.ac
++++ b/gdb/configure.ac
+@@ -616,4 +616,4 @@ esac
+
+-# These are the libraries checked by Readline.
+-AC_SEARCH_LIBS(tgetent, [termcap tinfo curses ncursesw ncurses])
++# These are the libraries checked by Readline. Not really: readline does not know about *w libs.
++AC_SEARCH_LIBS(tgetent, [termcap tinfow tinfo curses ncursesw ncurses])
+
+--- a/gdb/configure
++++ b/gdb/configure
+@@ -8984,3 +8984,3 @@ esac
+
+-# These are the libraries checked by Readline.
++# These are the libraries checked by Readline. Not really: readline does not know about *w libs.
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing tgetent" >&5
+@@ -9009,3 +9009,3 @@ return tgetent ();
+ _ACEOF
+-for ac_lib in '' termcap tinfo curses ncursesw ncurses; do
++for ac_lib in '' termcap tinfow tinfo curses ncursesw ncurses; do
+ if test -z "$ac_lib"; then
diff --git a/sys-devel/gdb/gdb-8.2-r1.ebuild b/sys-devel/gdb/gdb-8.2-r1.ebuild
new file mode 100644
index 00000000000..d7f7e1ef262
--- /dev/null
+++ b/sys-devel/gdb/gdb-8.2-r1.ebuild
@@ -0,0 +1,261 @@
+# Copyright 1999-2018 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+PYTHON_COMPAT=( python{2_7,3_4,3_5,3_6} )
+
+inherit epatch eutils flag-o-matic python-single-r1
+
+export CTARGET=${CTARGET:-${CHOST}}
+if [[ ${CTARGET} == ${CHOST} ]] ; then
+ if [[ ${CATEGORY} == cross-* ]] ; then
+ export CTARGET=${CATEGORY#cross-}
+ fi
+fi
+is_cross() { [[ ${CHOST} != ${CTARGET} ]] ; }
+
+RPM=
+MY_PV=${PV}
+case ${PV} in
+9999*)
+ # live git tree
+ EGIT_REPO_URI="git://sourceware.org/git/binutils-gdb.git"
+ inherit git-r3
+ SRC_URI=""
+ ;;
+*.*.50.2???????)
+ # weekly snapshots
+ SRC_URI="ftp://sourceware.org/pub/gdb/snapshots/current/gdb-weekly-${PV}.tar.xz"
+ ;;
+*.*.*.*.*.*)
+ # fedora versions; note we swap the rpm & fedora core versions.
+ # gdb-6.8.50.20090302-8.fc11.src.rpm -> gdb-6.8.50.20090302.11.8.ebuild
+ # gdb-7.9-11.fc23.src.rpm -> gdb-7.9.23.11.ebuild
+ inherit versionator rpm
+ gvcr() { get_version_component_range "$@"; }
+ parse_fedora_ver() {
+ set -- $(get_version_components)
+ MY_PV=$(gvcr 1-$(( $# - 2 )))
+ RPM="${PN}-${MY_PV}-$(gvcr $#).fc$(gvcr $(( $# - 1 ))).src.rpm"
+ }
+ parse_fedora_ver
+ SRC_URI="mirror://fedora-dev/development/rawhide/source/SRPMS/g/${RPM}"
+ ;;
+*)
+ # Normal upstream release
+ SRC_URI="mirror://gnu/gdb/${P}.tar.xz
+ ftp://sourceware.org/pub/gdb/releases/${P}.tar.xz"
+ ;;
+esac
+
+PATCH_VER="1"
+PATCH_DEV="slyfox"
+DESCRIPTION="GNU debugger"
+HOMEPAGE="https://sourceware.org/gdb/"
+SRC_URI="${SRC_URI}
+ ${PATCH_DEV:+https://dev.gentoo.org/~${PATCH_DEV}/distfiles/${PN}-8.1-patches-${PATCH_VER}.tar.xz}
+ ${PATCH_VER:+mirror://gentoo/${PN}-8.1-patches-${PATCH_VER}.tar.xz}
+"
+
+LICENSE="GPL-2 LGPL-2"
+SLOT="0"
+if [[ ${PV} != 9999* ]] ; then
+ KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~ppc-aix ~x64-cygwin ~amd64-fbsd ~x86-fbsd ~amd64-linux ~x86-linux ~x64-macos ~x86-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
+fi
+IUSE="+client lzma multitarget nls +python +server test vanilla xml"
+REQUIRED_USE="
+ python? ( ${PYTHON_REQUIRED_USE} )
+ || ( client server )
+"
+
+RDEPEND="
+ server? ( !dev-util/gdbserver )
+ client? (
+ dev-libs/mpfr:0=
+ >=sys-libs/ncurses-5.2-r2:0=
+ sys-libs/readline:0=
+ lzma? ( app-arch/xz-utils )
+ python? ( ${PYTHON_DEPS} )
+ xml? ( dev-libs/expat )
+ sys-libs/zlib
+ )"
+DEPEND="${RDEPEND}
+ app-arch/xz-utils
+ sys-apps/texinfo
+ client? (
+ 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() {
+ [[ -n ${RPM} ]] && rpm_spec_epatch "${WORKDIR}"/gdb.spec
+
+ # upstreamed
+ EPATCH_EXCLUDE+=" 01_all_ia64-TRAP_HWBKPT.patch"
+ EPATCH_EXCLUDE+=" 02_all_solaris-no-uuidsys.patch"
+ ! use vanilla && [[ -n ${PATCH_VER} ]] && EPATCH_SUFFIX="patch" epatch "${WORKDIR}"/patch
+ eapply "${FILESDIR}"/${P}-tinfow.patch
+
+ default
+
+ strip-linguas -u bfd/po opcodes/po
+}
+
+gdb_branding() {
+ printf "Gentoo ${PV} "
+ if ! use vanilla && [[ -n ${PATCH_VER} ]] ; then
+ printf "p${PATCH_VER}"
+ else
+ printf "vanilla"
+ fi
+ [[ -n ${EGIT_COMMIT} ]] && printf " ${EGIT_COMMIT}"
+}
+
+src_configure() {
+ strip-unsupported-flags
+
+ local myconf=(
+ --with-pkgversion="$(gdb_branding)"
+ --with-bugurl='https://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"
+ --with-gdb-datadir="\${datadir}/gdb/${CTARGET}"
+ )
+
+ 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
+ # Disable guile for now as it requires guile-2.x #562902
+ --without-guile
+ # This only disables building in the readline subdir.
+ # For gdb itself, it'll use the system version.
+ --disable-readline
+ --with-system-readline
+ # This only disables building in the zlib subdir.
+ # For gdb itself, it'll use the system version.
+ --without-zlib
+ --with-system-zlib
+ --with-separate-debug-dir="${EPREFIX}"/usr/lib/debug
+ $(use_with xml expat)
+ $(use_with lzma)
+ $(use_enable nls)
+ $(use multitarget && echo --enable-targets=all)
+ $(use_with python python "${EPYTHON}")
+ )
+ fi
+ if use sparc-solaris || use x86-solaris ; then
+ # disable largefile support
+ # https://sourceware.org/ml/gdb-patches/2014-12/msg00058.html
+ myconf+=( --disable-largefile )
+ fi
+
+ econf "${myconf[@]}"
+}
+
+src_test() {
+ nonfatal emake check || ewarn "tests failed"
+}
+
+src_install() {
+ if use server && ! use client; then
+ cd gdb/gdbserver || die
+ fi
+ default
+ if use client; then
+ find "${ED}"/usr -name libiberty.a -delete || die
+ fi
+ cd "${S}" || die
+
+ # Delete translations that conflict with binutils-libs. #528088
+ # Note: Should figure out how to store these in an internal gdb dir.
+ if use nls ; then
+ find "${ED}" \
+ -regextype posix-extended -regex '.*/(bfd|opcodes)[.]g?mo$' \
+ -delete || die
+ fi
+
+ # Don't install docs when building a cross-gdb
+ if [[ ${CTARGET} != ${CHOST} ]] ; then
+ rm -rf "${ED}"/usr/share/{doc,info,locale} || die
+ local f
+ for f in "${ED}"/usr/share/man/*/* ; do
+ if [[ ${f##*/} != ${CTARGET}-* ]] ; then
+ mv "${f}" "${f%/*}/${CTARGET}-${f##*/}" || die
+ fi
+ done
+ return 0
+ fi
+ # Install it by hand for now:
+ # https://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*
+
+ # gcore is part of ubin on freebsd
+ if [[ ${CHOST} == *-freebsd* ]]; then
+ rm "${ED}"/usr/bin/gcore || die
+ fi
+}
+
+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
+}
^ permalink raw reply related [flat|nested] 18+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: sys-devel/gdb/files/, sys-devel/gdb/
@ 2019-01-28 22:01 Sergei Trofimovich
0 siblings, 0 replies; 18+ messages in thread
From: Sergei Trofimovich @ 2019-01-28 22:01 UTC (permalink / raw
To: gentoo-commits
commit: 46f7eccbcb65b1b4b6802480250c153d05854c35
Author: Sergei Trofimovich <slyfox <AT> gentoo <DOT> org>
AuthorDate: Mon Jan 28 22:00:25 2019 +0000
Commit: Sergei Trofimovich <slyfox <AT> gentoo <DOT> org>
CommitDate: Mon Jan 28 22:00:53 2019 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=46f7eccb
sys-devel/gdb: pull aarch64-musl fix, bug #676620
Reported-by: eroen
Closes: https://bugs.gentoo.org/676620
Package-Manager: Portage-2.3.58, Repoman-2.3.12
Signed-off-by: Sergei Trofimovich <slyfox <AT> gentoo.org>
sys-devel/gdb/files/gdb-8.2.1-aarch64-musl.patch | 49 ++++++++++++++++++++++++
sys-devel/gdb/gdb-8.2.1.ebuild | 3 +-
2 files changed, 51 insertions(+), 1 deletion(-)
diff --git a/sys-devel/gdb/files/gdb-8.2.1-aarch64-musl.patch b/sys-devel/gdb/files/gdb-8.2.1-aarch64-musl.patch
new file mode 100644
index 00000000000..70f42df90a9
--- /dev/null
+++ b/sys-devel/gdb/files/gdb-8.2.1-aarch64-musl.patch
@@ -0,0 +1,49 @@
+https://bugs.gentoo.org/676620
+
+From 51b4f73a37c2e7eec31e932fc3c8dae879735f63 Mon Sep 17 00:00:00 2001
+From: Szabolcs Nagy <szabolcs.nagy@arm.com>
+Date: Thu, 13 Dec 2018 17:47:17 +0000
+Subject: [PATCH] AArch64: Fix the gdb build with musl libc
+
+Including asm/sigcontext.h together with libc headers is not valid. In
+general linux headers may not work with libc headers, so mixing them
+should be avoided, especially when the linux header defines types that
+are also exposed in libc headers.
+
+In case of asm/sigcontext.h glibc happens to work because glibc signal.h
+directly includes it, but e.g. in musl libc signal.h replicates the
+sigcontext.h definitions in an abi compatible way which are in conflict
+with the linux definitions when both headers are included.
+
+Since old linux headers or old libc headers may not have the necessary
+definitions, gdb has to replicate the definitions it relies on anyway.
+Which is fine since all definitions must be ABI stable. For linux apis
+that are not available via libc headers, replicating the definitions in
+gdb is the most reliable way to use them.
+
+Note: asm/ptrace.h includes asm/sigcontext.h in some versions of linux
+headers, which is just as problematic and should be fixed in linux.
+
+gdb/ChangeLog:
+
+ * nat/aarch64-sve-linux-ptrace.h: Include signal.h instead of
+ asm/sigcontext.h.
+---
+ gdb/ChangeLog | 5 +++++
+ gdb/nat/aarch64-sve-linux-ptrace.h | 2 +-
+ 2 files changed, 6 insertions(+), 1 deletion(-)
+
+--- a/gdb/nat/aarch64-sve-linux-ptrace.h
++++ b/gdb/nat/aarch64-sve-linux-ptrace.h
+@@ -20,7 +20,7 @@
+ #ifndef AARCH64_SVE_LINUX_PTRACE_H
+ #define AARCH64_SVE_LINUX_PTRACE_H
+
+-#include <asm/sigcontext.h>
++#include <signal.h>
+ #include <sys/utsname.h>
+ #include <sys/ptrace.h>
+ #include <asm/ptrace.h>
+--
+2.20.1
+
diff --git a/sys-devel/gdb/gdb-8.2.1.ebuild b/sys-devel/gdb/gdb-8.2.1.ebuild
index c7a030aa640..57cee06eec9 100644
--- a/sys-devel/gdb/gdb-8.2.1.ebuild
+++ b/sys-devel/gdb/gdb-8.2.1.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2018 Gentoo Authors
+# Copyright 1999-2019 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
@@ -93,6 +93,7 @@ S=${WORKDIR}/${PN}-${MY_PV}
PATCHES=(
"${FILESDIR}"/${PN}-8.2-tinfow.patch
"${FILESDIR}"/${PN}-8.2-sparc-fix-syntax.patch
+ "${FILESDIR}"/${PN}-8.2.1-aarch64-musl.patch
)
pkg_setup() {
^ permalink raw reply related [flat|nested] 18+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: sys-devel/gdb/files/, sys-devel/gdb/
@ 2019-03-14 22:49 Sergei Trofimovich
0 siblings, 0 replies; 18+ messages in thread
From: Sergei Trofimovich @ 2019-03-14 22:49 UTC (permalink / raw
To: gentoo-commits
commit: 890e99a6aef35c3e8c9a828bdf5ca9eafec6a1bb
Author: Sergei Trofimovich <slyfox <AT> gentoo <DOT> org>
AuthorDate: Thu Mar 14 22:49:20 2019 +0000
Commit: Sergei Trofimovich <slyfox <AT> gentoo <DOT> org>
CommitDate: Thu Mar 14 22:49:37 2019 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=890e99a6
sys-devel/gdb: fix build against -std=c++17
Patch is proposed upstream as:
https://sourceware.org/ml/gdb-patches/2019-03/msg00306.html
Reported-by: Helmut Jarausch
Closes: https://bugs.gentoo.org/680232
Package-Manager: Portage-2.3.62, Repoman-2.3.12
Signed-off-by: Sergei Trofimovich <slyfox <AT> gentoo.org>
sys-devel/gdb/files/gdb-8.3.50.20190312-c++17.patch | 19 +++++++++++++++++++
sys-devel/gdb/gdb-8.3.50.20190312-r1.ebuild | 1 +
2 files changed, 20 insertions(+)
diff --git a/sys-devel/gdb/files/gdb-8.3.50.20190312-c++17.patch b/sys-devel/gdb/files/gdb-8.3.50.20190312-c++17.patch
new file mode 100644
index 00000000000..c134cbcae8d
--- /dev/null
+++ b/sys-devel/gdb/files/gdb-8.3.50.20190312-c++17.patch
@@ -0,0 +1,19 @@
+https://bugs.gentoo.org/680232
+
+--- a/gdb/unittests/string_view-selftests.c
++++ b/gdb/unittests/string_view-selftests.c
+@@ -170,10 +170,12 @@ run_tests ()
+ } /* namespace string_view */
+ } /* namespace selftests */
+
++#endif /* __cplusplus < 201703L */
++
+ void
+ _initialize_string_view_selftests ()
+ {
++#if defined(GDB_STRING_VIEW)
+ selftests::register_test ("string_view", selftests::string_view::run_tests);
++#endif
+ }
+-
+-#endif /* __cplusplus < 201703L */
diff --git a/sys-devel/gdb/gdb-8.3.50.20190312-r1.ebuild b/sys-devel/gdb/gdb-8.3.50.20190312-r1.ebuild
index eda29eb876a..3b02bda0bd9 100644
--- a/sys-devel/gdb/gdb-8.3.50.20190312-r1.ebuild
+++ b/sys-devel/gdb/gdb-8.3.50.20190312-r1.ebuild
@@ -95,6 +95,7 @@ BDEPEND="
PATCHES=(
"${FILESDIR}"/${P}-source-highlight.patch
+ "${FILESDIR}"/${P}-c++17.patch
)
S=${WORKDIR}/${PN}-${MY_PV}
^ permalink raw reply related [flat|nested] 18+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: sys-devel/gdb/files/, sys-devel/gdb/
@ 2019-08-09 20:50 Andreas K. Hüttel
0 siblings, 0 replies; 18+ messages in thread
From: Andreas K. Hüttel @ 2019-08-09 20:50 UTC (permalink / raw
To: gentoo-commits
commit: 929a060890bd8cd0ffd4eda91cab3682fd137a5e
Author: Andreas K. Hüttel <dilfridge <AT> gentoo <DOT> org>
AuthorDate: Fri Aug 9 20:50:10 2019 +0000
Commit: Andreas K. Hüttel <dilfridge <AT> gentoo <DOT> org>
CommitDate: Fri Aug 9 20:50:10 2019 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=929a0608
sys-devel/gdb: Remove old
Versions prior to 8.3 cannot handle debug info built with
binutils 2.32 and later. Old binutils will be masked because
of CVEs.
Package-Manager: Portage-2.3.70, Repoman-2.3.16
Signed-off-by: Andreas K. Hüttel <dilfridge <AT> gentoo.org>
sys-devel/gdb/Manifest | 8 -
sys-devel/gdb/files/gdb-7.12.1-ia64-include.patch | 26 --
sys-devel/gdb/files/gdb-8.2-sparc-fix-syntax.patch | 10 -
sys-devel/gdb/files/gdb-8.2-tinfow.patch | 44 ----
sys-devel/gdb/files/gdb-8.2.1-aarch64-musl.patch | 49 ----
sys-devel/gdb/gdb-7.10.1.ebuild | 235 ------------------
sys-devel/gdb/gdb-7.12.1.ebuild | 236 ------------------
sys-devel/gdb/gdb-7.9.1.ebuild | 221 -----------------
sys-devel/gdb/gdb-8.1-r1.ebuild | 257 --------------------
sys-devel/gdb/gdb-8.1-r2.ebuild | 256 --------------------
sys-devel/gdb/gdb-8.1.1.ebuild | 256 --------------------
sys-devel/gdb/gdb-8.2-r1.ebuild | 265 ---------------------
sys-devel/gdb/gdb-8.2.1.ebuild | 262 --------------------
sys-devel/gdb/gdb-8.2.ebuild | 260 --------------------
14 files changed, 2385 deletions(-)
diff --git a/sys-devel/gdb/Manifest b/sys-devel/gdb/Manifest
index 9ca691037e8..6a9e27259f5 100644
--- a/sys-devel/gdb/Manifest
+++ b/sys-devel/gdb/Manifest
@@ -1,9 +1 @@
-DIST gdb-7.10.1.tar.xz 18531436 BLAKE2B b50a1b6b5b867e4a52943fdc4992c654ceec180099771381df78de5ba79086e822264356a762c61b89e986407d6f0cce336be216276545591e637131dc02f4a8 SHA512 17a5138277a31685a5c2a841cb47ed9bc4626ea617b8ca77750513b300299f4fbbffe504958b5372de610dcb952c679cf8fa9c1bdadd380294fbf59b6e366010
-DIST gdb-7.12.1.tar.xz 19225392 BLAKE2B 2e4b7fe69c3cb11c04b505d1e110bf0a9ca65b6178f3e6a6ccc11fde1e8750b595016baf64adb2c22903d346cec1dab15574681de812ac8d260aebf4152a3027 SHA512 0ac8d0a495103611ef41167a08313a010dce6ca4c6d827cbe8558a0c1a1a8a6bfa53f1b7704251289cababbfaaf9e075550cdf741a54d6cd9ca3433d910efcd8
-DIST gdb-7.9.1.tar.xz 17867692 BLAKE2B f5de07a4ebf1a5112a1b40341b217d08f1eb6820eb2237a4be2cd289f832600b81b3c14f4632a762fdc13945a2fb65ffb58f13eb330f3d48892799e27bb62c87 SHA512 eebdf88b24e52e792b8a4b89ea85790de72b462a7810b44975fdf4232c068f353b15506071f450102a9d4bcecdde8e93dc3748a10699b7f73f3e04fb2d9d8414
-DIST gdb-8.1-patches-1.tar.xz 8768 BLAKE2B 792ceddcb8eafd028db23d69ad5d9eb00223722520c6ff0a23a24fee1a33dceb02f05e61a1d6c3700835c480b38d66f43f71ef3c4af406d4ae1147eaaf8f311e SHA512 87a5c9d9207817245e1ffd07fdad2cb566de4fc11725aa0e49e58268c3ab1ae3b4b9f4b9faa55acc8cb4c3c7cb5a3875ea7da02abeb8f775953a8aed2e2c6403
-DIST gdb-8.1.1.tar.xz 20064728 BLAKE2B bd17a27a3974a34b94aa5898a97cf26dba9e91b815f25e6a0d67a7b4bc718ed2701a38cddbbfddce087c5d2d24c596daee4f06ea1acfe662f47a909409815311 SHA512 7dcd5e8c90de92f577834d887b5f54edb93a07083bfe661bc46c270a6cc4919f0b348e7e2fe8ae4511298a570ef150eeefdc667ef7cf527f0cf60943177ab6c9
-DIST gdb-8.1.tar.xz 20095080 BLAKE2B 9332058b8b723261ba215124f42a2d6ba916219efdfb3c23ae1f48fecf131c801bbd31b345f2c8339b23d74da690be0260ac31f8f2e79549b62f0880199bfdec SHA512 ffd82f415d7652d62dad1716c307836f594217a363429609beb7d70239e8bf06b73b393345b0e000796228e56681ed7656ac3c8be05e91d6d652ab0d5b1dc357
-DIST gdb-8.2.1.tar.xz 20170388 BLAKE2B 4008232de312ee71d379ac32a0ee6d63a828c0b58e84799ab9148760ce184400920f7b22c204b9878b09c452412b1b4db507a9185456dc973538de8b88483259 SHA512 2aa81cfd389bb48c35d7d9f95cc10e88b4f7ad4597bdde0f8f1fd312f60f10d9fb2cc6e5a9355227d89ff328f7feb0fc411a69394560cafeb9fa75d35d896d11
-DIST gdb-8.2.tar.xz 20173112 BLAKE2B 921fdc02f7192f0bd76eb176f857c9c041b7316dc10c5e800eb81deef82a3186d511ec431145f952e5fbd20a4b2c89c14652c42dc52e0d8152acd811f3ae44a7 SHA512 11cc481bebc51eb6db73249ecb62b8c07455cf3db169f4860b3a83114849fbd2b5860a2db64488ba6c5909cf07b255c04770f1e36059eae6bee16d2a3581be90
DIST gdb-8.3.tar.xz 20490300 BLAKE2B 24b2a2a9bda7ae8093f757e42d6d0ab5642ff1d7e5a832896c28c5b17961166072c0dae158c04d7f7660cb059194c259bcff71ad5763960027b0ac3d7045eb1a SHA512 47ac074d20a09a3fac8f4a41dce0a0cbe6ef702f7dc21ba8b7d650d306128dcae481e9a16bf65e596b3a541dc82ae57c02bcbb786d551b4ef3e2917b9b6f0ae1
diff --git a/sys-devel/gdb/files/gdb-7.12.1-ia64-include.patch b/sys-devel/gdb/files/gdb-7.12.1-ia64-include.patch
deleted file mode 100644
index 3b910da4227..00000000000
--- a/sys-devel/gdb/files/gdb-7.12.1-ia64-include.patch
+++ /dev/null
@@ -1,26 +0,0 @@
-fixes build failure on ia64
-
-It's a backport of upstream fix by Émeric Maschino
-https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;a=commitdiff;h=5a6c3296a7a90694ad4042f6256f3da6d4fa4ee8
-https://bugs.gentoo.org/658014
---- a/gdb/nat/linux-ptrace.c 2017-01-21 14:48:42.000000000 +0100
-+++ b/gdb/nat/linux-ptrace.c 2018-06-20 00:03:40.520317323 +0200
-@@ -21,8 +21,6 @@
- #include "linux-procfs.h"
- #include "linux-waitpid.h"
- #include "buffer.h"
--#include "gdb_wait.h"
--#include "gdb_ptrace.h"
- #include <sys/procfs.h>
-
- /* Stores the ptrace options supported by the running kernel.
---- a/gdb/nat/linux-ptrace.h 2017-01-21 14:46:47.000000000 +0100
-+++ b/gdb/nat/linux-ptrace.h 2018-06-20 00:04:28.706220951 +0200
-@@ -21,6 +21,7 @@
- struct buffer;
-
- #include "nat/gdb_ptrace.h"
-+#include "gdb_wait.h"
-
- #ifdef __UCLIBC__
- #if !(defined(__UCLIBC_HAS_MMU__) || defined(__ARCH_HAS_MMU__))
diff --git a/sys-devel/gdb/files/gdb-8.2-sparc-fix-syntax.patch b/sys-devel/gdb/files/gdb-8.2-sparc-fix-syntax.patch
deleted file mode 100644
index 5ed32c04fd7..00000000000
--- a/sys-devel/gdb/files/gdb-8.2-sparc-fix-syntax.patch
+++ /dev/null
@@ -1,10 +0,0 @@
-Fix invalid c++: https://bugs.gentoo.org/671726
---- a/gdb/sparc-linux-nat.c
-+++ b/gdb/sparc-linux-nat.c
-@@ -36,5 +36,5 @@ public:
- { sparc_fetch_inferior_registers (regcache, regnum); }
-
-- void store_registers (struct regcache *regcache, int regnum) override;
-+ void store_registers (struct regcache *regcache, int regnum) override
- { sparc_store_inferior_registers (regcache, regnum); }
- };
diff --git a/sys-devel/gdb/files/gdb-8.2-tinfow.patch b/sys-devel/gdb/files/gdb-8.2-tinfow.patch
deleted file mode 100644
index 48f6109664a..00000000000
--- a/sys-devel/gdb/files/gdb-8.2-tinfow.patch
+++ /dev/null
@@ -1,44 +0,0 @@
-Try to link gdb against tinfow first, then tinfo.
-
-In bug #669096 gdb was directly linked both
-to libtinfo.so.6 and libncursesw.so.6:
- $ lddtree /usr/bin/gdb
- /usr/bin/gdb (interpreter => /lib64/ld-linux-x86-64.so.2)
- libtinfo.so.6 => /lib64/libtinfo.so.6
- libncursesw.so.6 => /lib64/libncursesw.so.6
- libtinfow.so.6 => /lib64/libtinfow.so.6
- ...
-and caused gdb to SIGSEGV at start.
-
-Let's consistently link against *w libraries.
-
-Note: the fix on it's own is not enough:
-- we don't pass include paths to ncursesw libraries
-- libreadline.so.7 is still linked against libtinfo.so.6 in Gentoo
- and needs a separate fix.
-
-But it's enough to make immediate SIGSEGV to go away.
-
-Reported-by: Michał Górny
-Bug: https://bugs.gentoo.org/669096
---- a/gdb/configure.ac
-+++ b/gdb/configure.ac
-@@ -616,4 +616,4 @@ esac
-
--# These are the libraries checked by Readline.
--AC_SEARCH_LIBS(tgetent, [termcap tinfo curses ncursesw ncurses])
-+# These are the libraries checked by Readline. Not really: readline does not know about *w libs.
-+AC_SEARCH_LIBS(tgetent, [termcap tinfow tinfo curses ncursesw ncurses])
-
---- a/gdb/configure
-+++ b/gdb/configure
-@@ -8984,3 +8984,3 @@ esac
-
--# These are the libraries checked by Readline.
-+# These are the libraries checked by Readline. Not really: readline does not know about *w libs.
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing tgetent" >&5
-@@ -9009,3 +9009,3 @@ return tgetent ();
- _ACEOF
--for ac_lib in '' termcap tinfo curses ncursesw ncurses; do
-+for ac_lib in '' termcap tinfow tinfo curses ncursesw ncurses; do
- if test -z "$ac_lib"; then
diff --git a/sys-devel/gdb/files/gdb-8.2.1-aarch64-musl.patch b/sys-devel/gdb/files/gdb-8.2.1-aarch64-musl.patch
deleted file mode 100644
index 70f42df90a9..00000000000
--- a/sys-devel/gdb/files/gdb-8.2.1-aarch64-musl.patch
+++ /dev/null
@@ -1,49 +0,0 @@
-https://bugs.gentoo.org/676620
-
-From 51b4f73a37c2e7eec31e932fc3c8dae879735f63 Mon Sep 17 00:00:00 2001
-From: Szabolcs Nagy <szabolcs.nagy@arm.com>
-Date: Thu, 13 Dec 2018 17:47:17 +0000
-Subject: [PATCH] AArch64: Fix the gdb build with musl libc
-
-Including asm/sigcontext.h together with libc headers is not valid. In
-general linux headers may not work with libc headers, so mixing them
-should be avoided, especially when the linux header defines types that
-are also exposed in libc headers.
-
-In case of asm/sigcontext.h glibc happens to work because glibc signal.h
-directly includes it, but e.g. in musl libc signal.h replicates the
-sigcontext.h definitions in an abi compatible way which are in conflict
-with the linux definitions when both headers are included.
-
-Since old linux headers or old libc headers may not have the necessary
-definitions, gdb has to replicate the definitions it relies on anyway.
-Which is fine since all definitions must be ABI stable. For linux apis
-that are not available via libc headers, replicating the definitions in
-gdb is the most reliable way to use them.
-
-Note: asm/ptrace.h includes asm/sigcontext.h in some versions of linux
-headers, which is just as problematic and should be fixed in linux.
-
-gdb/ChangeLog:
-
- * nat/aarch64-sve-linux-ptrace.h: Include signal.h instead of
- asm/sigcontext.h.
----
- gdb/ChangeLog | 5 +++++
- gdb/nat/aarch64-sve-linux-ptrace.h | 2 +-
- 2 files changed, 6 insertions(+), 1 deletion(-)
-
---- a/gdb/nat/aarch64-sve-linux-ptrace.h
-+++ b/gdb/nat/aarch64-sve-linux-ptrace.h
-@@ -20,7 +20,7 @@
- #ifndef AARCH64_SVE_LINUX_PTRACE_H
- #define AARCH64_SVE_LINUX_PTRACE_H
-
--#include <asm/sigcontext.h>
-+#include <signal.h>
- #include <sys/utsname.h>
- #include <sys/ptrace.h>
- #include <asm/ptrace.h>
---
-2.20.1
-
diff --git a/sys-devel/gdb/gdb-7.10.1.ebuild b/sys-devel/gdb/gdb-7.10.1.ebuild
deleted file mode 100644
index c257be6a84d..00000000000
--- a/sys-devel/gdb/gdb-7.10.1.ebuild
+++ /dev/null
@@ -1,235 +0,0 @@
-# Copyright 1999-2019 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI="5"
-PYTHON_COMPAT=( python{2_7,3_5} )
-
-inherit flag-o-matic eutils python-single-r1
-
-export CTARGET=${CTARGET:-${CHOST}}
-if [[ ${CTARGET} == ${CHOST} ]] ; then
- if [[ ${CATEGORY} == cross-* ]] ; then
- export CTARGET=${CATEGORY#cross-}
- fi
-fi
-is_cross() { [[ ${CHOST} != ${CTARGET} ]] ; }
-
-RPM=
-MY_PV=${PV}
-case ${PV} in
-9999*)
- # live git tree
- EGIT_REPO_URI="git://sourceware.org/git/binutils-gdb.git"
- inherit git-r3
- SRC_URI=""
- ;;
-*.*.50.2???????)
- # weekly snapshots
- SRC_URI="ftp://sourceware.org/pub/gdb/snapshots/current/gdb-weekly-${PV}.tar.xz"
- ;;
-*.*.*.*.*.*)
- # fedora versions; note we swap the rpm & fedora core versions.
- # gdb-6.8.50.20090302-8.fc11.src.rpm -> gdb-6.8.50.20090302.11.8.ebuild
- # gdb-7.9-11.fc23.src.rpm -> gdb-7.9.23.11.ebuild
- inherit versionator rpm
- gvcr() { get_version_component_range "$@"; }
- parse_fedora_ver() {
- set -- $(get_version_components)
- MY_PV=$(gvcr 1-$(( $# - 2 )))
- RPM="${PN}-${MY_PV}-$(gvcr $#).fc$(gvcr $(( $# - 1 ))).src.rpm"
- }
- parse_fedora_ver
- SRC_URI="mirror://fedora-dev/development/rawhide/source/SRPMS/g/${RPM}"
- ;;
-*)
- # Normal upstream release
- SRC_URI="mirror://gnu/gdb/${P}.tar.xz
- ftp://sourceware.org/pub/gdb/releases/${P}.tar.xz"
- ;;
-esac
-
-PATCH_VER=""
-DESCRIPTION="GNU debugger"
-HOMEPAGE="https://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
- # alpha #562128
- KEYWORDS="-alpha amd64 arm arm64 hppa ia64 m68k ~mips ppc ppc64 s390 sparc x86 ~ppc-aix ~amd64-fbsd ~x86-fbsd ~amd64-linux ~x86-linux ~x64-macos ~x86-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
-fi
-IUSE="+client expat lzma multitarget nls +python +server test vanilla"
-REQUIRED_USE="
- python? ( ${PYTHON_REQUIRED_USE} )
- || ( client server )
-"
-
-RDEPEND="server? ( !dev-util/gdbserver )
- client? (
- >=sys-libs/ncurses-5.2-r2:0=
- sys-libs/readline:0=
- expat? ( dev-libs/expat )
- lzma? ( app-arch/xz-utils )
- python? ( ${PYTHON_DEPS} )
- sys-libs/zlib
- )"
-DEPEND="${RDEPEND}
- app-arch/xz-utils
- sys-apps/texinfo
- client? (
- 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() {
- [[ -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
-}
-
-gdb_branding() {
- printf "Gentoo ${PV} "
- if ! use vanilla && [[ -n ${PATCH_VER} ]] ; then
- printf "p${PATCH_VER}"
- else
- printf "vanilla"
- fi
- [[ -n ${EGIT_COMMIT} ]] && printf " ${EGIT_COMMIT}"
-}
-
-src_configure() {
- strip-unsupported-flags
-
- local myconf=(
- --with-pkgversion="$(gdb_branding)"
- --with-bugurl='https://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"
- --with-gdb-datadir="\${datadir}/gdb/${CTARGET}"
- )
-
- 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
- # Disable guile for now as it requires guile-2.x #562902
- --without-guile
- # This only disables building in the readline subdir.
- # For gdb itself, it'll use the system version.
- --disable-readline
- --with-system-readline
- # This only disables building in the zlib subdir.
- # For gdb itself, it'll use the system version.
- --without-zlib
- --with-system-zlib
- --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}")
- )
- 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}"
-
- # Delete translations that conflict with binutils-libs. #528088
- # Note: Should figure out how to store these in an internal gdb dir.
- if use nls ; then
- find "${ED}" \
- -regextype posix-extended -regex '.*/(bfd|opcodes)[.]g?mo$' \
- -delete
- fi
-
- # Don't install docs when building a cross-gdb
- if [[ ${CTARGET} != ${CHOST} ]] ; then
- rm -r "${ED}"/usr/share/{doc,info,locale}
- local f
- for f in "${ED}"/usr/share/man/*/* ; do
- if [[ ${f##*/} != ${CTARGET}-* ]] ; then
- mv "${f}" "${f%/*}/${CTARGET}-${f##*/}" || die
- fi
- done
- return 0
- fi
- # Install it by hand for now:
- # https://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/gdb-7.12.1.ebuild b/sys-devel/gdb/gdb-7.12.1.ebuild
deleted file mode 100644
index 5ca8e9079ae..00000000000
--- a/sys-devel/gdb/gdb-7.12.1.ebuild
+++ /dev/null
@@ -1,236 +0,0 @@
-# Copyright 1999-2019 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI="5"
-PYTHON_COMPAT=( python{2_7,3_5} )
-
-inherit flag-o-matic eutils python-single-r1
-
-export CTARGET=${CTARGET:-${CHOST}}
-if [[ ${CTARGET} == ${CHOST} ]] ; then
- if [[ ${CATEGORY} == cross-* ]] ; then
- export CTARGET=${CATEGORY#cross-}
- fi
-fi
-is_cross() { [[ ${CHOST} != ${CTARGET} ]] ; }
-
-RPM=
-MY_PV=${PV}
-case ${PV} in
-9999*)
- # live git tree
- EGIT_REPO_URI="git://sourceware.org/git/binutils-gdb.git"
- inherit git-r3
- SRC_URI=""
- ;;
-*.*.50.2???????)
- # weekly snapshots
- SRC_URI="ftp://sourceware.org/pub/gdb/snapshots/current/gdb-weekly-${PV}.tar.xz"
- ;;
-*.*.*.*.*.*)
- # fedora versions; note we swap the rpm & fedora core versions.
- # gdb-6.8.50.20090302-8.fc11.src.rpm -> gdb-6.8.50.20090302.11.8.ebuild
- # gdb-7.9-11.fc23.src.rpm -> gdb-7.9.23.11.ebuild
- inherit versionator rpm
- gvcr() { get_version_component_range "$@"; }
- parse_fedora_ver() {
- set -- $(get_version_components)
- MY_PV=$(gvcr 1-$(( $# - 2 )))
- RPM="${PN}-${MY_PV}-$(gvcr $#).fc$(gvcr $(( $# - 1 ))).src.rpm"
- }
- parse_fedora_ver
- SRC_URI="mirror://fedora-dev/development/rawhide/source/SRPMS/g/${RPM}"
- ;;
-*)
- # Normal upstream release
- SRC_URI="mirror://gnu/gdb/${P}.tar.xz
- ftp://sourceware.org/pub/gdb/releases/${P}.tar.xz"
- ;;
-esac
-
-PATCH_VER=""
-DESCRIPTION="GNU debugger"
-HOMEPAGE="https://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
- # alpha #562128
- KEYWORDS="-alpha amd64 arm arm64 hppa ia64 m68k ~mips ppc ppc64 s390 sparc x86 ~ppc-aix ~x64-cygwin ~amd64-fbsd ~x86-fbsd ~amd64-linux ~x86-linux ~x64-macos ~x86-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
-fi
-IUSE="+client lzma multitarget nls +python +server test vanilla xml"
-REQUIRED_USE="
- python? ( ${PYTHON_REQUIRED_USE} )
- || ( client server )
-"
-
-RDEPEND="server? ( !dev-util/gdbserver )
- client? (
- >=sys-libs/ncurses-5.2-r2:0=
- sys-libs/readline:0=
- lzma? ( app-arch/xz-utils )
- python? ( ${PYTHON_DEPS} )
- xml? ( dev-libs/expat )
- sys-libs/zlib
- )"
-DEPEND="${RDEPEND}
- app-arch/xz-utils
- sys-apps/texinfo
- client? (
- 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() {
- [[ -n ${RPM} ]] && rpm_spec_epatch "${WORKDIR}"/gdb.spec
- ! use vanilla && [[ -n ${PATCH_VER} ]] && EPATCH_SUFFIX="patch" epatch "${WORKDIR}"/patch
- epatch "${FILESDIR}"/${P}-ia64-include.patch #655270
- epatch_user
- strip-linguas -u bfd/po opcodes/po
-}
-
-gdb_branding() {
- printf "Gentoo ${PV} "
- if ! use vanilla && [[ -n ${PATCH_VER} ]] ; then
- printf "p${PATCH_VER}"
- else
- printf "vanilla"
- fi
- [[ -n ${EGIT_COMMIT} ]] && printf " ${EGIT_COMMIT}"
-}
-
-src_configure() {
- strip-unsupported-flags
-
- local myconf=(
- --with-pkgversion="$(gdb_branding)"
- --with-bugurl='https://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"
- --with-gdb-datadir="\${datadir}/gdb/${CTARGET}"
- )
-
- 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
- # Disable guile for now as it requires guile-2.x #562902
- --without-guile
- # This only disables building in the readline subdir.
- # For gdb itself, it'll use the system version.
- --disable-readline
- --with-system-readline
- # This only disables building in the zlib subdir.
- # For gdb itself, it'll use the system version.
- --without-zlib
- --with-system-zlib
- --with-separate-debug-dir="${EPREFIX}"/usr/lib/debug
- $(use_with xml expat)
- $(use_with lzma)
- $(use_enable nls)
- $(use multitarget && echo --enable-targets=all)
- $(use_with python python "${EPYTHON}")
- )
- 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}"
-
- # Delete translations that conflict with binutils-libs. #528088
- # Note: Should figure out how to store these in an internal gdb dir.
- if use nls ; then
- find "${ED}" \
- -regextype posix-extended -regex '.*/(bfd|opcodes)[.]g?mo$' \
- -delete
- fi
-
- # Don't install docs when building a cross-gdb
- if [[ ${CTARGET} != ${CHOST} ]] ; then
- rm -r "${ED}"/usr/share/{doc,info,locale}
- local f
- for f in "${ED}"/usr/share/man/*/* ; do
- if [[ ${f##*/} != ${CTARGET}-* ]] ; then
- mv "${f}" "${f%/*}/${CTARGET}-${f##*/}" || die
- fi
- done
- return 0
- fi
- # Install it by hand for now:
- # https://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/gdb-7.9.1.ebuild b/sys-devel/gdb/gdb-7.9.1.ebuild
deleted file mode 100644
index 12d5daf6084..00000000000
--- a/sys-devel/gdb/gdb-7.9.1.ebuild
+++ /dev/null
@@ -1,221 +0,0 @@
-# Copyright 1999-2019 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI="5"
-PYTHON_COMPAT=( python2_7 )
-
-inherit flag-o-matic eutils python-single-r1
-
-export CTARGET=${CTARGET:-${CHOST}}
-if [[ ${CTARGET} == ${CHOST} ]] ; then
- if [[ ${CATEGORY} == cross-* ]] ; then
- export CTARGET=${CATEGORY#cross-}
- fi
-fi
-is_cross() { [[ ${CHOST} != ${CTARGET} ]] ; }
-
-RPM=
-MY_PV=${PV}
-case ${PV} in
-9999*)
- # live git tree
- EGIT_REPO_URI="git://sourceware.org/git/binutils-gdb.git"
- inherit git-r3
- SRC_URI=""
- ;;
-*.*.50.2???????)
- # weekly snapshots
- SRC_URI="ftp://sourceware.org/pub/gdb/snapshots/current/gdb-weekly-${PV}.tar.xz"
- ;;
-*.*.*.*.*.*)
- # fedora versions; note we swap the rpm & fedora core versions.
- # gdb-6.8.50.20090302-8.fc11.src.rpm -> gdb-6.8.50.20090302.11.8.ebuild
- # gdb-7.9-11.fc23.src.rpm -> gdb-7.9.23.11.ebuild
- inherit versionator rpm
- gvcr() { get_version_component_range "$@"; }
- parse_fedora_ver() {
- set -- $(get_version_components)
- MY_PV=$(gvcr 1-$(( $# - 2 )))
- RPM="${PN}-${MY_PV}-$(gvcr $#).fc$(gvcr $(( $# - 1 ))).src.rpm"
- }
- parse_fedora_ver
- SRC_URI="mirror://fedora-dev/development/rawhide/source/SRPMS/g/${RPM}"
- ;;
-*)
- # Normal upstream release
- SRC_URI="mirror://gnu/gdb/${P}.tar.xz
- ftp://sourceware.org/pub/gdb/releases/${P}.tar.xz"
- ;;
-esac
-
-PATCH_VER=""
-DESCRIPTION="GNU debugger"
-HOMEPAGE="https://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="alpha"
-fi
-IUSE="+client expat lzma multitarget nls +python +server test vanilla zlib"
-REQUIRED_USE="
- python? ( ${PYTHON_REQUIRED_USE} )
- || ( client server )
-"
-
-RDEPEND="server? ( !dev-util/gdbserver )
- client? (
- >=sys-libs/ncurses-5.2-r2:0=
- sys-libs/readline:0=
- expat? ( dev-libs/expat )
- lzma? ( app-arch/xz-utils )
- python? ( ${PYTHON_DEPS} )
- zlib? ( sys-libs/zlib )
- )"
-DEPEND="${RDEPEND}
- app-arch/xz-utils
- client? (
- 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() {
- [[ -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
-}
-
-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='https://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"
- --with-gdb-datadir="\${datadir}/gdb/${CTARGET}"
- )
-
- 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
- # Disable guile for now as it requires guile-2.x #562902
- --without-guile
- # 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/{doc,info,locale}
- local f
- for f in "${ED}"/usr/share/man/*/* ; do
- if [[ ${f##*/} != ${CTARGET}-* ]] ; then
- mv "${f}" "${f%/*}/${CTARGET}-${f##*/}" || die
- fi
- done
- return 0
- fi
- # Install it by hand for now:
- # https://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/gdb-8.1-r1.ebuild b/sys-devel/gdb/gdb-8.1-r1.ebuild
deleted file mode 100644
index eb10f901b4a..00000000000
--- a/sys-devel/gdb/gdb-8.1-r1.ebuild
+++ /dev/null
@@ -1,257 +0,0 @@
-# Copyright 1999-2019 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=6
-PYTHON_COMPAT=( python{2_7,3_5,3_6} )
-
-inherit epatch eutils flag-o-matic python-single-r1
-
-export CTARGET=${CTARGET:-${CHOST}}
-if [[ ${CTARGET} == ${CHOST} ]] ; then
- if [[ ${CATEGORY} == cross-* ]] ; then
- export CTARGET=${CATEGORY#cross-}
- fi
-fi
-is_cross() { [[ ${CHOST} != ${CTARGET} ]] ; }
-
-RPM=
-MY_PV=${PV}
-case ${PV} in
-9999*)
- # live git tree
- EGIT_REPO_URI="git://sourceware.org/git/binutils-gdb.git"
- inherit git-r3
- SRC_URI=""
- ;;
-*.*.50.2???????)
- # weekly snapshots
- SRC_URI="ftp://sourceware.org/pub/gdb/snapshots/current/gdb-weekly-${PV}.tar.xz"
- ;;
-*.*.*.*.*.*)
- # fedora versions; note we swap the rpm & fedora core versions.
- # gdb-6.8.50.20090302-8.fc11.src.rpm -> gdb-6.8.50.20090302.11.8.ebuild
- # gdb-7.9-11.fc23.src.rpm -> gdb-7.9.23.11.ebuild
- inherit versionator rpm
- gvcr() { get_version_component_range "$@"; }
- parse_fedora_ver() {
- set -- $(get_version_components)
- MY_PV=$(gvcr 1-$(( $# - 2 )))
- RPM="${PN}-${MY_PV}-$(gvcr $#).fc$(gvcr $(( $# - 1 ))).src.rpm"
- }
- parse_fedora_ver
- SRC_URI="mirror://fedora-dev/development/rawhide/source/SRPMS/g/${RPM}"
- ;;
-*)
- # Normal upstream release
- SRC_URI="mirror://gnu/gdb/${P}.tar.xz
- ftp://sourceware.org/pub/gdb/releases/${P}.tar.xz"
- ;;
-esac
-
-PATCH_VER="1"
-PATCH_DEV="slyfox"
-DESCRIPTION="GNU debugger"
-HOMEPAGE="https://sourceware.org/gdb/"
-SRC_URI="${SRC_URI}
- ${PATCH_DEV:+https://dev.gentoo.org/~${PATCH_DEV}/distfiles/${PN}-8.1-patches-${PATCH_VER}.tar.xz}
- ${PATCH_VER:+mirror://gentoo/${PN}-8.1-patches-${PATCH_VER}.tar.xz}
-"
-
-LICENSE="GPL-2 LGPL-2"
-SLOT="0"
-if [[ ${PV} != 9999* ]] ; then
- KEYWORDS="alpha amd64 arm arm64 hppa ~ia64 ~m68k ~mips ppc ppc64 ~s390 sparc x86 ~ppc-aix ~x64-cygwin ~amd64-fbsd ~x86-fbsd ~amd64-linux ~x86-linux ~x64-macos ~x86-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
-fi
-IUSE="+client lzma multitarget nls +python +server test vanilla xml"
-REQUIRED_USE="
- python? ( ${PYTHON_REQUIRED_USE} )
- || ( client server )
-"
-
-RDEPEND="
- dev-libs/mpfr:=
- server? ( !dev-util/gdbserver )
- client? (
- >=sys-libs/ncurses-5.2-r2:0=
- sys-libs/readline:0=
- lzma? ( app-arch/xz-utils )
- python? ( ${PYTHON_DEPS} )
- xml? ( dev-libs/expat )
- sys-libs/zlib
- )"
-DEPEND="${RDEPEND}
- app-arch/xz-utils
- sys-apps/texinfo
- client? (
- 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() {
- [[ -n ${RPM} ]] && rpm_spec_epatch "${WORKDIR}"/gdb.spec
- ! use vanilla && [[ -n ${PATCH_VER} ]] && EPATCH_SUFFIX="patch" epatch "${WORKDIR}"/patch
-
- default
-
- strip-linguas -u bfd/po opcodes/po
-}
-
-gdb_branding() {
- printf "Gentoo ${PV} "
- if ! use vanilla && [[ -n ${PATCH_VER} ]] ; then
- printf "p${PATCH_VER}"
- else
- printf "vanilla"
- fi
- [[ -n ${EGIT_COMMIT} ]] && printf " ${EGIT_COMMIT}"
-}
-
-src_configure() {
- strip-unsupported-flags
-
- local myconf=(
- --with-pkgversion="$(gdb_branding)"
- --with-bugurl='https://bugs.gentoo.org/'
- --with-mpfr
- --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"
- --with-gdb-datadir="\${datadir}/gdb/${CTARGET}"
- )
-
- 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
- # Disable guile for now as it requires guile-2.x #562902
- --without-guile
- # This only disables building in the readline subdir.
- # For gdb itself, it'll use the system version.
- --disable-readline
- --with-system-readline
- # This only disables building in the zlib subdir.
- # For gdb itself, it'll use the system version.
- --without-zlib
- --with-system-zlib
- --with-separate-debug-dir="${EPREFIX}"/usr/lib/debug
- $(use_with xml expat)
- $(use_with lzma)
- $(use_enable nls)
- $(use multitarget && echo --enable-targets=all)
- $(use_with python python "${EPYTHON}")
- )
- fi
- if use sparc-solaris || use x86-solaris ; then
- # disable largefile support
- # https://sourceware.org/ml/gdb-patches/2014-12/msg00058.html
- myconf+=( --disable-largefile )
- fi
-
- econf "${myconf[@]}"
-}
-
-src_test() {
- nonfatal emake check || ewarn "tests failed"
-}
-
-src_install() {
- if use server && ! use client; then
- cd gdb/gdbserver || die
- fi
- default
- if use client; then
- find "${ED}"/usr -name libiberty.a -delete || die
- fi
- cd "${S}" || die
-
- # Delete translations that conflict with binutils-libs. #528088
- # Note: Should figure out how to store these in an internal gdb dir.
- if use nls ; then
- find "${ED}" \
- -regextype posix-extended -regex '.*/(bfd|opcodes)[.]g?mo$' \
- -delete || die
- fi
-
- # Don't install docs when building a cross-gdb
- if [[ ${CTARGET} != ${CHOST} ]] ; then
- rm -rf "${ED}"/usr/share/{doc,info,locale} || die
- local f
- for f in "${ED}"/usr/share/man/*/* ; do
- if [[ ${f##*/} != ${CTARGET}-* ]] ; then
- mv "${f}" "${f%/*}/${CTARGET}-${f##*/}" || die
- fi
- done
- return 0
- fi
- # Install it by hand for now:
- # https://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*
-
- # gcore is part of ubin on freebsd
- if [[ ${CHOST} == *-freebsd* ]]; then
- rm "${ED}"/usr/bin/gcore || die
- fi
-}
-
-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/gdb-8.1-r2.ebuild b/sys-devel/gdb/gdb-8.1-r2.ebuild
deleted file mode 100644
index 19b1e9074ca..00000000000
--- a/sys-devel/gdb/gdb-8.1-r2.ebuild
+++ /dev/null
@@ -1,256 +0,0 @@
-# Copyright 1999-2019 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=6
-PYTHON_COMPAT=( python{2_7,3_5,3_6} )
-
-inherit epatch eutils flag-o-matic python-single-r1
-
-export CTARGET=${CTARGET:-${CHOST}}
-if [[ ${CTARGET} == ${CHOST} ]] ; then
- if [[ ${CATEGORY} == cross-* ]] ; then
- export CTARGET=${CATEGORY#cross-}
- fi
-fi
-is_cross() { [[ ${CHOST} != ${CTARGET} ]] ; }
-
-RPM=
-MY_PV=${PV}
-case ${PV} in
-9999*)
- # live git tree
- EGIT_REPO_URI="git://sourceware.org/git/binutils-gdb.git"
- inherit git-r3
- SRC_URI=""
- ;;
-*.*.50.2???????)
- # weekly snapshots
- SRC_URI="ftp://sourceware.org/pub/gdb/snapshots/current/gdb-weekly-${PV}.tar.xz"
- ;;
-*.*.*.*.*.*)
- # fedora versions; note we swap the rpm & fedora core versions.
- # gdb-6.8.50.20090302-8.fc11.src.rpm -> gdb-6.8.50.20090302.11.8.ebuild
- # gdb-7.9-11.fc23.src.rpm -> gdb-7.9.23.11.ebuild
- inherit versionator rpm
- gvcr() { get_version_component_range "$@"; }
- parse_fedora_ver() {
- set -- $(get_version_components)
- MY_PV=$(gvcr 1-$(( $# - 2 )))
- RPM="${PN}-${MY_PV}-$(gvcr $#).fc$(gvcr $(( $# - 1 ))).src.rpm"
- }
- parse_fedora_ver
- SRC_URI="mirror://fedora-dev/development/rawhide/source/SRPMS/g/${RPM}"
- ;;
-*)
- # Normal upstream release
- SRC_URI="mirror://gnu/gdb/${P}.tar.xz
- ftp://sourceware.org/pub/gdb/releases/${P}.tar.xz"
- ;;
-esac
-
-PATCH_VER="1"
-PATCH_DEV="slyfox"
-DESCRIPTION="GNU debugger"
-HOMEPAGE="https://sourceware.org/gdb/"
-SRC_URI="${SRC_URI}
- ${PATCH_DEV:+https://dev.gentoo.org/~${PATCH_DEV}/distfiles/${PN}-8.1-patches-${PATCH_VER}.tar.xz}
- ${PATCH_VER:+mirror://gentoo/${PN}-8.1-patches-${PATCH_VER}.tar.xz}
-"
-
-LICENSE="GPL-2 LGPL-2"
-SLOT="0"
-if [[ ${PV} != 9999* ]] ; then
- KEYWORDS="~alpha ~amd64 ~arm ~arm64 hppa ia64 m68k ~mips ~ppc ~ppc64 s390 sh ~sparc ~x86 ~ppc-aix ~x64-cygwin ~amd64-fbsd ~x86-fbsd ~amd64-linux ~x86-linux ~x64-macos ~x86-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
-fi
-IUSE="+client lzma multitarget nls +python +server test vanilla xml"
-REQUIRED_USE="
- python? ( ${PYTHON_REQUIRED_USE} )
- || ( client server )
-"
-
-RDEPEND="
- server? ( !dev-util/gdbserver )
- client? (
- dev-libs/mpfr:0=
- >=sys-libs/ncurses-5.2-r2:0=
- sys-libs/readline:0=
- lzma? ( app-arch/xz-utils )
- python? ( ${PYTHON_DEPS} )
- xml? ( dev-libs/expat )
- sys-libs/zlib
- )"
-DEPEND="${RDEPEND}
- app-arch/xz-utils
- sys-apps/texinfo
- client? (
- 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() {
- [[ -n ${RPM} ]] && rpm_spec_epatch "${WORKDIR}"/gdb.spec
- ! use vanilla && [[ -n ${PATCH_VER} ]] && EPATCH_SUFFIX="patch" epatch "${WORKDIR}"/patch
-
- default
-
- strip-linguas -u bfd/po opcodes/po
-}
-
-gdb_branding() {
- printf "Gentoo ${PV} "
- if ! use vanilla && [[ -n ${PATCH_VER} ]] ; then
- printf "p${PATCH_VER}"
- else
- printf "vanilla"
- fi
- [[ -n ${EGIT_COMMIT} ]] && printf " ${EGIT_COMMIT}"
-}
-
-src_configure() {
- strip-unsupported-flags
-
- local myconf=(
- --with-pkgversion="$(gdb_branding)"
- --with-bugurl='https://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"
- --with-gdb-datadir="\${datadir}/gdb/${CTARGET}"
- )
-
- 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
- # Disable guile for now as it requires guile-2.x #562902
- --without-guile
- # This only disables building in the readline subdir.
- # For gdb itself, it'll use the system version.
- --disable-readline
- --with-system-readline
- # This only disables building in the zlib subdir.
- # For gdb itself, it'll use the system version.
- --without-zlib
- --with-system-zlib
- --with-separate-debug-dir="${EPREFIX}"/usr/lib/debug
- $(use_with xml expat)
- $(use_with lzma)
- $(use_enable nls)
- $(use multitarget && echo --enable-targets=all)
- $(use_with python python "${EPYTHON}")
- )
- fi
- if use sparc-solaris || use x86-solaris ; then
- # disable largefile support
- # https://sourceware.org/ml/gdb-patches/2014-12/msg00058.html
- myconf+=( --disable-largefile )
- fi
-
- econf "${myconf[@]}"
-}
-
-src_test() {
- nonfatal emake check || ewarn "tests failed"
-}
-
-src_install() {
- if use server && ! use client; then
- cd gdb/gdbserver || die
- fi
- default
- if use client; then
- find "${ED}"/usr -name libiberty.a -delete || die
- fi
- cd "${S}" || die
-
- # Delete translations that conflict with binutils-libs. #528088
- # Note: Should figure out how to store these in an internal gdb dir.
- if use nls ; then
- find "${ED}" \
- -regextype posix-extended -regex '.*/(bfd|opcodes)[.]g?mo$' \
- -delete || die
- fi
-
- # Don't install docs when building a cross-gdb
- if [[ ${CTARGET} != ${CHOST} ]] ; then
- rm -rf "${ED}"/usr/share/{doc,info,locale} || die
- local f
- for f in "${ED}"/usr/share/man/*/* ; do
- if [[ ${f##*/} != ${CTARGET}-* ]] ; then
- mv "${f}" "${f%/*}/${CTARGET}-${f##*/}" || die
- fi
- done
- return 0
- fi
- # Install it by hand for now:
- # https://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*
-
- # gcore is part of ubin on freebsd
- if [[ ${CHOST} == *-freebsd* ]]; then
- rm "${ED}"/usr/bin/gcore || die
- fi
-}
-
-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/gdb-8.1.1.ebuild b/sys-devel/gdb/gdb-8.1.1.ebuild
deleted file mode 100644
index 07f3c40d6f8..00000000000
--- a/sys-devel/gdb/gdb-8.1.1.ebuild
+++ /dev/null
@@ -1,256 +0,0 @@
-# Copyright 1999-2019 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=6
-PYTHON_COMPAT=( python{2_7,3_5,3_6} )
-
-inherit epatch eutils flag-o-matic python-single-r1
-
-export CTARGET=${CTARGET:-${CHOST}}
-if [[ ${CTARGET} == ${CHOST} ]] ; then
- if [[ ${CATEGORY} == cross-* ]] ; then
- export CTARGET=${CATEGORY#cross-}
- fi
-fi
-is_cross() { [[ ${CHOST} != ${CTARGET} ]] ; }
-
-RPM=
-MY_PV=${PV}
-case ${PV} in
-9999*)
- # live git tree
- EGIT_REPO_URI="git://sourceware.org/git/binutils-gdb.git"
- inherit git-r3
- SRC_URI=""
- ;;
-*.*.50.2???????)
- # weekly snapshots
- SRC_URI="ftp://sourceware.org/pub/gdb/snapshots/current/gdb-weekly-${PV}.tar.xz"
- ;;
-*.*.*.*.*.*)
- # fedora versions; note we swap the rpm & fedora core versions.
- # gdb-6.8.50.20090302-8.fc11.src.rpm -> gdb-6.8.50.20090302.11.8.ebuild
- # gdb-7.9-11.fc23.src.rpm -> gdb-7.9.23.11.ebuild
- inherit versionator rpm
- gvcr() { get_version_component_range "$@"; }
- parse_fedora_ver() {
- set -- $(get_version_components)
- MY_PV=$(gvcr 1-$(( $# - 2 )))
- RPM="${PN}-${MY_PV}-$(gvcr $#).fc$(gvcr $(( $# - 1 ))).src.rpm"
- }
- parse_fedora_ver
- SRC_URI="mirror://fedora-dev/development/rawhide/source/SRPMS/g/${RPM}"
- ;;
-*)
- # Normal upstream release
- SRC_URI="mirror://gnu/gdb/${P}.tar.xz
- ftp://sourceware.org/pub/gdb/releases/${P}.tar.xz"
- ;;
-esac
-
-PATCH_VER="1"
-PATCH_DEV="slyfox"
-DESCRIPTION="GNU debugger"
-HOMEPAGE="https://sourceware.org/gdb/"
-SRC_URI="${SRC_URI}
- ${PATCH_DEV:+https://dev.gentoo.org/~${PATCH_DEV}/distfiles/${PN}-8.1-patches-${PATCH_VER}.tar.xz}
- ${PATCH_VER:+mirror://gentoo/${PN}-8.1-patches-${PATCH_VER}.tar.xz}
-"
-
-LICENSE="GPL-2 LGPL-2"
-SLOT="0"
-if [[ ${PV} != 9999* ]] ; then
- KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~ppc-aix ~x64-cygwin ~amd64-fbsd ~x86-fbsd ~amd64-linux ~x86-linux ~x64-macos ~x86-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
-fi
-IUSE="+client lzma multitarget nls +python +server test vanilla xml"
-REQUIRED_USE="
- python? ( ${PYTHON_REQUIRED_USE} )
- || ( client server )
-"
-
-RDEPEND="
- server? ( !dev-util/gdbserver )
- client? (
- dev-libs/mpfr:0=
- >=sys-libs/ncurses-5.2-r2:0=
- sys-libs/readline:0=
- lzma? ( app-arch/xz-utils )
- python? ( ${PYTHON_DEPS} )
- xml? ( dev-libs/expat )
- sys-libs/zlib
- )"
-DEPEND="${RDEPEND}
- app-arch/xz-utils
- sys-apps/texinfo
- client? (
- 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() {
- [[ -n ${RPM} ]] && rpm_spec_epatch "${WORKDIR}"/gdb.spec
- ! use vanilla && [[ -n ${PATCH_VER} ]] && EPATCH_SUFFIX="patch" epatch "${WORKDIR}"/patch
-
- default
-
- strip-linguas -u bfd/po opcodes/po
-}
-
-gdb_branding() {
- printf "Gentoo ${PV} "
- if ! use vanilla && [[ -n ${PATCH_VER} ]] ; then
- printf "p${PATCH_VER}"
- else
- printf "vanilla"
- fi
- [[ -n ${EGIT_COMMIT} ]] && printf " ${EGIT_COMMIT}"
-}
-
-src_configure() {
- strip-unsupported-flags
-
- local myconf=(
- --with-pkgversion="$(gdb_branding)"
- --with-bugurl='https://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"
- --with-gdb-datadir="\${datadir}/gdb/${CTARGET}"
- )
-
- 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
- # Disable guile for now as it requires guile-2.x #562902
- --without-guile
- # This only disables building in the readline subdir.
- # For gdb itself, it'll use the system version.
- --disable-readline
- --with-system-readline
- # This only disables building in the zlib subdir.
- # For gdb itself, it'll use the system version.
- --without-zlib
- --with-system-zlib
- --with-separate-debug-dir="${EPREFIX}"/usr/lib/debug
- $(use_with xml expat)
- $(use_with lzma)
- $(use_enable nls)
- $(use multitarget && echo --enable-targets=all)
- $(use_with python python "${EPYTHON}")
- )
- fi
- if use sparc-solaris || use x86-solaris ; then
- # disable largefile support
- # https://sourceware.org/ml/gdb-patches/2014-12/msg00058.html
- myconf+=( --disable-largefile )
- fi
-
- econf "${myconf[@]}"
-}
-
-src_test() {
- nonfatal emake check || ewarn "tests failed"
-}
-
-src_install() {
- if use server && ! use client; then
- cd gdb/gdbserver || die
- fi
- default
- if use client; then
- find "${ED}"/usr -name libiberty.a -delete || die
- fi
- cd "${S}" || die
-
- # Delete translations that conflict with binutils-libs. #528088
- # Note: Should figure out how to store these in an internal gdb dir.
- if use nls ; then
- find "${ED}" \
- -regextype posix-extended -regex '.*/(bfd|opcodes)[.]g?mo$' \
- -delete || die
- fi
-
- # Don't install docs when building a cross-gdb
- if [[ ${CTARGET} != ${CHOST} ]] ; then
- rm -rf "${ED}"/usr/share/{doc,info,locale} || die
- local f
- for f in "${ED}"/usr/share/man/*/* ; do
- if [[ ${f##*/} != ${CTARGET}-* ]] ; then
- mv "${f}" "${f%/*}/${CTARGET}-${f##*/}" || die
- fi
- done
- return 0
- fi
- # Install it by hand for now:
- # https://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*
-
- # gcore is part of ubin on freebsd
- if [[ ${CHOST} == *-freebsd* ]]; then
- rm "${ED}"/usr/bin/gcore || die
- fi
-}
-
-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/gdb-8.2-r1.ebuild b/sys-devel/gdb/gdb-8.2-r1.ebuild
deleted file mode 100644
index df5d7e5091a..00000000000
--- a/sys-devel/gdb/gdb-8.2-r1.ebuild
+++ /dev/null
@@ -1,265 +0,0 @@
-# Copyright 1999-2019 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=6
-PYTHON_COMPAT=( python{2_7,3_5,3_6,3_7} )
-
-inherit epatch eutils flag-o-matic python-single-r1
-
-export CTARGET=${CTARGET:-${CHOST}}
-if [[ ${CTARGET} == ${CHOST} ]] ; then
- if [[ ${CATEGORY} == cross-* ]] ; then
- export CTARGET=${CATEGORY#cross-}
- fi
-fi
-is_cross() { [[ ${CHOST} != ${CTARGET} ]] ; }
-
-RPM=
-MY_PV=${PV}
-case ${PV} in
-9999*)
- # live git tree
- EGIT_REPO_URI="git://sourceware.org/git/binutils-gdb.git"
- inherit git-r3
- SRC_URI=""
- ;;
-*.*.50.2???????)
- # weekly snapshots
- SRC_URI="ftp://sourceware.org/pub/gdb/snapshots/current/gdb-weekly-${PV}.tar.xz"
- ;;
-*.*.*.*.*.*)
- # fedora versions; note we swap the rpm & fedora core versions.
- # gdb-6.8.50.20090302-8.fc11.src.rpm -> gdb-6.8.50.20090302.11.8.ebuild
- # gdb-7.9-11.fc23.src.rpm -> gdb-7.9.23.11.ebuild
- inherit versionator rpm
- gvcr() { get_version_component_range "$@"; }
- parse_fedora_ver() {
- set -- $(get_version_components)
- MY_PV=$(gvcr 1-$(( $# - 2 )))
- RPM="${PN}-${MY_PV}-$(gvcr $#).fc$(gvcr $(( $# - 1 ))).src.rpm"
- }
- parse_fedora_ver
- SRC_URI="mirror://fedora-dev/development/rawhide/source/SRPMS/g/${RPM}"
- ;;
-*)
- # Normal upstream release
- SRC_URI="mirror://gnu/gdb/${P}.tar.xz
- ftp://sourceware.org/pub/gdb/releases/${P}.tar.xz"
- ;;
-esac
-
-PATCH_VER="1"
-PATCH_DEV="slyfox"
-DESCRIPTION="GNU debugger"
-HOMEPAGE="https://sourceware.org/gdb/"
-SRC_URI="${SRC_URI}
- ${PATCH_DEV:+https://dev.gentoo.org/~${PATCH_DEV}/distfiles/${PN}-8.1-patches-${PATCH_VER}.tar.xz}
- ${PATCH_VER:+mirror://gentoo/${PN}-8.1-patches-${PATCH_VER}.tar.xz}
-"
-
-LICENSE="GPL-2 LGPL-2"
-SLOT="0"
-if [[ ${PV} != 9999* ]] ; then
- KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~ppc-aix ~x64-cygwin ~amd64-fbsd ~x86-fbsd ~amd64-linux ~x86-linux ~x64-macos ~x86-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
-fi
-IUSE="+client lzma multitarget nls +python +server test vanilla xml"
-REQUIRED_USE="
- python? ( ${PYTHON_REQUIRED_USE} )
- || ( client server )
-"
-
-RDEPEND="
- server? ( !dev-util/gdbserver )
- client? (
- dev-libs/mpfr:0=
- >=sys-libs/ncurses-5.2-r2:0=
- sys-libs/readline:0=
- lzma? ( app-arch/xz-utils )
- python? ( ${PYTHON_DEPS} )
- xml? ( dev-libs/expat )
- sys-libs/zlib
- )"
-DEPEND="${RDEPEND}
- app-arch/xz-utils
- sys-apps/texinfo
- client? (
- virtual/yacc
- test? ( dev-util/dejagnu )
- nls? ( sys-devel/gettext )
- )"
-
-S=${WORKDIR}/${PN}-${MY_PV}
-
-PATCHES=(
- "${FILESDIR}"/${P}-tinfow.patch
- "${FILESDIR}"/${P}-sparc-fix-syntax.patch
-)
-
-pkg_setup() {
- use python && python-single-r1_pkg_setup
-}
-
-src_prepare() {
- [[ -n ${RPM} ]] && rpm_spec_epatch "${WORKDIR}"/gdb.spec
-
- # upstreamed
- EPATCH_EXCLUDE+=" 01_all_ia64-TRAP_HWBKPT.patch"
- EPATCH_EXCLUDE+=" 02_all_solaris-no-uuidsys.patch"
- ! use vanilla && [[ -n ${PATCH_VER} ]] && EPATCH_SUFFIX="patch" epatch "${WORKDIR}"/patch
-
- default
-
- strip-linguas -u bfd/po opcodes/po
-}
-
-gdb_branding() {
- printf "Gentoo ${PV} "
- if ! use vanilla && [[ -n ${PATCH_VER} ]] ; then
- printf "p${PATCH_VER}"
- else
- printf "vanilla"
- fi
- [[ -n ${EGIT_COMMIT} ]] && printf " ${EGIT_COMMIT}"
-}
-
-src_configure() {
- strip-unsupported-flags
-
- local myconf=(
- --with-pkgversion="$(gdb_branding)"
- --with-bugurl='https://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"
- --with-gdb-datadir="\${datadir}/gdb/${CTARGET}"
- )
-
- 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
- # Disable guile for now as it requires guile-2.x #562902
- --without-guile
- # This only disables building in the readline subdir.
- # For gdb itself, it'll use the system version.
- --disable-readline
- --with-system-readline
- # This only disables building in the zlib subdir.
- # For gdb itself, it'll use the system version.
- --without-zlib
- --with-system-zlib
- --with-separate-debug-dir="${EPREFIX}"/usr/lib/debug
- $(use_with xml expat)
- $(use_with lzma)
- $(use_enable nls)
- $(use multitarget && echo --enable-targets=all)
- $(use_with python python "${EPYTHON}")
- )
- fi
- if use sparc-solaris || use x86-solaris ; then
- # disable largefile support
- # https://sourceware.org/ml/gdb-patches/2014-12/msg00058.html
- myconf+=( --disable-largefile )
- fi
-
- econf "${myconf[@]}"
-}
-
-src_test() {
- nonfatal emake check || ewarn "tests failed"
-}
-
-src_install() {
- if use server && ! use client; then
- cd gdb/gdbserver || die
- fi
- default
- if use client; then
- find "${ED}"/usr -name libiberty.a -delete || die
- fi
- cd "${S}" || die
-
- # Delete translations that conflict with binutils-libs. #528088
- # Note: Should figure out how to store these in an internal gdb dir.
- if use nls ; then
- find "${ED}" \
- -regextype posix-extended -regex '.*/(bfd|opcodes)[.]g?mo$' \
- -delete || die
- fi
-
- # Don't install docs when building a cross-gdb
- if [[ ${CTARGET} != ${CHOST} ]] ; then
- rm -rf "${ED}"/usr/share/{doc,info,locale} || die
- local f
- for f in "${ED}"/usr/share/man/*/* ; do
- if [[ ${f##*/} != ${CTARGET}-* ]] ; then
- mv "${f}" "${f%/*}/${CTARGET}-${f##*/}" || die
- fi
- done
- return 0
- fi
- # Install it by hand for now:
- # https://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*
-
- # gcore is part of ubin on freebsd
- if [[ ${CHOST} == *-freebsd* ]]; then
- rm "${ED}"/usr/bin/gcore || die
- fi
-}
-
-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/gdb-8.2.1.ebuild b/sys-devel/gdb/gdb-8.2.1.ebuild
deleted file mode 100644
index 290a0081c16..00000000000
--- a/sys-devel/gdb/gdb-8.2.1.ebuild
+++ /dev/null
@@ -1,262 +0,0 @@
-# Copyright 1999-2019 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-PYTHON_COMPAT=( python{2_7,3_5,3_6,3_7} )
-
-inherit eutils flag-o-matic python-single-r1
-
-export CTARGET=${CTARGET:-${CHOST}}
-if [[ ${CTARGET} == ${CHOST} ]] ; then
- if [[ ${CATEGORY} == cross-* ]] ; then
- export CTARGET=${CATEGORY#cross-}
- fi
-fi
-is_cross() { [[ ${CHOST} != ${CTARGET} ]] ; }
-
-RPM=
-MY_PV=${PV}
-case ${PV} in
-9999*)
- # live git tree
- EGIT_REPO_URI="git://sourceware.org/git/binutils-gdb.git"
- inherit git-r3
- SRC_URI=""
- ;;
-*.*.50.2???????)
- # weekly snapshots
- SRC_URI="ftp://sourceware.org/pub/gdb/snapshots/current/gdb-weekly-${PV}.tar.xz"
- ;;
-*.*.*.*.*.*)
- # fedora versions; note we swap the rpm & fedora core versions.
- # gdb-6.8.50.20090302-8.fc11.src.rpm -> gdb-6.8.50.20090302.11.8.ebuild
- # gdb-7.9-11.fc23.src.rpm -> gdb-7.9.23.11.ebuild
- inherit versionator rpm
- gvcr() { get_version_component_range "$@"; }
- parse_fedora_ver() {
- set -- $(get_version_components)
- MY_PV=$(gvcr 1-$(( $# - 2 )))
- RPM="${PN}-${MY_PV}-$(gvcr $#).fc$(gvcr $(( $# - 1 ))).src.rpm"
- }
- parse_fedora_ver
- SRC_URI="mirror://fedora-dev/development/rawhide/source/SRPMS/g/${RPM}"
- ;;
-*)
- # Normal upstream release
- SRC_URI="mirror://gnu/gdb/${P}.tar.xz
- ftp://sourceware.org/pub/gdb/releases/${P}.tar.xz"
- ;;
-esac
-
-PATCH_VER="1"
-PATCH_DEV="slyfox"
-DESCRIPTION="GNU debugger"
-HOMEPAGE="https://sourceware.org/gdb/"
-SRC_URI="${SRC_URI}
- ${PATCH_DEV:+https://dev.gentoo.org/~${PATCH_DEV}/distfiles/${PN}-8.1-patches-${PATCH_VER}.tar.xz}
- ${PATCH_VER:+mirror://gentoo/${PN}-8.1-patches-${PATCH_VER}.tar.xz}
-"
-
-LICENSE="GPL-2 LGPL-2"
-SLOT="0"
-if [[ ${PV} != 9999* ]] ; then
- KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~ppc-aix ~x64-cygwin ~amd64-fbsd ~x86-fbsd ~amd64-linux ~x86-linux ~x64-macos ~x86-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
-fi
-IUSE="+client lzma multitarget nls +python +server test vanilla xml"
-REQUIRED_USE="
- python? ( ${PYTHON_REQUIRED_USE} )
- || ( client server )
-"
-
-RDEPEND="
- server? ( !dev-util/gdbserver )
- client? (
- dev-libs/mpfr:0=
- >=sys-libs/ncurses-5.2-r2:0=
- sys-libs/readline:0=
- lzma? ( app-arch/xz-utils )
- python? ( ${PYTHON_DEPS} )
- xml? ( dev-libs/expat )
- sys-libs/zlib
- )"
-DEPEND="${RDEPEND}"
-BDEPEND="
- app-arch/xz-utils
- sys-apps/texinfo
- client? (
- virtual/yacc
- test? ( dev-util/dejagnu )
- nls? ( sys-devel/gettext )
- )"
-
-S=${WORKDIR}/${PN}-${MY_PV}
-
-PATCHES=(
- "${FILESDIR}"/${PN}-8.2-tinfow.patch
- "${FILESDIR}"/${PN}-8.2-sparc-fix-syntax.patch
- "${FILESDIR}"/${PN}-8.2.1-aarch64-musl.patch
-)
-
-pkg_setup() {
- use python && python-single-r1_pkg_setup
-}
-
-src_prepare() {
- [[ -n ${RPM} ]] && rpm_spec_epatch "${WORKDIR}"/gdb.spec
-
- default
-
- strip-linguas -u bfd/po opcodes/po
-}
-
-gdb_branding() {
- printf "Gentoo ${PV} "
- if ! use vanilla && [[ -n ${PATCH_VER} ]] ; then
- printf "p${PATCH_VER}"
- else
- printf "vanilla"
- fi
- [[ -n ${EGIT_COMMIT} ]] && printf " ${EGIT_COMMIT}"
-}
-
-src_configure() {
- strip-unsupported-flags
-
- local myconf=(
- --with-pkgversion="$(gdb_branding)"
- --with-bugurl='https://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"
- --with-gdb-datadir="\${datadir}/gdb/${CTARGET}"
- )
-
- 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
- # Disable guile for now as it requires guile-2.x #562902
- --without-guile
- # This only disables building in the readline subdir.
- # For gdb itself, it'll use the system version.
- --disable-readline
- --with-system-readline
- # This only disables building in the zlib subdir.
- # For gdb itself, it'll use the system version.
- --without-zlib
- --with-system-zlib
- --with-separate-debug-dir="${EPREFIX}"/usr/lib/debug
- $(use_with xml expat)
- $(use_with lzma)
- $(use_enable nls)
- $(use multitarget && echo --enable-targets=all)
- $(use_with python python "${EPYTHON}")
- )
- fi
- if use sparc-solaris || use x86-solaris ; then
- # disable largefile support
- # https://sourceware.org/ml/gdb-patches/2014-12/msg00058.html
- myconf+=( --disable-largefile )
- fi
-
- econf "${myconf[@]}"
-}
-
-src_test() {
- nonfatal emake check || ewarn "tests failed"
-}
-
-src_install() {
- if use server && ! use client; then
- cd gdb/gdbserver || die
- fi
- default
- if use client; then
- find "${ED}"/usr -name libiberty.a -delete || die
- fi
- cd "${S}" || die
-
- # Delete translations that conflict with binutils-libs. #528088
- # Note: Should figure out how to store these in an internal gdb dir.
- if use nls ; then
- find "${ED}" \
- -regextype posix-extended -regex '.*/(bfd|opcodes)[.]g?mo$' \
- -delete || die
- fi
-
- # Don't install docs when building a cross-gdb
- if [[ ${CTARGET} != ${CHOST} ]] ; then
- rm -rf "${ED}"/usr/share/{doc,info,locale} || die
- local f
- for f in "${ED}"/usr/share/man/*/* ; do
- if [[ ${f##*/} != ${CTARGET}-* ]] ; then
- mv "${f}" "${f%/*}/${CTARGET}-${f##*/}" || die
- fi
- done
- return 0
- fi
- # Install it by hand for now:
- # https://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*
-
- # gcore is part of ubin on freebsd
- if [[ ${CHOST} == *-freebsd* ]]; then
- rm "${ED}"/usr/bin/gcore || die
- fi
-}
-
-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/gdb-8.2.ebuild b/sys-devel/gdb/gdb-8.2.ebuild
deleted file mode 100644
index 6330d79ff8d..00000000000
--- a/sys-devel/gdb/gdb-8.2.ebuild
+++ /dev/null
@@ -1,260 +0,0 @@
-# Copyright 1999-2019 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=6
-PYTHON_COMPAT=( python{2_7,3_5,3_6} )
-
-inherit epatch eutils flag-o-matic python-single-r1
-
-export CTARGET=${CTARGET:-${CHOST}}
-if [[ ${CTARGET} == ${CHOST} ]] ; then
- if [[ ${CATEGORY} == cross-* ]] ; then
- export CTARGET=${CATEGORY#cross-}
- fi
-fi
-is_cross() { [[ ${CHOST} != ${CTARGET} ]] ; }
-
-RPM=
-MY_PV=${PV}
-case ${PV} in
-9999*)
- # live git tree
- EGIT_REPO_URI="git://sourceware.org/git/binutils-gdb.git"
- inherit git-r3
- SRC_URI=""
- ;;
-*.*.50.2???????)
- # weekly snapshots
- SRC_URI="ftp://sourceware.org/pub/gdb/snapshots/current/gdb-weekly-${PV}.tar.xz"
- ;;
-*.*.*.*.*.*)
- # fedora versions; note we swap the rpm & fedora core versions.
- # gdb-6.8.50.20090302-8.fc11.src.rpm -> gdb-6.8.50.20090302.11.8.ebuild
- # gdb-7.9-11.fc23.src.rpm -> gdb-7.9.23.11.ebuild
- inherit versionator rpm
- gvcr() { get_version_component_range "$@"; }
- parse_fedora_ver() {
- set -- $(get_version_components)
- MY_PV=$(gvcr 1-$(( $# - 2 )))
- RPM="${PN}-${MY_PV}-$(gvcr $#).fc$(gvcr $(( $# - 1 ))).src.rpm"
- }
- parse_fedora_ver
- SRC_URI="mirror://fedora-dev/development/rawhide/source/SRPMS/g/${RPM}"
- ;;
-*)
- # Normal upstream release
- SRC_URI="mirror://gnu/gdb/${P}.tar.xz
- ftp://sourceware.org/pub/gdb/releases/${P}.tar.xz"
- ;;
-esac
-
-PATCH_VER="1"
-PATCH_DEV="slyfox"
-DESCRIPTION="GNU debugger"
-HOMEPAGE="https://sourceware.org/gdb/"
-SRC_URI="${SRC_URI}
- ${PATCH_DEV:+https://dev.gentoo.org/~${PATCH_DEV}/distfiles/${PN}-8.1-patches-${PATCH_VER}.tar.xz}
- ${PATCH_VER:+mirror://gentoo/${PN}-8.1-patches-${PATCH_VER}.tar.xz}
-"
-
-LICENSE="GPL-2 LGPL-2"
-SLOT="0"
-if [[ ${PV} != 9999* ]] ; then
- KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~ppc-aix ~x64-cygwin ~amd64-fbsd ~x86-fbsd ~amd64-linux ~x86-linux ~x64-macos ~x86-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
-fi
-IUSE="+client lzma multitarget nls +python +server test vanilla xml"
-REQUIRED_USE="
- python? ( ${PYTHON_REQUIRED_USE} )
- || ( client server )
-"
-
-RDEPEND="
- server? ( !dev-util/gdbserver )
- client? (
- dev-libs/mpfr:0=
- >=sys-libs/ncurses-5.2-r2:0=
- sys-libs/readline:0=
- lzma? ( app-arch/xz-utils )
- python? ( ${PYTHON_DEPS} )
- xml? ( dev-libs/expat )
- sys-libs/zlib
- )"
-DEPEND="${RDEPEND}
- app-arch/xz-utils
- sys-apps/texinfo
- client? (
- 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() {
- [[ -n ${RPM} ]] && rpm_spec_epatch "${WORKDIR}"/gdb.spec
-
- # upstreamed
- EPATCH_EXCLUDE+=" 01_all_ia64-TRAP_HWBKPT.patch"
- EPATCH_EXCLUDE+=" 02_all_solaris-no-uuidsys.patch"
- ! use vanilla && [[ -n ${PATCH_VER} ]] && EPATCH_SUFFIX="patch" epatch "${WORKDIR}"/patch
-
- default
-
- strip-linguas -u bfd/po opcodes/po
-}
-
-gdb_branding() {
- printf "Gentoo ${PV} "
- if ! use vanilla && [[ -n ${PATCH_VER} ]] ; then
- printf "p${PATCH_VER}"
- else
- printf "vanilla"
- fi
- [[ -n ${EGIT_COMMIT} ]] && printf " ${EGIT_COMMIT}"
-}
-
-src_configure() {
- strip-unsupported-flags
-
- local myconf=(
- --with-pkgversion="$(gdb_branding)"
- --with-bugurl='https://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"
- --with-gdb-datadir="\${datadir}/gdb/${CTARGET}"
- )
-
- 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
- # Disable guile for now as it requires guile-2.x #562902
- --without-guile
- # This only disables building in the readline subdir.
- # For gdb itself, it'll use the system version.
- --disable-readline
- --with-system-readline
- # This only disables building in the zlib subdir.
- # For gdb itself, it'll use the system version.
- --without-zlib
- --with-system-zlib
- --with-separate-debug-dir="${EPREFIX}"/usr/lib/debug
- $(use_with xml expat)
- $(use_with lzma)
- $(use_enable nls)
- $(use multitarget && echo --enable-targets=all)
- $(use_with python python "${EPYTHON}")
- )
- fi
- if use sparc-solaris || use x86-solaris ; then
- # disable largefile support
- # https://sourceware.org/ml/gdb-patches/2014-12/msg00058.html
- myconf+=( --disable-largefile )
- fi
-
- econf "${myconf[@]}"
-}
-
-src_test() {
- nonfatal emake check || ewarn "tests failed"
-}
-
-src_install() {
- if use server && ! use client; then
- cd gdb/gdbserver || die
- fi
- default
- if use client; then
- find "${ED}"/usr -name libiberty.a -delete || die
- fi
- cd "${S}" || die
-
- # Delete translations that conflict with binutils-libs. #528088
- # Note: Should figure out how to store these in an internal gdb dir.
- if use nls ; then
- find "${ED}" \
- -regextype posix-extended -regex '.*/(bfd|opcodes)[.]g?mo$' \
- -delete || die
- fi
-
- # Don't install docs when building a cross-gdb
- if [[ ${CTARGET} != ${CHOST} ]] ; then
- rm -rf "${ED}"/usr/share/{doc,info,locale} || die
- local f
- for f in "${ED}"/usr/share/man/*/* ; do
- if [[ ${f##*/} != ${CTARGET}-* ]] ; then
- mv "${f}" "${f%/*}/${CTARGET}-${f##*/}" || die
- fi
- done
- return 0
- fi
- # Install it by hand for now:
- # https://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*
-
- # gcore is part of ubin on freebsd
- if [[ ${CHOST} == *-freebsd* ]]; then
- rm "${ED}"/usr/bin/gcore || die
- fi
-}
-
-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
-}
^ permalink raw reply related [flat|nested] 18+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: sys-devel/gdb/files/, sys-devel/gdb/
@ 2019-09-30 21:52 Sergei Trofimovich
0 siblings, 0 replies; 18+ messages in thread
From: Sergei Trofimovich @ 2019-09-30 21:52 UTC (permalink / raw
To: gentoo-commits
commit: bb6538b02a7df594bb1e91745f153944156492cc
Author: Sergei Trofimovich <slyfox <AT> gentoo <DOT> org>
AuthorDate: Mon Sep 30 21:37:33 2019 +0000
Commit: Sergei Trofimovich <slyfox <AT> gentoo <DOT> org>
CommitDate: Mon Sep 30 21:52:02 2019 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=bb6538b0
sys-devel/gdb: enable verbose gdb build, bug #695936
While tracing missing tinfo detection Victor noticed
lack of precise arguments to gdb's linker and compiler
commands.
Two issues fixed here:
- restore default V=1 build in custome Makefile snippet
- set --disable-dependency-tracking to top-level ./configure
to reach ./configure files that actually define it.
Top-level does not and thus tricks portage's econf()
into not passing it on.
Reported-by: Victor Mataré
Bug: https://bugs.gentoo.org/695936
Package-Manager: Portage-2.3.76, Repoman-2.3.17
Signed-off-by: Sergei Trofimovich <slyfox <AT> gentoo.org>
sys-devel/gdb/files/gdb-8.3.1-verbose-build.patch | 13 +++++++++++++
sys-devel/gdb/gdb-8.3.1.ebuild | 9 +++++++++
sys-devel/gdb/gdb-9999.ebuild | 9 +++++++++
3 files changed, 31 insertions(+)
diff --git a/sys-devel/gdb/files/gdb-8.3.1-verbose-build.patch b/sys-devel/gdb/files/gdb-8.3.1-verbose-build.patch
new file mode 100644
index 00000000000..06aa6084d2d
--- /dev/null
+++ b/sys-devel/gdb/files/gdb-8.3.1-verbose-build.patch
@@ -0,0 +1,13 @@
+Enable verbose build. By default gdb ignores even --disable-silent-rules.
+Override verbosity back to non-silent.
+
+https://bugs.gentoo.org/695936
+--- a/gdb/silent-rules.mk
++++ b/gdb/silent-rules.mk
+@@ -1,5 +1,4 @@
+-# If V is undefined or V=0 is specified, use the silent/verbose/compact mode.
+-V ?= 0
++V ?= 1
+ ifeq ($(V),0)
+ ECHO_CXX = @echo " CXX $@";
+ ECHO_CXXLD = @echo " CXXLD $@";
diff --git a/sys-devel/gdb/gdb-8.3.1.ebuild b/sys-devel/gdb/gdb-8.3.1.ebuild
index 34f58f16fba..41c20dc863f 100644
--- a/sys-devel/gdb/gdb-8.3.1.ebuild
+++ b/sys-devel/gdb/gdb-8.3.1.ebuild
@@ -88,6 +88,10 @@ BDEPEND="
S=${WORKDIR}/${PN}-${MY_PV}
+PATCHES=(
+ "${FILESDIR}"/${PN}-8.3.1-verbose-build.patch
+)
+
pkg_setup() {
use python && python-single-r1_pkg_setup
}
@@ -114,6 +118,11 @@ src_configure() {
strip-unsupported-flags
local myconf=(
+ # portage's econf() does not detect presence of --d-d-t
+ # because it greps only top-level ./configure. But not
+ # gnulib's or gdb's configure.
+ --disable-dependency-tracking
+
--with-pkgversion="$(gdb_branding)"
--with-bugurl='https://bugs.gentoo.org/'
--disable-werror
diff --git a/sys-devel/gdb/gdb-9999.ebuild b/sys-devel/gdb/gdb-9999.ebuild
index 34f58f16fba..41c20dc863f 100644
--- a/sys-devel/gdb/gdb-9999.ebuild
+++ b/sys-devel/gdb/gdb-9999.ebuild
@@ -88,6 +88,10 @@ BDEPEND="
S=${WORKDIR}/${PN}-${MY_PV}
+PATCHES=(
+ "${FILESDIR}"/${PN}-8.3.1-verbose-build.patch
+)
+
pkg_setup() {
use python && python-single-r1_pkg_setup
}
@@ -114,6 +118,11 @@ src_configure() {
strip-unsupported-flags
local myconf=(
+ # portage's econf() does not detect presence of --d-d-t
+ # because it greps only top-level ./configure. But not
+ # gnulib's or gdb's configure.
+ --disable-dependency-tracking
+
--with-pkgversion="$(gdb_branding)"
--with-bugurl='https://bugs.gentoo.org/'
--disable-werror
^ permalink raw reply related [flat|nested] 18+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: sys-devel/gdb/files/, sys-devel/gdb/
@ 2020-01-21 8:24 Sergei Trofimovich
0 siblings, 0 replies; 18+ messages in thread
From: Sergei Trofimovich @ 2020-01-21 8:24 UTC (permalink / raw
To: gentoo-commits
commit: 85d40e7435139585667847feb0728c038676a028
Author: Sergei Trofimovich <slyfox <AT> gentoo <DOT> org>
AuthorDate: Tue Jan 21 08:24:37 2020 +0000
Commit: Sergei Trofimovich <slyfox <AT> gentoo <DOT> org>
CommitDate: Tue Jan 21 08:24:52 2020 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=85d40e74
sys-devel/gdb: tweak for gcc-10
Pick upstream commit 851c0536c ("[ARM, sim] Fix build error and warnings").
Reported-by: Rolf Eike Beer
Package-Manager: Portage-2.3.84, Repoman-2.3.20
Signed-off-by: Sergei Trofimovich <slyfox <AT> gentoo.org>
sys-devel/gdb/files/gdb-8.3.1-gcc-10.patch | 222 +++++++++++++++++++++++++++++
sys-devel/gdb/gdb-8.3.1-r1.ebuild | 4 +-
2 files changed, 223 insertions(+), 3 deletions(-)
diff --git a/sys-devel/gdb/files/gdb-8.3.1-gcc-10.patch b/sys-devel/gdb/files/gdb-8.3.1-gcc-10.patch
new file mode 100644
index 00000000000..affc3b7392a
--- /dev/null
+++ b/sys-devel/gdb/files/gdb-8.3.1-gcc-10.patch
@@ -0,0 +1,222 @@
+From 851c0536cabb661847c45c73ebd796eb3299066b Mon Sep 17 00:00:00 2001
+Date: Tue, 26 Nov 2019 12:52:56 -0300
+Subject: [PATCH] [ARM, sim] Fix build error and warnings
+From: Luis Machado <luis.machado@linaro.org>
+
+Newer GCC's have switched to -fno-common by default, and this breaks the build
+for the ARM sim, like this:
+
+binutils-gdb.git~gdb-8.3-release/sim/arm/maverick.c:65: multiple definition of `DSPsc'; libsim.a(wrapper.o):binutils-gdb.git~gdb-8.3-release/sim/arm/wrapper.c:134: first defined here
+binutils-gdb.git~gdb-8.3-release/sim/arm/maverick.c:64: multiple definition of `DSPacc'; libsim.a(wrapper.o):binutils-gdb.git~gdb-8.3-release/sim/arm/wrapper.c:133: first defined here
+binutils-gdb.git~gdb-8.3-release/sim/arm/maverick.c:63: multiple definition of `DSPregs'; libsim.a(wrapper.o):binutils-gdb.git~gdb-8.3-release/sim/arm/wrapper.c:132: first defined here
+
+I also noticed a few warnings due to mismatching types, as follows:
+
+../../../../repos/binutils-gdb/sim/arm/wrapper.c: In function ‘sim_create_inferior’:
+../../../../repos/binutils-gdb/sim/arm/wrapper.c:335:16: warning: assignment discards ‘const’ qualifier from pointer target type [-Wdiscarded-qualifiers]
+ for (arg = argv; *arg != NULL; arg++)
+ ^
+../../../../repos/binutils-gdb/sim/arm/wrapper.c:342:8: warning: assignment discards ‘const’ qualifier from pointer target type [-Wdiscarded-qualifiers]
+ arg = argv;
+ ^
+../../../../repos/binutils-gdb/sim/arm/wrapper.c:345:13: warning: assignment discards ‘const’ qualifier from pointer target type [-Wdiscarded-qualifiers]
+ for (arg = argv; *arg != NULL; arg++)
+ ^
+The following patch fixes both of the above.
+
+Change-Id: I21db699d3b61b2de8c44053e47be4387285af28f
+---
+ sim/arm/armemu.c | 4 ----
+ sim/arm/arminit.c | 4 ++++
+ sim/arm/maverick.c | 35 +++++------------------------------
+ sim/arm/maverick.h | 46 ++++++++++++++++++++++++++++++++++++++++++++++
+ sim/arm/wrapper.c | 35 ++---------------------------------
+ create mode 100644 sim/arm/maverick.h
+
+--- a/sim/arm/armemu.c
++++ b/sim/arm/armemu.c
+@@ -1140,10 +1140,6 @@ handle_VFP_move (ARMul_State * state, ARMword instr)
+
+ /* EMULATION of ARM6. */
+
+-/* The PC pipeline value depends on whether ARM
+- or Thumb instructions are being executed. */
+-ARMword isize;
+-
+ ARMword
+ #ifdef MODE32
+ ARMul_Emulate32 (ARMul_State * state)
+--- a/sim/arm/arminit.c
++++ b/sim/arm/arminit.c
+@@ -40,6 +40,10 @@ unsigned ARMul_MultTable[32] =
+ ARMword ARMul_ImmedTable[4096]; /* immediate DP LHS values */
+ char ARMul_BitList[256]; /* number of bits in a byte table */
+
++/* The PC pipeline value depends on whether ARM
++ or Thumb instructions are being executed. */
++ARMword isize;
++
+ /***************************************************************************\
+ * Call this routine once to set up the emulator's tables. *
+ \***************************************************************************/
+--- a/sim/arm/maverick.c
++++ b/sim/arm/maverick.c
+@@ -19,6 +19,7 @@
+ #include "armdefs.h"
+ #include "ansidecl.h"
+ #include "armemu.h"
++#include "maverick.h"
+
+ /*#define CIRRUS_DEBUG 1 */
+ #if CIRRUS_DEBUG
+@@ -30,36 +31,10 @@
+ #define POS64(i) ( (~(i)) >> 63 )
+ #define NEG64(i) ( (i) >> 63 )
+
+-/* Define Co-Processor instruction handlers here. */
+-
+-/* Here's ARMulator's DSP definition. A few things to note:
+- 1) it has 16 64-bit registers and 4 72-bit accumulators
+- 2) you can only access its registers with MCR and MRC. */
+-
+-/* We can't define these in here because this file might not be linked
+- unless the target is arm9e-*. They are defined in wrapper.c.
+- Eventually the simulator should be made to handle any coprocessor
+- at run time. */
+-struct maverick_regs
+-{
+- union
+- {
+- int i;
+- float f;
+- } upper;
+-
+- union
+- {
+- int i;
+- float f;
+- } lower;
+-};
+-
+-union maverick_acc_regs
+-{
+- long double ld; /* Acc registers are 72-bits. */
+-};
+-
++/* These variables are defined here and made extern in maverick.h for use
++ in wrapper.c for now.
++ Eventually the simulator should be made to handle any coprocessor at run
++ time. */
+ struct maverick_regs DSPregs[16];
+ union maverick_acc_regs DSPacc[4];
+ ARMword DSPsc;
+--- /dev/null
++++ b/sim/arm/maverick.h
+@@ -0,0 +1,46 @@
++/* maverick.h -- Cirrus/DSP co-processor interface header
++ Copyright (C) 2003-2019 Free Software Foundation, Inc.
++ Contributed by Aldy Hernandez (aldyh@redhat.com).
++
++ This program is free software; you can redistribute it and/or modify
++ it under the terms of the GNU General Public License as published by
++ the Free Software Foundation; either version 3 of the License, or
++ (at your option) any later version.
++
++ This program is distributed in the hope that it will be useful,
++ but WITHOUT ANY WARRANTY; without even the implied warranty of
++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++ GNU General Public License for more details.
++
++ You should have received a copy of the GNU General Public License
++ along with this program. If not, see <http://www.gnu.org/licenses/>. */
++
++/* Define Co-Processor instruction handlers here. */
++
++/* Here's ARMulator's DSP definition. A few things to note:
++ 1) it has 16 64-bit registers and 4 72-bit accumulators
++ 2) you can only access its registers with MCR and MRC. */
++
++struct maverick_regs
++{
++ union
++ {
++ int i;
++ float f;
++ } upper;
++
++ union
++ {
++ int i;
++ float f;
++ } lower;
++};
++
++union maverick_acc_regs
++{
++ long double ld; /* Acc registers are 72-bits. */
++};
++
++extern struct maverick_regs DSPregs[16];
++extern union maverick_acc_regs DSPacc[4];
++extern ARMword DSPsc;
+--- a/sim/arm/wrapper.c
++++ b/sim/arm/wrapper.c
+@@ -37,6 +37,7 @@
+ #include "gdb/signals.h"
+ #include "libiberty.h"
+ #include "iwmmxt.h"
++#include "maverick.h"
+
+ /* TODO: This should get pulled from the SIM_DESC. */
+ host_callback *sim_callback;
+@@ -101,38 +102,6 @@ print_insn (ARMword instr)
+ fprintf (stderr, " %*s\n", size, opbuf);
+ }
+
+-/* Cirrus DSP registers.
+-
+- We need to define these registers outside of maverick.c because
+- maverick.c might not be linked in unless --target=arm9e-* in which
+- case wrapper.c will not compile because it tries to access Cirrus
+- registers. This should all go away once we get the Cirrus and ARM
+- Coprocessor to coexist in armcopro.c-- aldyh. */
+-
+-struct maverick_regs
+-{
+- union
+- {
+- int i;
+- float f;
+- } upper;
+-
+- union
+- {
+- int i;
+- float f;
+- } lower;
+-};
+-
+-union maverick_acc_regs
+-{
+- long double ld; /* Acc registers are 72-bits. */
+-};
+-
+-struct maverick_regs DSPregs[16];
+-union maverick_acc_regs DSPacc[4];
+-ARMword DSPsc;
+-
+ static void
+ init (void)
+ {
+@@ -236,7 +205,7 @@ sim_create_inferior (SIM_DESC sd ATTRIBUTE_UNUSED,
+ {
+ int argvlen = 0;
+ int mach;
+- char **arg;
++ char * const *arg;
+
+ init ();
+
+--
+2.25.0
+
diff --git a/sys-devel/gdb/gdb-8.3.1-r1.ebuild b/sys-devel/gdb/gdb-8.3.1-r1.ebuild
index 6188f7eb4f5..b5cae39cf9b 100644
--- a/sys-devel/gdb/gdb-8.3.1-r1.ebuild
+++ b/sys-devel/gdb/gdb-8.3.1-r1.ebuild
@@ -14,7 +14,6 @@ if [[ ${CTARGET} == ${CHOST} ]] ; then
fi
is_cross() { [[ ${CHOST} != ${CTARGET} ]] ; }
-RPM=
MY_PV=${PV}
case ${PV} in
9999*)
@@ -91,6 +90,7 @@ S=${WORKDIR}/${PN}-${MY_PV}
PATCHES=(
"${FILESDIR}"/${PN}-8.3.1-verbose-build.patch
+ "${FILESDIR}"/${PN}-8.3.1-gcc-10.patch
)
pkg_setup() {
@@ -98,8 +98,6 @@ pkg_setup() {
}
src_prepare() {
- [[ -n ${RPM} ]] && rpm_spec_epatch "${WORKDIR}"/gdb.spec
-
default
strip-linguas -u bfd/po opcodes/po
^ permalink raw reply related [flat|nested] 18+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: sys-devel/gdb/files/, sys-devel/gdb/
@ 2020-03-29 10:11 Sergei Trofimovich
0 siblings, 0 replies; 18+ messages in thread
From: Sergei Trofimovich @ 2020-03-29 10:11 UTC (permalink / raw
To: gentoo-commits
commit: 3d246a8e7d1e202cc441001a27b358d79cd97366
Author: Sergei Trofimovich <slyfox <AT> gentoo <DOT> org>
AuthorDate: Sun Mar 29 10:10:58 2020 +0000
Commit: Sergei Trofimovich <slyfox <AT> gentoo <DOT> org>
CommitDate: Sun Mar 29 10:10:58 2020 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=3d246a8e
sys-devel/gdb: drop 8.3.1, bug #690582
Bug: https://bugs.gentoo.org/690582
Package-Manager: Portage-2.3.96, Repoman-2.3.22
Signed-off-by: Sergei Trofimovich <slyfox <AT> gentoo.org>
sys-devel/gdb/Manifest | 1 -
sys-devel/gdb/files/gdb-8.3.1-gcc-10.patch | 222 ------------------------
sys-devel/gdb/gdb-8.3.1-r1.ebuild | 262 -----------------------------
sys-devel/gdb/gdb-8.3.1.ebuild | 260 ----------------------------
4 files changed, 745 deletions(-)
diff --git a/sys-devel/gdb/Manifest b/sys-devel/gdb/Manifest
index 7770b5e8807..5c3fc0f0d88 100644
--- a/sys-devel/gdb/Manifest
+++ b/sys-devel/gdb/Manifest
@@ -1,2 +1 @@
-DIST gdb-8.3.1.tar.xz 20489528 BLAKE2B 5a671f620a2ed3337486a8ff53b93d65b3b6079e59ea07bc0f31e3ea6d459ced1d8549a76cfcf124762e0890e243eaabcf8b204bfc631002e759339a89b9bf9a SHA512 9053a2dc6b9eb921907afbc4cecc75d635aa76df5e8c4f0e5824ccf57cb206b299c19b127fff000b65c334826ff8304a54ff6098428365a8e997cca886c39e9a
DIST gdb-9.1.tar.xz 20980824 BLAKE2B b84b1dc627d7ba697dfd76ba7c0f4f88f1725e1e1b83134d08cf53bf867ebfa07e1d01eff2acd9a57d22a779077bf6ed95d6098e8a58c4d86eaed034ca62ac30 SHA512 84cdd408d80a3fc5779de459c5b26154d31b329ebde7e3aa78799fb1eb245d8b64b8c8ee7242382a1dbd95b4e6f9d84fef41d12a0646aa75d3dee4709ea1f6e7
diff --git a/sys-devel/gdb/files/gdb-8.3.1-gcc-10.patch b/sys-devel/gdb/files/gdb-8.3.1-gcc-10.patch
deleted file mode 100644
index affc3b7392a..00000000000
--- a/sys-devel/gdb/files/gdb-8.3.1-gcc-10.patch
+++ /dev/null
@@ -1,222 +0,0 @@
-From 851c0536cabb661847c45c73ebd796eb3299066b Mon Sep 17 00:00:00 2001
-Date: Tue, 26 Nov 2019 12:52:56 -0300
-Subject: [PATCH] [ARM, sim] Fix build error and warnings
-From: Luis Machado <luis.machado@linaro.org>
-
-Newer GCC's have switched to -fno-common by default, and this breaks the build
-for the ARM sim, like this:
-
-binutils-gdb.git~gdb-8.3-release/sim/arm/maverick.c:65: multiple definition of `DSPsc'; libsim.a(wrapper.o):binutils-gdb.git~gdb-8.3-release/sim/arm/wrapper.c:134: first defined here
-binutils-gdb.git~gdb-8.3-release/sim/arm/maverick.c:64: multiple definition of `DSPacc'; libsim.a(wrapper.o):binutils-gdb.git~gdb-8.3-release/sim/arm/wrapper.c:133: first defined here
-binutils-gdb.git~gdb-8.3-release/sim/arm/maverick.c:63: multiple definition of `DSPregs'; libsim.a(wrapper.o):binutils-gdb.git~gdb-8.3-release/sim/arm/wrapper.c:132: first defined here
-
-I also noticed a few warnings due to mismatching types, as follows:
-
-../../../../repos/binutils-gdb/sim/arm/wrapper.c: In function ‘sim_create_inferior’:
-../../../../repos/binutils-gdb/sim/arm/wrapper.c:335:16: warning: assignment discards ‘const’ qualifier from pointer target type [-Wdiscarded-qualifiers]
- for (arg = argv; *arg != NULL; arg++)
- ^
-../../../../repos/binutils-gdb/sim/arm/wrapper.c:342:8: warning: assignment discards ‘const’ qualifier from pointer target type [-Wdiscarded-qualifiers]
- arg = argv;
- ^
-../../../../repos/binutils-gdb/sim/arm/wrapper.c:345:13: warning: assignment discards ‘const’ qualifier from pointer target type [-Wdiscarded-qualifiers]
- for (arg = argv; *arg != NULL; arg++)
- ^
-The following patch fixes both of the above.
-
-Change-Id: I21db699d3b61b2de8c44053e47be4387285af28f
----
- sim/arm/armemu.c | 4 ----
- sim/arm/arminit.c | 4 ++++
- sim/arm/maverick.c | 35 +++++------------------------------
- sim/arm/maverick.h | 46 ++++++++++++++++++++++++++++++++++++++++++++++
- sim/arm/wrapper.c | 35 ++---------------------------------
- create mode 100644 sim/arm/maverick.h
-
---- a/sim/arm/armemu.c
-+++ b/sim/arm/armemu.c
-@@ -1140,10 +1140,6 @@ handle_VFP_move (ARMul_State * state, ARMword instr)
-
- /* EMULATION of ARM6. */
-
--/* The PC pipeline value depends on whether ARM
-- or Thumb instructions are being executed. */
--ARMword isize;
--
- ARMword
- #ifdef MODE32
- ARMul_Emulate32 (ARMul_State * state)
---- a/sim/arm/arminit.c
-+++ b/sim/arm/arminit.c
-@@ -40,6 +40,10 @@ unsigned ARMul_MultTable[32] =
- ARMword ARMul_ImmedTable[4096]; /* immediate DP LHS values */
- char ARMul_BitList[256]; /* number of bits in a byte table */
-
-+/* The PC pipeline value depends on whether ARM
-+ or Thumb instructions are being executed. */
-+ARMword isize;
-+
- /***************************************************************************\
- * Call this routine once to set up the emulator's tables. *
- \***************************************************************************/
---- a/sim/arm/maverick.c
-+++ b/sim/arm/maverick.c
-@@ -19,6 +19,7 @@
- #include "armdefs.h"
- #include "ansidecl.h"
- #include "armemu.h"
-+#include "maverick.h"
-
- /*#define CIRRUS_DEBUG 1 */
- #if CIRRUS_DEBUG
-@@ -30,36 +31,10 @@
- #define POS64(i) ( (~(i)) >> 63 )
- #define NEG64(i) ( (i) >> 63 )
-
--/* Define Co-Processor instruction handlers here. */
--
--/* Here's ARMulator's DSP definition. A few things to note:
-- 1) it has 16 64-bit registers and 4 72-bit accumulators
-- 2) you can only access its registers with MCR and MRC. */
--
--/* We can't define these in here because this file might not be linked
-- unless the target is arm9e-*. They are defined in wrapper.c.
-- Eventually the simulator should be made to handle any coprocessor
-- at run time. */
--struct maverick_regs
--{
-- union
-- {
-- int i;
-- float f;
-- } upper;
--
-- union
-- {
-- int i;
-- float f;
-- } lower;
--};
--
--union maverick_acc_regs
--{
-- long double ld; /* Acc registers are 72-bits. */
--};
--
-+/* These variables are defined here and made extern in maverick.h for use
-+ in wrapper.c for now.
-+ Eventually the simulator should be made to handle any coprocessor at run
-+ time. */
- struct maverick_regs DSPregs[16];
- union maverick_acc_regs DSPacc[4];
- ARMword DSPsc;
---- /dev/null
-+++ b/sim/arm/maverick.h
-@@ -0,0 +1,46 @@
-+/* maverick.h -- Cirrus/DSP co-processor interface header
-+ Copyright (C) 2003-2019 Free Software Foundation, Inc.
-+ Contributed by Aldy Hernandez (aldyh@redhat.com).
-+
-+ This program is free software; you can redistribute it and/or modify
-+ it under the terms of the GNU General Public License as published by
-+ the Free Software Foundation; either version 3 of the License, or
-+ (at your option) any later version.
-+
-+ This program is distributed in the hope that it will be useful,
-+ but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-+ GNU General Public License for more details.
-+
-+ You should have received a copy of the GNU General Public License
-+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
-+
-+/* Define Co-Processor instruction handlers here. */
-+
-+/* Here's ARMulator's DSP definition. A few things to note:
-+ 1) it has 16 64-bit registers and 4 72-bit accumulators
-+ 2) you can only access its registers with MCR and MRC. */
-+
-+struct maverick_regs
-+{
-+ union
-+ {
-+ int i;
-+ float f;
-+ } upper;
-+
-+ union
-+ {
-+ int i;
-+ float f;
-+ } lower;
-+};
-+
-+union maverick_acc_regs
-+{
-+ long double ld; /* Acc registers are 72-bits. */
-+};
-+
-+extern struct maverick_regs DSPregs[16];
-+extern union maverick_acc_regs DSPacc[4];
-+extern ARMword DSPsc;
---- a/sim/arm/wrapper.c
-+++ b/sim/arm/wrapper.c
-@@ -37,6 +37,7 @@
- #include "gdb/signals.h"
- #include "libiberty.h"
- #include "iwmmxt.h"
-+#include "maverick.h"
-
- /* TODO: This should get pulled from the SIM_DESC. */
- host_callback *sim_callback;
-@@ -101,38 +102,6 @@ print_insn (ARMword instr)
- fprintf (stderr, " %*s\n", size, opbuf);
- }
-
--/* Cirrus DSP registers.
--
-- We need to define these registers outside of maverick.c because
-- maverick.c might not be linked in unless --target=arm9e-* in which
-- case wrapper.c will not compile because it tries to access Cirrus
-- registers. This should all go away once we get the Cirrus and ARM
-- Coprocessor to coexist in armcopro.c-- aldyh. */
--
--struct maverick_regs
--{
-- union
-- {
-- int i;
-- float f;
-- } upper;
--
-- union
-- {
-- int i;
-- float f;
-- } lower;
--};
--
--union maverick_acc_regs
--{
-- long double ld; /* Acc registers are 72-bits. */
--};
--
--struct maverick_regs DSPregs[16];
--union maverick_acc_regs DSPacc[4];
--ARMword DSPsc;
--
- static void
- init (void)
- {
-@@ -236,7 +205,7 @@ sim_create_inferior (SIM_DESC sd ATTRIBUTE_UNUSED,
- {
- int argvlen = 0;
- int mach;
-- char **arg;
-+ char * const *arg;
-
- init ();
-
---
-2.25.0
-
diff --git a/sys-devel/gdb/gdb-8.3.1-r1.ebuild b/sys-devel/gdb/gdb-8.3.1-r1.ebuild
deleted file mode 100644
index 2d2ec2e6952..00000000000
--- a/sys-devel/gdb/gdb-8.3.1-r1.ebuild
+++ /dev/null
@@ -1,262 +0,0 @@
-# Copyright 1999-2020 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-PYTHON_COMPAT=( python{3_6,3_7} )
-
-inherit eutils flag-o-matic python-single-r1
-
-export CTARGET=${CTARGET:-${CHOST}}
-if [[ ${CTARGET} == ${CHOST} ]] ; then
- if [[ ${CATEGORY} == cross-* ]] ; then
- export CTARGET=${CATEGORY#cross-}
- fi
-fi
-is_cross() { [[ ${CHOST} != ${CTARGET} ]] ; }
-
-MY_PV=${PV}
-case ${PV} in
-9999*)
- # live git tree
- EGIT_REPO_URI="https://sourceware.org/git/binutils-gdb.git"
- inherit git-r3
- SRC_URI=""
- ;;
-*.*.50.2???????)
- # weekly snapshots
- SRC_URI="ftp://sourceware.org/pub/gdb/snapshots/current/gdb-weekly-${PV}.tar.xz"
- ;;
-*)
- # Normal upstream release
- SRC_URI="mirror://gnu/gdb/${P}.tar.xz
- ftp://sourceware.org/pub/gdb/releases/${P}.tar.xz"
- ;;
-esac
-
-PATCH_VER=""
-PATCH_DEV=""
-DESCRIPTION="GNU debugger"
-HOMEPAGE="https://sourceware.org/gdb/"
-SRC_URI="${SRC_URI}
- ${PATCH_DEV:+https://dev.gentoo.org/~${PATCH_DEV}/distfiles/${P}-patches-${PATCH_VER}.tar.xz}
- ${PATCH_VER:+mirror://gentoo/${P}-patches-${PATCH_VER}.tar.xz}
-"
-
-LICENSE="GPL-2 LGPL-2"
-SLOT="0"
-if [[ ${PV} != 9999* ]] ; then
- KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~ppc-aix ~x64-cygwin ~amd64-linux ~x86-linux ~x64-macos ~x86-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
-fi
-IUSE="+client lzma multitarget nls +python +server source-highlight test vanilla xml"
-REQUIRED_USE="
- python? ( ${PYTHON_REQUIRED_USE} )
- || ( client server )
-"
-
-# ia64 kernel crashes when gdb testsuite is running
-# hppa kernel crashes when gdb testsuite is running
-RESTRICT="
- hppa? ( test )
- ia64? ( test )
-
- !test? ( test )
-"
-
-RDEPEND="
- client? (
- dev-libs/mpfr:0=
- >=sys-libs/ncurses-5.2-r2:0=
- sys-libs/readline:0=
- lzma? ( app-arch/xz-utils )
- python? ( ${PYTHON_DEPS} )
- xml? ( dev-libs/expat )
- sys-libs/zlib
- )
- source-highlight? (
- dev-util/source-highlight
- )
-"
-DEPEND="${RDEPEND}"
-BDEPEND="
- app-arch/xz-utils
- sys-apps/texinfo
- client? (
- virtual/yacc
- test? ( dev-util/dejagnu )
- nls? ( sys-devel/gettext )
- )"
-
-S=${WORKDIR}/${PN}-${MY_PV}
-
-PATCHES=(
- "${FILESDIR}"/${PN}-8.3.1-verbose-build.patch
- "${FILESDIR}"/${PN}-8.3.1-gcc-10.patch
-)
-
-pkg_setup() {
- use python && python-single-r1_pkg_setup
-}
-
-src_prepare() {
- default
-
- strip-linguas -u bfd/po opcodes/po
-}
-
-gdb_branding() {
- printf "Gentoo ${PV} "
- if ! use vanilla && [[ -n ${PATCH_VER} ]] ; then
- printf "p${PATCH_VER}"
- else
- printf "vanilla"
- fi
- [[ -n ${EGIT_COMMIT} ]] && printf " ${EGIT_COMMIT}"
-}
-
-src_configure() {
- strip-unsupported-flags
-
- local myconf=(
- # portage's econf() does not detect presence of --d-d-t
- # because it greps only top-level ./configure. But not
- # gnulib's or gdb's configure.
- --disable-dependency-tracking
-
- --with-pkgversion="$(gdb_branding)"
- --with-bugurl='https://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"
- --with-gdb-datadir="\${datadir}/gdb/${CTARGET}"
- )
-
- 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
- # Disable guile for now as it requires guile-2.x #562902
- --without-guile
- # This only disables building in the readline subdir.
- # For gdb itself, it'll use the system version.
- --disable-readline
- --with-system-readline
- # This only disables building in the zlib subdir.
- # For gdb itself, it'll use the system version.
- --without-zlib
- --with-system-zlib
- --with-separate-debug-dir="${EPREFIX}"/usr/lib/debug
- $(use_with xml expat)
- $(use_with lzma)
- $(use_enable nls)
- $(use_enable source-highlight)
- $(use multitarget && echo --enable-targets=all)
- $(use_with python python "${EPYTHON}")
- )
- fi
- if use sparc-solaris || use x86-solaris ; then
- # disable largefile support
- # https://sourceware.org/ml/gdb-patches/2014-12/msg00058.html
- myconf+=( --disable-largefile )
- fi
-
- econf "${myconf[@]}"
-}
-
-src_install() {
- if use server && ! use client; then
- cd gdb/gdbserver || die
- fi
- default
- if use client; then
- find "${ED}"/usr -name libiberty.a -delete || die
- fi
- cd "${S}" || die
-
- # Delete translations that conflict with binutils-libs. #528088
- # Note: Should figure out how to store these in an internal gdb dir.
- if use nls ; then
- find "${ED}" \
- -regextype posix-extended -regex '.*/(bfd|opcodes)[.]g?mo$' \
- -delete || die
- fi
-
- # Don't install docs when building a cross-gdb
- if [[ ${CTARGET} != ${CHOST} ]] ; then
- rm -rf "${ED}"/usr/share/{doc,info,locale} || die
- local f
- for f in "${ED}"/usr/share/man/*/* ; do
- if [[ ${f##*/} != ${CTARGET}-* ]] ; then
- mv "${f}" "${f%/*}/${CTARGET}-${f##*/}" || die
- fi
- done
- return 0
- fi
- # Install it by hand for now:
- # https://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*
-
- # gcore is part of ubin on freebsd
- if [[ ${CHOST} == *-freebsd* ]]; then
- rm "${ED}"/usr/bin/gcore || die
- fi
-
- if use python; then
- python_optimize "${ED}"/usr/share/gdb/python/gdb
- fi
-}
-
-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/gdb-8.3.1.ebuild b/sys-devel/gdb/gdb-8.3.1.ebuild
deleted file mode 100644
index ac1ce8d7b8e..00000000000
--- a/sys-devel/gdb/gdb-8.3.1.ebuild
+++ /dev/null
@@ -1,260 +0,0 @@
-# Copyright 1999-2020 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-PYTHON_COMPAT=( python{3_6,3_7} )
-
-inherit eutils flag-o-matic python-single-r1
-
-export CTARGET=${CTARGET:-${CHOST}}
-if [[ ${CTARGET} == ${CHOST} ]] ; then
- if [[ ${CATEGORY} == cross-* ]] ; then
- export CTARGET=${CATEGORY#cross-}
- fi
-fi
-is_cross() { [[ ${CHOST} != ${CTARGET} ]] ; }
-
-RPM=
-MY_PV=${PV}
-case ${PV} in
-9999*)
- # live git tree
- EGIT_REPO_URI="https://sourceware.org/git/binutils-gdb.git"
- inherit git-r3
- SRC_URI=""
- ;;
-*.*.50.2???????)
- # weekly snapshots
- SRC_URI="ftp://sourceware.org/pub/gdb/snapshots/current/gdb-weekly-${PV}.tar.xz"
- ;;
-*)
- # Normal upstream release
- SRC_URI="mirror://gnu/gdb/${P}.tar.xz
- ftp://sourceware.org/pub/gdb/releases/${P}.tar.xz"
- ;;
-esac
-
-PATCH_VER=""
-PATCH_DEV=""
-DESCRIPTION="GNU debugger"
-HOMEPAGE="https://sourceware.org/gdb/"
-SRC_URI="${SRC_URI}
- ${PATCH_DEV:+https://dev.gentoo.org/~${PATCH_DEV}/distfiles/${P}-patches-${PATCH_VER}.tar.xz}
- ${PATCH_VER:+mirror://gentoo/${P}-patches-${PATCH_VER}.tar.xz}
-"
-
-LICENSE="GPL-2 LGPL-2"
-SLOT="0"
-if [[ ${PV} != 9999* ]] ; then
- KEYWORDS="~alpha amd64 arm arm64 hppa ia64 ~m68k ~mips ppc ppc64 ~riscv s390 sparc x86 ~ppc-aix ~x64-cygwin ~amd64-linux ~x86-linux ~x64-macos ~x86-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
-fi
-IUSE="+client lzma multitarget nls +python +server source-highlight test vanilla xml"
-REQUIRED_USE="
- python? ( ${PYTHON_REQUIRED_USE} )
- || ( client server )
-"
-
-# ia64 kernel crashes when gdb testsuite is running
-# hppa kernel crashes when gdb testsuite is running
-RESTRICT="
- hppa? ( test )
- ia64? ( test )
-
- !test? ( test )
-"
-
-RDEPEND="
- client? (
- dev-libs/mpfr:0=
- >=sys-libs/ncurses-5.2-r2:0=
- sys-libs/readline:0=
- lzma? ( app-arch/xz-utils )
- python? ( ${PYTHON_DEPS} )
- xml? ( dev-libs/expat )
- sys-libs/zlib
- )
- source-highlight? (
- dev-util/source-highlight
- )
-"
-DEPEND="${RDEPEND}"
-BDEPEND="
- app-arch/xz-utils
- sys-apps/texinfo
- client? (
- virtual/yacc
- test? ( dev-util/dejagnu )
- nls? ( sys-devel/gettext )
- )"
-
-S=${WORKDIR}/${PN}-${MY_PV}
-
-PATCHES=(
- "${FILESDIR}"/${PN}-8.3.1-verbose-build.patch
-)
-
-pkg_setup() {
- use python && python-single-r1_pkg_setup
-}
-
-src_prepare() {
- [[ -n ${RPM} ]] && rpm_spec_epatch "${WORKDIR}"/gdb.spec
-
- default
-
- strip-linguas -u bfd/po opcodes/po
-}
-
-gdb_branding() {
- printf "Gentoo ${PV} "
- if ! use vanilla && [[ -n ${PATCH_VER} ]] ; then
- printf "p${PATCH_VER}"
- else
- printf "vanilla"
- fi
- [[ -n ${EGIT_COMMIT} ]] && printf " ${EGIT_COMMIT}"
-}
-
-src_configure() {
- strip-unsupported-flags
-
- local myconf=(
- # portage's econf() does not detect presence of --d-d-t
- # because it greps only top-level ./configure. But not
- # gnulib's or gdb's configure.
- --disable-dependency-tracking
-
- --with-pkgversion="$(gdb_branding)"
- --with-bugurl='https://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"
- --with-gdb-datadir="\${datadir}/gdb/${CTARGET}"
- )
-
- 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
- # Disable guile for now as it requires guile-2.x #562902
- --without-guile
- # This only disables building in the readline subdir.
- # For gdb itself, it'll use the system version.
- --disable-readline
- --with-system-readline
- # This only disables building in the zlib subdir.
- # For gdb itself, it'll use the system version.
- --without-zlib
- --with-system-zlib
- --with-separate-debug-dir="${EPREFIX}"/usr/lib/debug
- $(use_with xml expat)
- $(use_with lzma)
- $(use_enable nls)
- $(use_enable source-highlight)
- $(use multitarget && echo --enable-targets=all)
- $(use_with python python "${EPYTHON}")
- )
- fi
- if use sparc-solaris || use x86-solaris ; then
- # disable largefile support
- # https://sourceware.org/ml/gdb-patches/2014-12/msg00058.html
- myconf+=( --disable-largefile )
- fi
-
- econf "${myconf[@]}"
-}
-
-src_install() {
- if use server && ! use client; then
- cd gdb/gdbserver || die
- fi
- default
- if use client; then
- find "${ED}"/usr -name libiberty.a -delete || die
- fi
- cd "${S}" || die
-
- # Delete translations that conflict with binutils-libs. #528088
- # Note: Should figure out how to store these in an internal gdb dir.
- if use nls ; then
- find "${ED}" \
- -regextype posix-extended -regex '.*/(bfd|opcodes)[.]g?mo$' \
- -delete || die
- fi
-
- # Don't install docs when building a cross-gdb
- if [[ ${CTARGET} != ${CHOST} ]] ; then
- rm -rf "${ED}"/usr/share/{doc,info,locale} || die
- local f
- for f in "${ED}"/usr/share/man/*/* ; do
- if [[ ${f##*/} != ${CTARGET}-* ]] ; then
- mv "${f}" "${f%/*}/${CTARGET}-${f##*/}" || die
- fi
- done
- return 0
- fi
- # Install it by hand for now:
- # https://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*
-
- # gcore is part of ubin on freebsd
- if [[ ${CHOST} == *-freebsd* ]]; then
- rm "${ED}"/usr/bin/gcore || die
- fi
-}
-
-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
-}
^ permalink raw reply related [flat|nested] 18+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: sys-devel/gdb/files/, sys-devel/gdb/
@ 2020-08-21 7:21 Sergei Trofimovich
0 siblings, 0 replies; 18+ messages in thread
From: Sergei Trofimovich @ 2020-08-21 7:21 UTC (permalink / raw
To: gentoo-commits
commit: c4b816a18ebce5dae2343694da3d24ca1a7f3cf3
Author: Sergei Trofimovich <slyfox <AT> gentoo <DOT> org>
AuthorDate: Fri Aug 21 07:21:05 2020 +0000
Commit: Sergei Trofimovich <slyfox <AT> gentoo <DOT> org>
CommitDate: Fri Aug 21 07:21:15 2020 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=c4b816a1
sys-devel/gdb: backport -fno-common build for sim/ppc
Reported-by: Daniel Gurney
Closes: https://bugs.gentoo.org/738272
Package-Manager: Portage-3.0.4, Repoman-3.0.1
Signed-off-by: Sergei Trofimovich <slyfox <AT> gentoo.org>
.../gdb/files/gdb-9.2-sim-ppc-fno-common.patch | 97 ++++++++++++++++++++++
sys-devel/gdb/gdb-9.2.ebuild | 1 +
2 files changed, 98 insertions(+)
diff --git a/sys-devel/gdb/files/gdb-9.2-sim-ppc-fno-common.patch b/sys-devel/gdb/files/gdb-9.2-sim-ppc-fno-common.patch
new file mode 100644
index 00000000000..76b29649ad2
--- /dev/null
+++ b/sys-devel/gdb/files/gdb-9.2-sim-ppc-fno-common.patch
@@ -0,0 +1,97 @@
+https://bugs.gentoo.org/738272
+https://sourceware.org/git/?p=binutils-gdb.git;a=commitdiff;h=ad8464f799a4c96c7ab8bdfec3f95846cf54f9b0
+
+From ad8464f799a4c96c7ab8bdfec3f95846cf54f9b0 Mon Sep 17 00:00:00 2001
+From: Sebastian Huber <sebastian.huber@embedded-brains.de>
+Date: Wed, 1 Jul 2020 19:29:55 +0200
+Subject: [PATCH] sim/ppc: Fix linker error with -fno-common
+
+GCC 10 enables -fno-common by default. This resulted in a multiple
+definition linker error since global variables were declared and defined
+in a header file:
+
+ ld: ld-insn.o:sim/ppc/ld-insn.h:221: multiple definition of
+ `max_model_fields_len'; igen.o:sim/ppc/ld-insn.h:221: first defined here
+
+sim/ppc
+
+ * ld-insn.h (last_model, last_model_data, last_model_function,
+ last_model_internal, last_model_macro, last_model_static):
+ Delete.
+ (max_model_fields_len, model_data, model_functions,
+ model_internal, model_macros, model_static, models): Declare, but do not
+ define.
+ * ld-insn.c (last_model, last_model_data, last_model_function,
+ last_model_internal, last_model_macro, last_model_static,
+ max_model_fields_len, model_data, model_functions,
+ model_internal, model_macros, model_static, models): Define.
+---
+ sim/ppc/ld-insn.c | 18 ++++++++++++++++++
+ sim/ppc/ld-insn.h | 24 +++++++-----------------
+ 3 files changed, 38 insertions(+), 17 deletions(-)
+
+--- a/sim/ppc/ld-insn.c
++++ b/sim/ppc/ld-insn.c
+@@ -28,6 +28,24 @@
+
+ #include "igen.h"
+
++static model *last_model;
++
++static insn *last_model_macro;
++static insn *last_model_function;
++static insn *last_model_internal;
++static insn *last_model_static;
++static insn *last_model_data;
++
++model *models;
++
++insn *model_macros;
++insn *model_functions;
++insn *model_internal;
++insn *model_static;
++insn *model_data;
++
++int max_model_fields_len;
++
+ static void
+ update_depth(insn_table *entry,
+ lf *file,
+--- a/sim/ppc/ld-insn.h
++++ b/sim/ppc/ld-insn.h
+@@ -200,25 +200,15 @@ extern insn_table *load_insn_table
+ table_include *includes,
+ cache_table **cache_rules);
+
+-model *models;
+-model *last_model;
++extern model *models;
+
+-insn *model_macros;
+-insn *last_model_macro;
++extern insn *model_macros;
++extern insn *model_functions;
++extern insn *model_internal;
++extern insn *model_static;
++extern insn *model_data;
+
+-insn *model_functions;
+-insn *last_model_function;
+-
+-insn *model_internal;
+-insn *last_model_internal;
+-
+-insn *model_static;
+-insn *last_model_static;
+-
+-insn *model_data;
+-insn *last_model_data;
+-
+-int max_model_fields_len;
++extern int max_model_fields_len;
+
+ extern void insn_table_insert_insn
+ (insn_table *table,
+--
+2.28.0
+
diff --git a/sys-devel/gdb/gdb-9.2.ebuild b/sys-devel/gdb/gdb-9.2.ebuild
index a65d6cdd173..cc5393a1813 100644
--- a/sys-devel/gdb/gdb-9.2.ebuild
+++ b/sys-devel/gdb/gdb-9.2.ebuild
@@ -91,6 +91,7 @@ BDEPEND="
PATCHES=(
"${FILESDIR}"/${PN}-8.3.1-verbose-build.patch
"${FILESDIR}"/${PN}-9.1-ia64.patch
+ "${FILESDIR}"/${P}-sim-ppc-fno-common.patch
)
GDB_BUILD_DIR="${WORKDIR}"/${P}-build
^ permalink raw reply related [flat|nested] 18+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: sys-devel/gdb/files/, sys-devel/gdb/
@ 2021-01-09 11:55 Sergei Trofimovich
0 siblings, 0 replies; 18+ messages in thread
From: Sergei Trofimovich @ 2021-01-09 11:55 UTC (permalink / raw
To: gentoo-commits
commit: b5cbad35c3944243711a32c2924a95f4dcb7bd4e
Author: Sergei Trofimovich <slyfox <AT> gentoo <DOT> org>
AuthorDate: Sat Jan 9 11:50:31 2021 +0000
Commit: Sergei Trofimovich <slyfox <AT> gentoo <DOT> org>
CommitDate: Sat Jan 9 11:50:31 2021 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=b5cbad35
sys-devel/gdb: drop old
Package-Manager: Portage-3.0.12, Repoman-3.0.2
Signed-off-by: Sergei Trofimovich <slyfox <AT> gentoo.org>
sys-devel/gdb/Manifest | 1 -
sys-devel/gdb/files/gdb-9.1-ia64.patch | 15 --
.../gdb/files/gdb-9.2-sim-ppc-fno-common.patch | 97 -------
sys-devel/gdb/gdb-9.2.ebuild | 282 ---------------------
4 files changed, 395 deletions(-)
diff --git a/sys-devel/gdb/Manifest b/sys-devel/gdb/Manifest
index 1bb96388c40..8fa3bb78990 100644
--- a/sys-devel/gdb/Manifest
+++ b/sys-devel/gdb/Manifest
@@ -1,2 +1 @@
DIST gdb-10.1.tar.xz 21507112 BLAKE2B 69d79cd667ecb6e936b41a03817ade5dd9b761f97bc123d668b5f968d123c37d048fc8ec1289151e989f01bb01a43cc3d8b5b54f1807f1e3eb5f43e6bf0aa55b SHA512 0dc54380435c6853db60f1e388b94836d294dfa9ad7f518385a27db4edd03cb970f8717d5f1e9c9a0d4a33d7fcf91bc2e5d6c9cf9e4b561dcc74e65b806c1537
-DIST gdb-9.2.tar.xz 20979436 BLAKE2B e83468f2d2fdcf4a7eb2943564750c7e9e9fa19b00bd832a9c149ad06b199cc7d6e7b8808d552e5f0e9e4f701a9262faf6b0b46ed4e0b4ecd3a0303d873d6d9a SHA512 73635f00f343117aa5e2436f1e1597099e2bfb31ef7bb162b273fa1ea282c3fa9b0f52762e70bfc7ad0334addb8d159e9ac7cbe5998ca4f755ea8cf90714d274
diff --git a/sys-devel/gdb/files/gdb-9.1-ia64.patch b/sys-devel/gdb/files/gdb-9.1-ia64.patch
deleted file mode 100644
index 49a21e4cdd2..00000000000
--- a/sys-devel/gdb/files/gdb-9.1-ia64.patch
+++ /dev/null
@@ -1,15 +0,0 @@
-https://sourceware.org/pipermail/gdb-patches/2020-May/168808.html
-
---- a/gdb/ia64-linux-nat.c
-+++ b/gdb/ia64-linux-nat.c
-@@ -21,6 +21,7 @@
- #include "defs.h"
- #include "inferior.h"
- #include "target.h"
-+#include "gdbarch.h"
- #include "gdbcore.h"
- #include "regcache.h"
- #include "ia64-tdep.h"
---
-2.26.2
-
diff --git a/sys-devel/gdb/files/gdb-9.2-sim-ppc-fno-common.patch b/sys-devel/gdb/files/gdb-9.2-sim-ppc-fno-common.patch
deleted file mode 100644
index 76b29649ad2..00000000000
--- a/sys-devel/gdb/files/gdb-9.2-sim-ppc-fno-common.patch
+++ /dev/null
@@ -1,97 +0,0 @@
-https://bugs.gentoo.org/738272
-https://sourceware.org/git/?p=binutils-gdb.git;a=commitdiff;h=ad8464f799a4c96c7ab8bdfec3f95846cf54f9b0
-
-From ad8464f799a4c96c7ab8bdfec3f95846cf54f9b0 Mon Sep 17 00:00:00 2001
-From: Sebastian Huber <sebastian.huber@embedded-brains.de>
-Date: Wed, 1 Jul 2020 19:29:55 +0200
-Subject: [PATCH] sim/ppc: Fix linker error with -fno-common
-
-GCC 10 enables -fno-common by default. This resulted in a multiple
-definition linker error since global variables were declared and defined
-in a header file:
-
- ld: ld-insn.o:sim/ppc/ld-insn.h:221: multiple definition of
- `max_model_fields_len'; igen.o:sim/ppc/ld-insn.h:221: first defined here
-
-sim/ppc
-
- * ld-insn.h (last_model, last_model_data, last_model_function,
- last_model_internal, last_model_macro, last_model_static):
- Delete.
- (max_model_fields_len, model_data, model_functions,
- model_internal, model_macros, model_static, models): Declare, but do not
- define.
- * ld-insn.c (last_model, last_model_data, last_model_function,
- last_model_internal, last_model_macro, last_model_static,
- max_model_fields_len, model_data, model_functions,
- model_internal, model_macros, model_static, models): Define.
----
- sim/ppc/ld-insn.c | 18 ++++++++++++++++++
- sim/ppc/ld-insn.h | 24 +++++++-----------------
- 3 files changed, 38 insertions(+), 17 deletions(-)
-
---- a/sim/ppc/ld-insn.c
-+++ b/sim/ppc/ld-insn.c
-@@ -28,6 +28,24 @@
-
- #include "igen.h"
-
-+static model *last_model;
-+
-+static insn *last_model_macro;
-+static insn *last_model_function;
-+static insn *last_model_internal;
-+static insn *last_model_static;
-+static insn *last_model_data;
-+
-+model *models;
-+
-+insn *model_macros;
-+insn *model_functions;
-+insn *model_internal;
-+insn *model_static;
-+insn *model_data;
-+
-+int max_model_fields_len;
-+
- static void
- update_depth(insn_table *entry,
- lf *file,
---- a/sim/ppc/ld-insn.h
-+++ b/sim/ppc/ld-insn.h
-@@ -200,25 +200,15 @@ extern insn_table *load_insn_table
- table_include *includes,
- cache_table **cache_rules);
-
--model *models;
--model *last_model;
-+extern model *models;
-
--insn *model_macros;
--insn *last_model_macro;
-+extern insn *model_macros;
-+extern insn *model_functions;
-+extern insn *model_internal;
-+extern insn *model_static;
-+extern insn *model_data;
-
--insn *model_functions;
--insn *last_model_function;
--
--insn *model_internal;
--insn *last_model_internal;
--
--insn *model_static;
--insn *last_model_static;
--
--insn *model_data;
--insn *last_model_data;
--
--int max_model_fields_len;
-+extern int max_model_fields_len;
-
- extern void insn_table_insert_insn
- (insn_table *table,
---
-2.28.0
-
diff --git a/sys-devel/gdb/gdb-9.2.ebuild b/sys-devel/gdb/gdb-9.2.ebuild
deleted file mode 100644
index 78740b7e1b6..00000000000
--- a/sys-devel/gdb/gdb-9.2.ebuild
+++ /dev/null
@@ -1,282 +0,0 @@
-# Copyright 1999-2021 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-PYTHON_COMPAT=( python3_{6,7,8,9} )
-
-inherit eutils flag-o-matic python-single-r1 toolchain-funcs
-
-export CTARGET=${CTARGET:-${CHOST}}
-if [[ ${CTARGET} == ${CHOST} ]] ; then
- if [[ ${CATEGORY} == cross-* ]] ; then
- export CTARGET=${CATEGORY#cross-}
- fi
-fi
-is_cross() { [[ ${CHOST} != ${CTARGET} ]] ; }
-
-case ${PV} in
-9999*)
- # live git tree
- EGIT_REPO_URI="https://sourceware.org/git/binutils-gdb.git"
- inherit git-r3
- SRC_URI=""
- ;;
-*.*.50.2???????)
- # weekly snapshots
- SRC_URI="ftp://sourceware.org/pub/gdb/snapshots/current/gdb-weekly-${PV}.tar.xz"
- ;;
-*)
- # Normal upstream release
- SRC_URI="mirror://gnu/gdb/${P}.tar.xz
- ftp://sourceware.org/pub/gdb/releases/${P}.tar.xz"
- ;;
-esac
-
-PATCH_VER=""
-PATCH_DEV=""
-DESCRIPTION="GNU debugger"
-HOMEPAGE="https://sourceware.org/gdb/"
-SRC_URI="${SRC_URI}
- ${PATCH_DEV:+https://dev.gentoo.org/~${PATCH_DEV}/distfiles/${P}-patches-${PATCH_VER}.tar.xz}
- ${PATCH_VER:+mirror://gentoo/${P}-patches-${PATCH_VER}.tar.xz}
-"
-
-LICENSE="GPL-2 LGPL-2"
-SLOT="0"
-if [[ ${PV} != 9999* ]] ; then
- KEYWORDS="~alpha amd64 arm arm64 ~hppa ~ia64 ~m68k ~mips ppc ppc64 ~riscv s390 sparc x86 ~x64-cygwin ~amd64-linux ~x86-linux ~x64-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
-fi
-IUSE="+client lzma multitarget nls +python +server source-highlight test vanilla xml xxhash"
-REQUIRED_USE="
- python? ( ${PYTHON_REQUIRED_USE} )
- || ( client server )
-"
-
-# ia64 kernel crashes when gdb testsuite is running
-# hppa kernel crashes when gdb testsuite is running
-RESTRICT="
- hppa? ( test )
- ia64? ( test )
-
- !test? ( test )
-"
-
-RDEPEND="
- client? (
- dev-libs/mpfr:0=
- >=sys-libs/ncurses-5.2-r2:0=
- >=sys-libs/readline-7:0=
- lzma? ( app-arch/xz-utils )
- python? ( ${PYTHON_DEPS} )
- xml? ( dev-libs/expat )
- sys-libs/zlib
- )
- source-highlight? (
- dev-util/source-highlight
- )
- xxhash? (
- dev-libs/xxhash
- )
-"
-DEPEND="${RDEPEND}"
-BDEPEND="
- app-arch/xz-utils
- sys-apps/texinfo
- client? (
- virtual/yacc
- test? ( dev-util/dejagnu )
- nls? ( sys-devel/gettext )
- )"
-
-PATCHES=(
- "${FILESDIR}"/${PN}-8.3.1-verbose-build.patch
- "${FILESDIR}"/${PN}-9.1-ia64.patch
- "${FILESDIR}"/${P}-sim-ppc-fno-common.patch
-)
-
-GDB_BUILD_DIR="${WORKDIR}"/${P}-build
-
-pkg_setup() {
- use python && python-single-r1_pkg_setup
-}
-
-src_prepare() {
- default
-
- strip-linguas -u bfd/po opcodes/po
-}
-
-gdb_branding() {
- printf "Gentoo ${PV} "
- if ! use vanilla && [[ -n ${PATCH_VER} ]] ; then
- printf "p${PATCH_VER}"
- else
- printf "vanilla"
- fi
- [[ -n ${EGIT_COMMIT} ]] && printf " ${EGIT_COMMIT}"
-}
-
-src_configure() {
- strip-unsupported-flags
-
- local myconf=(
- # portage's econf() does not detect presence of --d-d-t
- # because it greps only top-level ./configure. But not
- # gnulib's or gdb's configure.
- --disable-dependency-tracking
-
- --with-pkgversion="$(gdb_branding)"
- --with-bugurl='https://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"
- --with-gdb-datadir="\${datadir}/gdb/${CTARGET}"
- )
-
- 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
- # Disable guile for now as it requires guile-2.x #562902
- --without-guile
- # This only disables building in the readline subdir.
- # For gdb itself, it'll use the system version.
- --disable-readline
- --with-system-readline
- # This only disables building in the zlib subdir.
- # For gdb itself, it'll use the system version.
- --without-zlib
- --with-system-zlib
- --with-separate-debug-dir="${EPREFIX}"/usr/lib/debug
- $(use_with xml expat)
- $(use_with lzma)
- $(use_enable nls)
- $(use_enable source-highlight)
- $(use multitarget && echo --enable-targets=all)
- $(use_with python python "${EPYTHON}")
- $(use_with xxhash)
- )
- fi
- if use sparc-solaris || use x86-solaris ; then
- # disable largefile support
- # https://sourceware.org/ml/gdb-patches/2014-12/msg00058.html
- myconf+=( --disable-largefile )
- fi
-
- # source-highlight is detected with pkg-config: bug #716558
- export ac_cv_path_pkg_config_prog_path="$(tc-getPKG_CONFIG)"
-
- mkdir "${GDB_BUILD_DIR}" || die
- pushd "${GDB_BUILD_DIR}" || die
- ECONF_SOURCE=${S}
- econf "${myconf[@]}"
- popd
-}
-
-src_compile() {
- emake -C "${GDB_BUILD_DIR}"
-}
-
-src_test() {
- emake -C "${GDB_BUILD_DIR}" check
-}
-
-src_install() {
- if use server && ! use client; then
- emake -C "${GDB_BUILD_DIR}"/gdb/gdbserver DESTDIR="${D}" install
- else
- emake -C "${GDB_BUILD_DIR}" DESTDIR="${D}" install
- fi
-
- if use client; then
- find "${ED}"/usr -name libiberty.a -delete || die
- fi
-
- # Delete translations that conflict with binutils-libs. #528088
- # Note: Should figure out how to store these in an internal gdb dir.
- if use nls ; then
- find "${ED}" \
- -regextype posix-extended -regex '.*/(bfd|opcodes)[.]g?mo$' \
- -delete || die
- fi
-
- # Don't install docs when building a cross-gdb
- if [[ ${CTARGET} != ${CHOST} ]] ; then
- rm -rf "${ED}"/usr/share/{doc,info,locale} || die
- local f
- for f in "${ED}"/usr/share/man/*/* ; do
- if [[ ${f##*/} != ${CTARGET}-* ]] ; then
- mv "${f}" "${f%/*}/${CTARGET}-${f##*/}" || die
- fi
- done
- return 0
- fi
- # Install it by hand for now:
- # https://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_BUILD_DIR}"/gdb/gdbserver/gdbreplay ]] && dobin "${GDB_BUILD_DIR}"/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*
-
- # gcore is part of ubin on freebsd
- if [[ ${CHOST} == *-freebsd* ]]; then
- rm "${ED}"/usr/bin/gcore || die
- fi
-
- if use python; then
- python_optimize "${ED}"/usr/share/gdb/python/gdb
- fi
-}
-
-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
-}
^ permalink raw reply related [flat|nested] 18+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: sys-devel/gdb/files/, sys-devel/gdb/
@ 2021-04-25 20:57 Sergei Trofimovich
0 siblings, 0 replies; 18+ messages in thread
From: Sergei Trofimovich @ 2021-04-25 20:57 UTC (permalink / raw
To: gentoo-commits
commit: e9d3ab7ee243c49191b72e042128dea375e67305
Author: Sergei Trofimovich <slyfox <AT> gentoo <DOT> org>
AuthorDate: Sun Apr 25 20:57:24 2021 +0000
Commit: Sergei Trofimovich <slyfox <AT> gentoo <DOT> org>
CommitDate: Sun Apr 25 20:57:44 2021 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=e9d3ab7e
sys-devel/gdb: fix sparc-nat build
Package-Manager: Portage-3.0.18, Repoman-3.0.3
Signed-off-by: Sergei Trofimovich <slyfox <AT> gentoo.org>
sys-devel/gdb/files/gdb-10.2-sparc-nat.patch | 47 ++++++++++++++++++++++++++++
sys-devel/gdb/gdb-10.2.ebuild | 1 +
2 files changed, 48 insertions(+)
diff --git a/sys-devel/gdb/files/gdb-10.2-sparc-nat.patch b/sys-devel/gdb/files/gdb-10.2-sparc-nat.patch
new file mode 100644
index 00000000000..5e71efa0d33
--- /dev/null
+++ b/sys-devel/gdb/files/gdb-10.2-sparc-nat.patch
@@ -0,0 +1,47 @@
+From 288e3189fce8f466ca60411c27e8f1c0dac5d582 Mon Sep 17 00:00:00 2001
+From: Sergei Trofimovich <siarheit@google.com>
+Date: Sun, 25 Apr 2021 20:50:38 +0100
+Subject: [PATCH] gdb: fix sparc build failure of linux-nat
+
+On sparc build failed as:
+
+```
+gdb/sparc-linux-nat.c: In member function
+ 'virtual void sparc_linux_nat_target::fetch_registers(regcache*, int)':
+gdb/sparc-linux-nat.c:36:37:
+ error: cannot convert 'regcache*' to 'process_stratum_target*'
+ 36 | { sparc_fetch_inferior_registers (regcache, regnum); }
+ | ^~~~~~~~
+ | |
+ | regcache*
+```
+
+The fix adopts gdb/sparc-nat.h API change in d1e93af64a6
+("gdb: set current thread in sparc_{fetch,collect}_inferior_registers").
+
+gdb/ChangeLog:
+
+ * sparc-linux-nat.c (sparc_linux_nat_target): fix sparc build
+ by passing `process_stratum_target*` parameter.
+---
+ gdb/sparc-linux-nat.c | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+--- a/gdb/sparc-linux-nat.c
++++ b/gdb/sparc-linux-nat.c
+@@ -33,10 +33,10 @@ class sparc_linux_nat_target final : public linux_nat_target
+ public:
+ /* Add our register access methods. */
+ void fetch_registers (struct regcache *regcache, int regnum) override
+- { sparc_fetch_inferior_registers (regcache, regnum); }
++ { sparc_fetch_inferior_registers (this, regcache, regnum); }
+
+ void store_registers (struct regcache *regcache, int regnum) override
+- { sparc_store_inferior_registers (regcache, regnum); }
++ { sparc_store_inferior_registers (this, regcache, regnum); }
+ };
+
+ static sparc_linux_nat_target the_sparc_linux_nat_target;
+--
+2.31.1
+
diff --git a/sys-devel/gdb/gdb-10.2.ebuild b/sys-devel/gdb/gdb-10.2.ebuild
index 520501f0023..f826ccb7083 100644
--- a/sys-devel/gdb/gdb-10.2.ebuild
+++ b/sys-devel/gdb/gdb-10.2.ebuild
@@ -86,6 +86,7 @@ BDEPEND="
PATCHES=(
"${FILESDIR}"/${PN}-8.3.1-verbose-build.patch
"${FILESDIR}"/${PN}-10.1-cet.patch
+ "${FILESDIR}"/${PN}-10.2-sparc-nat.patch
)
pkg_setup() {
^ permalink raw reply related [flat|nested] 18+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: sys-devel/gdb/files/, sys-devel/gdb/
@ 2021-07-30 15:25 Sergei Trofimovich
0 siblings, 0 replies; 18+ messages in thread
From: Sergei Trofimovich @ 2021-07-30 15:25 UTC (permalink / raw
To: gentoo-commits
commit: da814d23d8c572f796fff850235402bf95d1d7aa
Author: Sergei Trofimovich <slyfox <AT> gentoo <DOT> org>
AuthorDate: Fri Jul 30 15:25:23 2021 +0000
Commit: Sergei Trofimovich <slyfox <AT> gentoo <DOT> org>
CommitDate: Fri Jul 30 15:25:49 2021 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=da814d23
sys-devel/gdb: backport DW_LLE_start_end fix (for riscv64)
Reported-by: Marek Szuba
Closes: https://bugs.gentoo.org/805215
Bug: https://sourceware.org/PR27999
Package-Manager: Portage-3.0.20, Repoman-3.0.3
Signed-off-by: Sergei Trofimovich <slyfox <AT> gentoo.org>
sys-devel/gdb/files/gdb-10.2-DW_LLE-riscv64.patch | 41 ++++
sys-devel/gdb/gdb-10.2-r1.ebuild | 261 ++++++++++++++++++++++
2 files changed, 302 insertions(+)
diff --git a/sys-devel/gdb/files/gdb-10.2-DW_LLE-riscv64.patch b/sys-devel/gdb/files/gdb-10.2-DW_LLE-riscv64.patch
new file mode 100644
index 00000000000..0d3e8c5cb94
--- /dev/null
+++ b/sys-devel/gdb/files/gdb-10.2-DW_LLE-riscv64.patch
@@ -0,0 +1,41 @@
+https://sourceware.org/git/?p=binutils-gdb.git;a=patch;h=80d1206d7fea6eb756183e2825abdfd0f00cd976
+https://sourceware.org/PR27999
+
+From 80d1206d7fea6eb756183e2825abdfd0f00cd976 Mon Sep 17 00:00:00 2001
+From: Andreas Schwab <schwab@suse.de>
+Date: Mon, 21 Jun 2021 11:38:23 +0200
+Subject: [PATCH] gdb: Support DW_LLE_start_end
+
+Without that it is impossible to debug on riscv64.
+
+--- a/gdb/dwarf2/loc.c
++++ b/gdb/dwarf2/loc.c
+@@ -255,9 +255,27 @@ decode_debug_loclists_addresses (dwarf2_per_cu_data *per_cu,
+ *new_ptr = loc_ptr;
+ return DEBUG_LOC_OFFSET_PAIR;
+
++ case DW_LLE_start_end:
++ if (loc_ptr + 2 * addr_size > buf_end)
++ return DEBUG_LOC_BUFFER_OVERFLOW;
++
++ if (signed_addr_p)
++ *low = extract_signed_integer (loc_ptr, addr_size, byte_order);
++ else
++ *low = extract_unsigned_integer (loc_ptr, addr_size, byte_order);
++
++ loc_ptr += addr_size;
++ if (signed_addr_p)
++ *high = extract_signed_integer (loc_ptr, addr_size, byte_order);
++ else
++ *high = extract_unsigned_integer (loc_ptr, addr_size, byte_order);
++
++ loc_ptr += addr_size;
++ *new_ptr = loc_ptr;
++ return DEBUG_LOC_START_END;
++
+ /* Following cases are not supported yet. */
+ case DW_LLE_startx_endx:
+- case DW_LLE_start_end:
+ case DW_LLE_default_location:
+ default:
+ return DEBUG_LOC_INVALID_ENTRY;
diff --git a/sys-devel/gdb/gdb-10.2-r1.ebuild b/sys-devel/gdb/gdb-10.2-r1.ebuild
new file mode 100644
index 00000000000..b5d5204d045
--- /dev/null
+++ b/sys-devel/gdb/gdb-10.2-r1.ebuild
@@ -0,0 +1,261 @@
+# Copyright 1999-2021 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+PYTHON_COMPAT=( python3_{7,8,9,10} )
+
+inherit eutils flag-o-matic python-single-r1 toolchain-funcs
+
+export CTARGET=${CTARGET:-${CHOST}}
+if [[ ${CTARGET} == ${CHOST} ]] ; then
+ if [[ ${CATEGORY} == cross-* ]] ; then
+ export CTARGET=${CATEGORY#cross-}
+ fi
+fi
+is_cross() { [[ ${CHOST} != ${CTARGET} ]] ; }
+
+case ${PV} in
+9999*)
+ # live git tree
+ EGIT_REPO_URI="https://sourceware.org/git/binutils-gdb.git"
+ inherit git-r3
+ SRC_URI=""
+ ;;
+*.*.50.2???????)
+ # weekly snapshots
+ SRC_URI="ftp://sourceware.org/pub/gdb/snapshots/current/gdb-weekly-${PV}.tar.xz"
+ ;;
+*)
+ # Normal upstream release
+ SRC_URI="mirror://gnu/gdb/${P}.tar.xz
+ ftp://sourceware.org/pub/gdb/releases/${P}.tar.xz"
+ ;;
+esac
+
+PATCH_VER=""
+PATCH_DEV=""
+DESCRIPTION="GNU debugger"
+HOMEPAGE="https://sourceware.org/gdb/"
+SRC_URI="${SRC_URI}
+ ${PATCH_DEV:+https://dev.gentoo.org/~${PATCH_DEV}/distfiles/${P}-patches-${PATCH_VER}.tar.xz}
+ ${PATCH_VER:+mirror://gentoo/${P}-patches-${PATCH_VER}.tar.xz}
+"
+
+LICENSE="GPL-2 LGPL-2"
+SLOT="0"
+if [[ ${PV} != 9999* ]] ; then
+ KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~x64-cygwin ~amd64-linux ~x86-linux ~x64-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
+fi
+IUSE="cet lzma multitarget nls +python +server source-highlight test vanilla xml xxhash"
+REQUIRED_USE="
+ python? ( ${PYTHON_REQUIRED_USE} )
+"
+
+# ia64 kernel crashes when gdb testsuite is running
+RESTRICT="
+ ia64? ( test )
+
+ !test? ( test )
+"
+
+RDEPEND="
+ dev-libs/mpfr:0=
+ >=sys-libs/ncurses-5.2-r2:0=
+ >=sys-libs/readline-7:0=
+ sys-libs/zlib
+ lzma? ( app-arch/xz-utils )
+ python? ( ${PYTHON_DEPS} )
+ xml? ( dev-libs/expat )
+ source-highlight? (
+ dev-util/source-highlight
+ )
+ xxhash? (
+ dev-libs/xxhash
+ )
+"
+DEPEND="${RDEPEND}"
+BDEPEND="
+ app-arch/xz-utils
+ sys-apps/texinfo
+ virtual/yacc
+ nls? ( sys-devel/gettext )
+ source-highlight? ( virtual/pkgconfig )
+ test? ( dev-util/dejagnu )
+"
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-8.3.1-verbose-build.patch
+ "${FILESDIR}"/${PN}-10.1-cet.patch
+ "${FILESDIR}"/${PN}-10.2-sparc-nat.patch
+ "${FILESDIR}"/${PN}-10.2-DW_LLE-riscv64.patch
+)
+
+pkg_setup() {
+ use python && python-single-r1_pkg_setup
+}
+
+src_prepare() {
+ default
+
+ strip-linguas -u bfd/po opcodes/po
+ export CC_FOR_BUILD=$(tc-getBUILD_CC)
+
+ # avoid using ancient termcap from host on Prefix systems
+ sed -i -e 's/termcap tinfow/tinfow/g' \
+ gdb/configure{.ac,} || die
+}
+
+gdb_branding() {
+ printf "Gentoo ${PV} "
+ if ! use vanilla && [[ -n ${PATCH_VER} ]] ; then
+ printf "p${PATCH_VER}"
+ else
+ printf "vanilla"
+ fi
+ [[ -n ${EGIT_COMMIT} ]] && printf " ${EGIT_COMMIT}"
+}
+
+src_configure() {
+ strip-unsupported-flags
+
+ local myconf=(
+ # portage's econf() does not detect presence of --d-d-t
+ # because it greps only top-level ./configure. But not
+ # gnulib's or gdb's configure.
+ --disable-dependency-tracking
+
+ --with-pkgversion="$(gdb_branding)"
+ --with-bugurl='https://bugs.gentoo.org/'
+ --disable-werror
+ # Disable modules that are in a combined binutils/gdb tree. #490566
+ --disable-{binutils,etc,gas,gold,gprof,ld}
+
+ # avoid automagic dependency on (currently prefix) systems
+ # systems with debuginfod library, bug #754753
+ --without-debuginfod
+
+ # Allow user to opt into CET for host libraries.
+ # Ideally we would like automagic-or-disabled here.
+ # But the check does not quite work on i686: bug #760926.
+ $(use_enable cet)
+ )
+ local sysroot="${EPREFIX}/usr/${CTARGET}"
+ is_cross && myconf+=(
+ --with-sysroot="${sysroot}"
+ --includedir="${sysroot}/usr/include"
+ --with-gdb-datadir="\${datadir}/gdb/${CTARGET}"
+ )
+
+ # 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, which is triggered
+ # whenever no --enable or --disable is given
+ if is_cross || use !server ; then
+ myconf+=( --disable-gdbserver )
+ fi
+
+ myconf+=(
+ --enable-64-bit-bfd
+ --disable-install-libbfd
+ --disable-install-libiberty
+ # Disable guile for now as it requires guile-2.x #562902
+ --without-guile
+ --enable-obsolete
+ # This only disables building in the readline subdir.
+ # For gdb itself, it'll use the system version.
+ --disable-readline
+ --with-system-readline
+ # This only disables building in the zlib subdir.
+ # For gdb itself, it'll use the system version.
+ --without-zlib
+ --with-system-zlib
+ --with-separate-debug-dir="${EPREFIX}"/usr/lib/debug
+ $(use_with xml expat)
+ $(use_with lzma)
+ $(use_enable nls)
+ $(use_enable source-highlight)
+ $(use multitarget && echo --enable-targets=all)
+ $(use_with python python "${EPYTHON}")
+ $(use_with xxhash)
+ )
+ if use sparc-solaris || use x86-solaris ; then
+ # disable largefile support
+ # https://sourceware.org/ml/gdb-patches/2014-12/msg00058.html
+ myconf+=( --disable-largefile )
+ fi
+
+ # source-highlight is detected with pkg-config: bug #716558
+ export ac_cv_path_pkg_config_prog_path="$(tc-getPKG_CONFIG)"
+
+ econf "${myconf[@]}"
+}
+
+src_install() {
+ default
+ find "${ED}"/usr -name libiberty.a -delete || die
+
+ # Delete translations that conflict with binutils-libs. #528088
+ # Note: Should figure out how to store these in an internal gdb dir.
+ if use nls ; then
+ find "${ED}" \
+ -regextype posix-extended -regex '.*/(bfd|opcodes)[.]g?mo$' \
+ -delete || die
+ fi
+
+ # Don't install docs when building a cross-gdb
+ if [[ ${CTARGET} != ${CHOST} ]] ; then
+ rm -rf "${ED}"/usr/share/{doc,info,locale} || die
+ local f
+ for f in "${ED}"/usr/share/man/*/* ; do
+ if [[ ${f##*/} != ${CTARGET}-* ]] ; then
+ mv "${f}" "${f%/*}/${CTARGET}-${f##*/}" || die
+ fi
+ done
+ return 0
+ fi
+ # Install it by hand for now:
+ # https://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 gdbserver/gdbreplay ]] && dobin gdbserver/gdbreplay
+
+ docinto gdb
+ dodoc gdb/CONTRIBUTE gdb/README gdb/MAINTAINERS \
+ gdb/NEWS gdb/ChangeLog gdb/PROBLEMS
+ docinto sim
+ dodoc sim/{ChangeLog,MAINTAINERS,README-HACKING}
+ if use server ; then
+ docinto gdbserver
+ dodoc 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*
+
+ # gcore is part of ubin on freebsd
+ if [[ ${CHOST} == *-freebsd* ]]; then
+ rm "${ED}"/usr/bin/gcore || die
+ fi
+
+ if use python; then
+ python_optimize "${ED}"/usr/share/gdb/python/gdb
+ fi
+}
+
+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
+}
^ permalink raw reply related [flat|nested] 18+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: sys-devel/gdb/files/, sys-devel/gdb/
@ 2021-10-25 12:03 Sam James
0 siblings, 0 replies; 18+ messages in thread
From: Sam James @ 2021-10-25 12:03 UTC (permalink / raw
To: gentoo-commits
commit: 5c048cebb13af66c8e1d6306a5f5491552e3a44f
Author: Sam James <sam <AT> gentoo <DOT> org>
AuthorDate: Mon Oct 25 12:02:58 2021 +0000
Commit: Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Mon Oct 25 12:03:12 2021 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=5c048ceb
sys-devel/gdb: backport glibc-2.34 build failure patch
... although I don't actually recall hitting this.
Closes: https://bugs.gentoo.org/813831
Signed-off-by: Sam James <sam <AT> gentoo.org>
sys-devel/gdb/files/gdb-11.1-glibc-2.34-sim.patch | 110 ++++++++++++++++++++++
sys-devel/gdb/gdb-11.1.ebuild | 1 +
2 files changed, 111 insertions(+)
diff --git a/sys-devel/gdb/files/gdb-11.1-glibc-2.34-sim.patch b/sys-devel/gdb/files/gdb-11.1-glibc-2.34-sim.patch
new file mode 100644
index 00000000000..15ab45f278f
--- /dev/null
+++ b/sys-devel/gdb/files/gdb-11.1-glibc-2.34-sim.patch
@@ -0,0 +1,110 @@
+https://sourceware.org/git/?p=binutils-gdb.git;a=commitdiff;h=39d53d04357606a15efd400147fa7369d71baf2c;hp=46039d3632e32d9a404c1f18cf55f14c894e4627
+https://bugs.gentoo.org/813831
+
+From 39d53d04357606a15efd400147fa7369d71baf2c Mon Sep 17 00:00:00 2001
+From: Mike Frysinger <vapier@gentoo.org>
+Date: Sun, 3 Oct 2021 12:02:53 -0400
+Subject: [PATCH 1/1] sim: filter out SIGSTKSZ [PR sim/28302]
+
+We map target signals to host signals so we can propagate signals
+between the host & simulated worlds. That means we need to know
+the symbolic names & values of all signals that might be sent.
+
+The tools that generate that list use signal.h and include all
+symbols that start with "SIG" so as to automatically include any
+new symbols that the C library might add. Unfortunately, this
+also picks up "SIGSTKSZ" which is not actually a signal itself,
+but a signal related setting -- it's the size of the stack when
+a signal is handled.
+
+By itself this doesn't super matter as we will never see a signal
+with that same value (since the range of valid signals tend to be
+way less than 1024, and the size of the default signal stack will
+never be that small). But with recent glibc changes that make this
+into a dynamic value instead of a compile-time constant, some users
+see build failures when building the sim.
+
+As suggested by Adam Sampson, update our scripts to ignore this
+symbol to simplify everything and avoid the build failure.
+
+Bug: https://sourceware.org/PR28302
+---
+ sim/bfin/linux-targ-map.h | 5 +----
+ sim/common/gennltvals.py | 6 ++++--
+ sim/common/nltvals.def | 1 -
+ 3 files changed, 5 insertions(+), 7 deletions(-)
+
+diff --git a/sim/bfin/linux-targ-map.h b/sim/bfin/linux-targ-map.h
+index e9c8c8f273b..0340ed54764 100644
+--- a/sim/bfin/linux-targ-map.h
++++ b/sim/bfin/linux-targ-map.h
+@@ -30,6 +30,7 @@ echo
+ # XXX: nothing uses this ?
+ echo '#include <signal.h>' | \
+ bfin-uclinux-gcc -E -dD -P - | \
++grep -v SIGSTKSZ | \
+ sed -r -n \
+ -e '1istatic CB_TARGET_DEFS_MAP cb_linux_signal_map[] = {' \
+ -e '$i\ \ { 0, -1, -1 }\n};' \
+@@ -1987,10 +1988,6 @@ static CB_TARGET_DEFS_MAP cb_linux_signal_map[] =
+ #ifdef SIG_SETMASK
+ # define TARGET_LINUX_SIG_SETMASK 2
+ { "SIG_SETMASK", SIG_SETMASK, TARGET_LINUX_SIG_SETMASK },
+-#endif
+-#ifdef SIGSTKSZ
+-# define TARGET_LINUX_SIGSTKSZ 8192
+- { "SIGSTKSZ", SIGSTKSZ, TARGET_LINUX_SIGSTKSZ },
+ #endif
+ { 0, -1, -1 }
+ };
+diff --git a/sim/common/gennltvals.py b/sim/common/gennltvals.py
+index db3ff641d40..955ace34311 100755
+--- a/sim/common/gennltvals.py
++++ b/sim/common/gennltvals.py
+@@ -67,6 +67,7 @@ FILE_HEADER = f"""\
+ def gentvals(output: TextIO, cpp: str, srctype: str, srcdir: Path,
+ headers: Iterable[str],
+ pattern: str,
++ filter: str = r'^$',
+ target: str = None):
+ """Extract constants from the specified files using a regular expression.
+
+@@ -94,12 +95,13 @@ def gentvals(output: TextIO, cpp: str, srctype: str, srcdir: Path,
+ srcfile = ''.join(f'#include <{x}>\n' for x in headers)
+ syms = set()
+ define_pattern = re.compile(r'^#\s*define\s+(' + pattern + ')')
++ filter_pattern = re.compile(filter)
+ for header in headers:
+ with open(srcdir / header, 'r', encoding='utf-8') as fp:
+ data = fp.read()
+ for line in data.splitlines():
+ m = define_pattern.match(line)
+- if m:
++ if m and not filter_pattern.search(line):
+ syms.add(m.group(1))
+ for sym in sorted(syms):
+ srcfile += f'#ifdef {sym}\nDEFVAL {{ "{sym}", {sym} }},\n#endif\n'
+@@ -129,7 +131,7 @@ def gen_common(output: TextIO, newlib: Path, cpp: str):
+ ('errno.h', 'sys/errno.h'), 'E[A-Z0-9]*')
+
+ gentvals(output, cpp, 'signal', newlib / 'newlib/libc/include',
+- ('signal.h', 'sys/signal.h'), r'SIG[A-Z0-9]*')
++ ('signal.h', 'sys/signal.h'), r'SIG[A-Z0-9]*', filter=r'SIGSTKSZ')
+
+ gentvals(output, cpp, 'open', newlib / 'newlib/libc/include',
+ ('fcntl.h', 'sys/fcntl.h', 'sys/_default_fcntl.h'), r'O_[A-Z0-9]*')
+diff --git a/sim/common/nltvals.def b/sim/common/nltvals.def
+index 8ae88397249..8bc6ae59026 100644
+--- a/sim/common/nltvals.def
++++ b/sim/common/nltvals.def
+@@ -116,7 +116,6 @@
+ { "SIGPROF", 27 },
+ { "SIGQUIT", 3 },
+ { "SIGSEGV", 11 },
+- { "SIGSTKSZ", 8192 },
+ { "SIGSTOP", 17 },
+ { "SIGSYS", 12 },
+ { "SIGTERM", 15 },
+--
+2.27.0
+
diff --git a/sys-devel/gdb/gdb-11.1.ebuild b/sys-devel/gdb/gdb-11.1.ebuild
index 8b1a81f909e..bcd3ce89b95 100644
--- a/sys-devel/gdb/gdb-11.1.ebuild
+++ b/sys-devel/gdb/gdb-11.1.ebuild
@@ -88,6 +88,7 @@ BDEPEND="
PATCHES=(
"${FILESDIR}"/${PN}-8.3.1-verbose-build.patch
+ "${FILESDIR}"/${P}-glibc-2.34-sim.patch
)
pkg_setup() {
^ permalink raw reply related [flat|nested] 18+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: sys-devel/gdb/files/, sys-devel/gdb/
@ 2022-04-17 18:20 Sam James
0 siblings, 0 replies; 18+ messages in thread
From: Sam James @ 2022-04-17 18:20 UTC (permalink / raw
To: gentoo-commits
commit: 89c775fccccb9b0aa95203d7e838d406490e48c2
Author: Sam James <sam <AT> gentoo <DOT> org>
AuthorDate: Sun Apr 17 18:20:39 2022 +0000
Commit: Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Sun Apr 17 18:20:39 2022 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=89c775fc
sys-devel/gdb: fix USE=multitarget w/ glibc-2.35
Closes: https://bugs.gentoo.org/833590
Signed-off-by: Sam James <sam <AT> gentoo.org>
.../gdb/files/gdb-11.2-glibc-2.35-fsqrt.patch | 32 ++++++++++++++++++++++
sys-devel/gdb/gdb-11.2.ebuild | 1 +
2 files changed, 33 insertions(+)
diff --git a/sys-devel/gdb/files/gdb-11.2-glibc-2.35-fsqrt.patch b/sys-devel/gdb/files/gdb-11.2-glibc-2.35-fsqrt.patch
new file mode 100644
index 000000000000..5e0121f85029
--- /dev/null
+++ b/sys-devel/gdb/files/gdb-11.2-glibc-2.35-fsqrt.patch
@@ -0,0 +1,32 @@
+https://sourceware.org/git/?p=binutils-gdb.git;a=patch;h=a532eb7277ff64fb073e209d418b0a97f686c0e3
+https://bugs.gentoo.org/833590
+
+From: Sergei Trofimovich <siarheit@google.com>
+Date: Mon, 14 Feb 2022 17:12:41 +0000
+Subject: [PATCH] microblaze: fix fsqrt collicion to build on glibc-2.35
+
+ * microblaze-opcm.h: Renamed 'fsqrt' to 'microblaze_fsqrt'.
+ * microblaze-opc.h: Follow 'fsqrt' rename.
+--- a/opcodes/microblaze-opc.h
++++ b/opcodes/microblaze-opc.h
+@@ -268,7 +268,7 @@ const struct op_code_struct
+ {"fcmp.un", INST_TYPE_RD_R1_R2, INST_NO_OFFSET, NO_DELAY_SLOT, IMMVAL_MASK_NON_SPECIAL, 0x58000200, OPCODE_MASK_H4, fcmp_un, arithmetic_inst },
+ {"flt", INST_TYPE_RD_R1, INST_NO_OFFSET, NO_DELAY_SLOT, IMMVAL_MASK_NON_SPECIAL, 0x58000280, OPCODE_MASK_H4, flt, arithmetic_inst },
+ {"fint", INST_TYPE_RD_R1, INST_NO_OFFSET, NO_DELAY_SLOT, IMMVAL_MASK_NON_SPECIAL, 0x58000300, OPCODE_MASK_H4, fint, arithmetic_inst },
+- {"fsqrt", INST_TYPE_RD_R1, INST_NO_OFFSET, NO_DELAY_SLOT, IMMVAL_MASK_NON_SPECIAL, 0x58000380, OPCODE_MASK_H4, fsqrt, arithmetic_inst },
++ {"fsqrt", INST_TYPE_RD_R1, INST_NO_OFFSET, NO_DELAY_SLOT, IMMVAL_MASK_NON_SPECIAL, 0x58000380, OPCODE_MASK_H4, microblaze_fsqrt, arithmetic_inst },
+ {"tget", INST_TYPE_RD_RFSL, INST_NO_OFFSET, NO_DELAY_SLOT, IMMVAL_MASK_NON_SPECIAL, 0x6C001000, OPCODE_MASK_H32, tget, anyware_inst },
+ {"tcget", INST_TYPE_RD_RFSL, INST_NO_OFFSET, NO_DELAY_SLOT, IMMVAL_MASK_NON_SPECIAL, 0x6C003000, OPCODE_MASK_H32, tcget, anyware_inst },
+ {"tnget", INST_TYPE_RD_RFSL, INST_NO_OFFSET, NO_DELAY_SLOT, IMMVAL_MASK_NON_SPECIAL, 0x6C005000, OPCODE_MASK_H32, tnget, anyware_inst },
+--- a/opcodes/microblaze-opcm.h
++++ b/opcodes/microblaze-opcm.h
+@@ -42,7 +42,8 @@ enum microblaze_instr
+ shr, sw, swr, swx, lbui, lhui, lwi,
+ sbi, shi, swi, msrset, msrclr, tuqula, mbi_fadd, frsub, mbi_fmul, mbi_fdiv,
+ fcmp_lt, fcmp_eq, fcmp_le, fcmp_gt, fcmp_ne, fcmp_ge, fcmp_un, flt,
+- fint, fsqrt,
++ /* 'fsqrt' is a glibc:math.h symbol. */
++ fint, microblaze_fsqrt,
+ tget, tcget, tnget, tncget, tput, tcput, tnput, tncput,
+ eget, ecget, neget, necget, eput, ecput, neput, necput,
+ teget, tecget, tneget, tnecget, teput, tecput, tneput, tnecput,
diff --git a/sys-devel/gdb/gdb-11.2.ebuild b/sys-devel/gdb/gdb-11.2.ebuild
index 869017994712..9b5d95603631 100644
--- a/sys-devel/gdb/gdb-11.2.ebuild
+++ b/sys-devel/gdb/gdb-11.2.ebuild
@@ -92,6 +92,7 @@ BDEPEND="
PATCHES=(
"${FILESDIR}"/${PN}-8.3.1-verbose-build.patch
+ "${FILESDIR}"/${P}-glibc-2.35-fsqrt.patch
)
pkg_setup() {
^ permalink raw reply related [flat|nested] 18+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: sys-devel/gdb/files/, sys-devel/gdb/
@ 2022-05-03 0:01 Sam James
0 siblings, 0 replies; 18+ messages in thread
From: Sam James @ 2022-05-03 0:01 UTC (permalink / raw
To: gentoo-commits
commit: a13326cd6745d107527beec8bc0d4fba09ab1cfb
Author: Sam James <sam <AT> gentoo <DOT> org>
AuthorDate: Tue May 3 00:00:41 2022 +0000
Commit: Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Tue May 3 00:00:52 2022 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=a13326cd
sys-devel/gdb: fix build with sys-libs/readline-8.2*
Closes: https://bugs.gentoo.org/842252
Signed-off-by: Sam James <sam <AT> gentoo.org>
.../gdb/files/gdb-12.1-readline-8.2-build.patch | 29 ++++++++++++++++++++++
sys-devel/gdb/gdb-12.1.ebuild | 1 +
2 files changed, 30 insertions(+)
diff --git a/sys-devel/gdb/files/gdb-12.1-readline-8.2-build.patch b/sys-devel/gdb/files/gdb-12.1-readline-8.2-build.patch
new file mode 100644
index 000000000000..fad27ee4ca85
--- /dev/null
+++ b/sys-devel/gdb/files/gdb-12.1-readline-8.2-build.patch
@@ -0,0 +1,29 @@
+https://sourceware.org/git/?p=binutils-gdb.git;a=patch;h=1add37b567a7dee39d99f37b37802034c3fce9c4
+https://bugs.gentoo.org/842252
+
+From: Andreas Schwab <schwab@linux-m68k.org>
+Date: Sun, 20 Mar 2022 14:01:54 +0100
+Subject: [PATCH] Add support for readline 8.2
+
+In readline 8.2 the type of rl_completer_word_break_characters changed to
+include const.
+--- a/gdb/completer.c
++++ b/gdb/completer.c
+@@ -36,7 +36,7 @@
+ calling a hook instead so we eliminate the CLI dependency. */
+ #include "gdbcmd.h"
+
+-/* Needed for rl_completer_word_break_characters() and for
++/* Needed for rl_completer_word_break_characters and for
+ rl_filename_completion_function. */
+ #include "readline/readline.h"
+
+@@ -2011,7 +2011,7 @@ gdb_completion_word_break_characters_throw ()
+ rl_basic_quote_characters = NULL;
+ }
+
+- return rl_completer_word_break_characters;
++ return (char *) rl_completer_word_break_characters;
+ }
+
+ char *
diff --git a/sys-devel/gdb/gdb-12.1.ebuild b/sys-devel/gdb/gdb-12.1.ebuild
index 8e18279f8752..b7ca1edd1937 100644
--- a/sys-devel/gdb/gdb-12.1.ebuild
+++ b/sys-devel/gdb/gdb-12.1.ebuild
@@ -93,6 +93,7 @@ BDEPEND="
PATCHES=(
"${FILESDIR}"/${PN}-8.3.1-verbose-build.patch
+ "${FILESDIR}"/${P}-readline-8.2-build.patch
)
pkg_setup() {
^ permalink raw reply related [flat|nested] 18+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: sys-devel/gdb/files/, sys-devel/gdb/
@ 2022-08-10 7:43 Sam James
0 siblings, 0 replies; 18+ messages in thread
From: Sam James @ 2022-08-10 7:43 UTC (permalink / raw
To: gentoo-commits
commit: cb3146b4d97606591ae881ec19edebb9164b804c
Author: Sam James <sam <AT> gentoo <DOT> org>
AuthorDate: Wed Aug 10 07:43:14 2022 +0000
Commit: Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Wed Aug 10 07:43:39 2022 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=cb3146b4
sys-devel/gdb: backport core file detach fix
Signed-off-by: Sam James <sam <AT> gentoo.org>
.../gdb/files/gdb-12.1-core-file-detach.patch | 155 +++++++++++
sys-devel/gdb/gdb-12.1-r2.ebuild | 297 +++++++++++++++++++++
2 files changed, 452 insertions(+)
diff --git a/sys-devel/gdb/files/gdb-12.1-core-file-detach.patch b/sys-devel/gdb/files/gdb-12.1-core-file-detach.patch
new file mode 100644
index 000000000000..c0f8a8ee0269
--- /dev/null
+++ b/sys-devel/gdb/files/gdb-12.1-core-file-detach.patch
@@ -0,0 +1,155 @@
+https://sourceware.org/git/?p=binutils-gdb.git;a=commitdiff;h=0fe74cb9ad35add9c6da4df5c9879f254d918a6a
+
+From: Pedro Alves <pedro@palves.net>
+Date: Wed, 22 Jun 2022 18:44:37 +0100
+Subject: [PATCH] Fix core-file -> detach -> crash (corefiles/29275)
+
+After loading a core file, you're supposed to be able to use "detach"
+to unload the core file. That unfortunately regressed starting with
+GDB 11, with these commits:
+
+ 1192f124a308 - gdb: generalize commit_resume, avoid commit-resuming when threads have pending statuses
+ 408f66864a1a - detach in all-stop with threads running
+
+resulting in a GDB crash:
+
+ ...
+ Thread 1 "gdb" received signal SIGSEGV, Segmentation fault.
+ 0x0000555555e842bf in maybe_set_commit_resumed_all_targets () at ../../src/gdb/infrun.c:2899
+ 2899 if (proc_target->commit_resumed_state)
+ (top-gdb) bt
+ #0 0x0000555555e842bf in maybe_set_commit_resumed_all_targets () at ../../src/gdb/infrun.c:2899
+ #1 0x0000555555e848bf in scoped_disable_commit_resumed::reset (this=0x7fffffffd440) at ../../src/gdb/infrun.c:3023
+ #2 0x0000555555e84a0c in scoped_disable_commit_resumed::reset_and_commit (this=0x7fffffffd440) at ../../src/gdb/infrun.c:3049
+ #3 0x0000555555e739cd in detach_command (args=0x0, from_tty=1) at ../../src/gdb/infcmd.c:2791
+ #4 0x0000555555c0ba46 in do_simple_func (args=0x0, from_tty=1, c=0x55555662a600) at ../../src/gdb/cli/cli-decode.c:95
+ #5 0x0000555555c112b0 in cmd_func (cmd=0x55555662a600, args=0x0, from_tty=1) at ../../src/gdb/cli/cli-decode.c:2514
+ #6 0x0000555556173b1f in execute_command (p=0x5555565c5916 "", from_tty=1) at ../../src/gdb/top.c:699
+
+The code that crashes looks like:
+
+ static void
+ maybe_set_commit_resumed_all_targets ()
+ {
+ scoped_restore_current_thread restore_thread;
+
+ for (inferior *inf : all_non_exited_inferiors ())
+ {
+ process_stratum_target *proc_target = inf->process_target ();
+
+ if (proc_target->commit_resumed_state)
+ ^^^^^^^^^^^
+
+With 'proc_target' above being null. all_non_exited_inferiors filters
+out inferiors that have pid==0. We get here at the end of
+detach_command, after core_target::detach has already run, at which
+point the inferior _should_ have pid==0 and no process target. It is
+clear it no longer has a process target, but, it still has a pid!=0
+somehow.
+
+The reason the inferior still has pid!=0, is that core_target::detach
+just unpushes, and relies on core_target::close to actually do the
+getting rid of the core and exiting the inferior. The problem with
+that is that detach_command grabs an extra strong reference to the
+process stratum target, so the unpush_target inside
+core_target::detach doesn't actually result in a call to
+core_target::close.
+
+Fix this my moving the cleaning up the core inferior to a shared
+routine called by both core_target::close and core_target::detach. We
+still need to cleanup the inferior from within core_file::close
+because there are paths to it that want to get rid of the core without
+going through detach. E.g., "core-file" -> "run".
+
+This commit includes a new test added to gdb.base/corefile.exp to
+cover the "core-file core" -> "detach" scenario.
+
+Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=29275
+
+Change-Id: Ic42bdd03182166b19f598428b0dbc2ce6f67c893
+--- a/gdb/corelow.c
++++ b/gdb/corelow.c
+@@ -120,6 +120,9 @@ public:
+
+ private: /* per-core data */
+
++ /* Get rid of the core inferior. */
++ void clear_core ();
++
+ /* The core's section table. Note that these target sections are
+ *not* mapped in the current address spaces' set of target
+ sections --- those should come only from pure executable or
+@@ -290,10 +293,8 @@ core_target::build_file_mappings ()
+ /* An arbitrary identifier for the core inferior. */
+ #define CORELOW_PID 1
+
+-/* Close the core target. */
+-
+ void
+-core_target::close ()
++core_target::clear_core ()
+ {
+ if (core_bfd)
+ {
+@@ -307,6 +308,14 @@ core_target::close ()
+
+ current_program_space->cbfd.reset (nullptr);
+ }
++}
++
++/* Close the core target. */
++
++void
++core_target::close ()
++{
++ clear_core ();
+
+ /* Core targets are heap-allocated (see core_target_open), so here
+ we delete ourselves. */
+@@ -592,9 +601,15 @@ core_target_open (const char *arg, int from_tty)
+ void
+ core_target::detach (inferior *inf, int from_tty)
+ {
+- /* Note that 'this' is dangling after this call. unpush_target
+- closes the target, and our close implementation deletes
+- 'this'. */
++ /* Get rid of the core. Don't rely on core_target::close doing it,
++ because target_detach may be called with core_target's refcount > 1,
++ meaning core_target::close may not be called yet by the
++ unpush_target call below. */
++ clear_core ();
++
++ /* Note that 'this' may be dangling after this call. unpush_target
++ closes the target if the refcount reaches 0, and our close
++ implementation deletes 'this'. */
+ inf->unpush_target (this);
+
+ /* Clear the register cache and the frame cache. */
+--- a/gdb/testsuite/gdb.base/corefile.exp
++++ b/gdb/testsuite/gdb.base/corefile.exp
+@@ -207,6 +207,16 @@ gdb_test "up" "#\[0-9\]* *\[0-9xa-fH'\]* in .* \\(.*\\).*" "up in corefile.exp (
+
+ gdb_test "core" "No core file now."
+
++# Test that we can unload the core with the "detach" command.
++
++proc_with_prefix corefile_detach {} {
++ clean_restart $::binfile
++
++ gdb_test "core-file $::corefile" "Core was generated by .*" "load core"
++ gdb_test "detach" "No core file now\\." "detach core"
++}
++
++corefile_detach
+
+ # Test a run (start) command will clear any loaded core file.
+
+@@ -222,6 +232,8 @@ proc corefile_test_run {} {
+ return
+ }
+
++ clean_restart $::binfile
++
+ gdb_test "core-file $corefile" "Core was generated by .*" "run: load core again"
+ gdb_test "info files" "\r\nLocal core dump file:\r\n.*" "run: sanity check we see the core file"
+
diff --git a/sys-devel/gdb/gdb-12.1-r2.ebuild b/sys-devel/gdb/gdb-12.1-r2.ebuild
new file mode 100644
index 000000000000..9da927c79e77
--- /dev/null
+++ b/sys-devel/gdb/gdb-12.1-r2.ebuild
@@ -0,0 +1,297 @@
+# Copyright 1999-2022 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{8..11} )
+inherit flag-o-matic python-single-r1 strip-linguas toolchain-funcs
+
+export CTARGET=${CTARGET:-${CHOST}}
+
+if [[ ${CTARGET} == ${CHOST} ]] ; then
+ if [[ ${CATEGORY} == cross-* ]] ; then
+ export CTARGET=${CATEGORY#cross-}
+ fi
+fi
+
+is_cross() { [[ ${CHOST} != ${CTARGET} ]] ; }
+
+case ${PV} in
+ 9999*)
+ # live git tree
+ EGIT_REPO_URI="https://sourceware.org/git/binutils-gdb.git"
+ inherit git-r3
+ SRC_URI=""
+ ;;
+ *.*.50.2???????)
+ # weekly snapshots
+ SRC_URI="ftp://sourceware.org/pub/gdb/snapshots/current/gdb-weekly-${PV}.tar.xz"
+ ;;
+ *)
+ # Normal upstream release
+ SRC_URI="mirror://gnu/gdb/${P}.tar.xz
+ ftp://sourceware.org/pub/gdb/releases/${P}.tar.xz"
+ ;;
+esac
+
+PATCH_VER=""
+PATCH_DEV=""
+DESCRIPTION="GNU debugger"
+HOMEPAGE="https://sourceware.org/gdb/"
+SRC_URI="${SRC_URI}
+ ${PATCH_DEV:+https://dev.gentoo.org/~${PATCH_DEV}/distfiles/${P}-patches-${PATCH_VER}.tar.xz}
+ ${PATCH_VER:+mirror://gentoo/${P}-patches-${PATCH_VER}.tar.xz}
+"
+
+LICENSE="GPL-3+ LGPL-2.1+"
+SLOT="0"
+
+if [[ ${PV} != 9999* ]] ; then
+ KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~x64-cygwin ~amd64-linux ~x86-linux ~x64-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
+fi
+
+IUSE="cet guile lzma multitarget nls +python +server source-highlight test vanilla xml xxhash"
+REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} )"
+
+# In fact, gdb's test suite needs some work to get passing.
+# See e.g. https://sourceware.org/gdb/wiki/TestingGDB.
+# As of 11.2, on amd64: "# of unexpected failures 8600"
+# ia64 kernel crashes when gdb testsuite is running
+# in fact, gdb's test suite needs some work to get passing.
+# See e.g. https://sourceware.org/gdb/wiki/TestingGDB.
+# As of 11.2, on amd64: "# of unexpected failures 8600"
+RESTRICT="
+ ia64? ( test )
+ !test? ( test )
+ test
+"
+
+RDEPEND="
+ dev-libs/mpfr:0=
+ dev-libs/gmp:=
+ >=sys-libs/ncurses-5.2-r2:0=
+ >=sys-libs/readline-7:0=
+ sys-libs/zlib
+ elibc_glibc? ( net-libs/libnsl:= )
+ lzma? ( app-arch/xz-utils )
+ python? ( ${PYTHON_DEPS} )
+ guile? ( >=dev-scheme/guile-2.0 )
+ xml? ( dev-libs/expat )
+ source-highlight? (
+ dev-util/source-highlight
+ )
+ xxhash? (
+ dev-libs/xxhash
+ )
+"
+DEPEND="${RDEPEND}"
+BDEPEND="
+ app-arch/xz-utils
+ sys-apps/texinfo
+ virtual/yacc
+ nls? ( sys-devel/gettext )
+ source-highlight? ( virtual/pkgconfig )
+ test? ( dev-util/dejagnu )
+"
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-8.3.1-verbose-build.patch
+ "${FILESDIR}"/${P}-readline-8.2-build.patch
+ "${FILESDIR}"/${P}-core-file-detach.patch
+)
+
+pkg_setup() {
+ use python && python-single-r1_pkg_setup
+}
+
+src_prepare() {
+ default
+
+ strip-linguas -u bfd/po opcodes/po
+
+ # Avoid using ancient termcap from host on Prefix systems
+ sed -i -e 's/termcap tinfow/tinfow/g' \
+ gdb/configure{.ac,} || die
+}
+
+gdb_branding() {
+ printf "Gentoo ${PV} "
+
+ if ! use vanilla && [[ -n ${PATCH_VER} ]] ; then
+ printf "p${PATCH_VER}"
+ else
+ printf "vanilla"
+ fi
+
+ [[ -n ${EGIT_COMMIT} ]] && printf " ${EGIT_COMMIT}"
+}
+
+src_configure() {
+ strip-unsupported-flags
+
+ # See https://www.gnu.org/software/make/manual/html_node/Parallel-Output.html
+ # Avoid really confusing logs from subconfigure spam, makes logs far
+ # more legible.
+ MAKEOPTS="--output-sync=line ${MAKEOPTS}"
+
+ local myconf=(
+ # portage's econf() does not detect presence of --d-d-t
+ # because it greps only top-level ./configure. But not
+ # gnulib's or gdb's configure.
+ --disable-dependency-tracking
+
+ --with-pkgversion="$(gdb_branding)"
+ --with-bugurl='https://bugs.gentoo.org/'
+ --disable-werror
+ # Disable modules that are in a combined binutils/gdb tree. bug #490566
+ --disable-{binutils,etc,gas,gold,gprof,ld}
+
+ # avoid automagic dependency on (currently prefix) systems
+ # systems with debuginfod library, bug #754753
+ --without-debuginfod
+
+ $(use_enable test unit-tests)
+
+ # Allow user to opt into CET for host libraries.
+ # Ideally we would like automagic-or-disabled here.
+ # But the check does not quite work on i686: bug #760926.
+ $(use_enable cet)
+
+ # We need to set both configure options, --with-sysroot and --libdir,
+ # to fix cross build issues that happen when configuring gmp.
+ # We explicitly need --libdir. Having only --with-sysroot without
+ # --libdir would not fix the build issues.
+ # For some reason, it is not enough to set only --with-sysroot,
+ # also not enough to pass --with-gmp-xxx options.
+ --with-sysroot="${ESYSROOT}"
+ --libdir="${ESYSROOT}/usr/$(get_libdir)"
+ )
+
+ local sysroot="${EPREFIX}/usr/${CTARGET}"
+
+ is_cross && myconf+=(
+ --with-sysroot="${sysroot}"
+ --includedir="${sysroot}/usr/include"
+ --with-gdb-datadir="\${datadir}/gdb/${CTARGET}"
+ )
+
+ # 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, which is triggered
+ # whenever no --enable or --disable is given
+ if is_cross || use !server ; then
+ myconf+=( --disable-gdbserver )
+ fi
+
+ myconf+=(
+ --enable-64-bit-bfd
+ --disable-install-libbfd
+ --disable-install-libiberty
+ --enable-obsolete
+ # This only disables building in the readline subdir.
+ # For gdb itself, it'll use the system version.
+ --disable-readline
+ --with-system-readline
+ # This only disables building in the zlib subdir.
+ # For gdb itself, it'll use the system version.
+ --without-zlib
+ --with-system-zlib
+ --with-separate-debug-dir="${EPREFIX}"/usr/lib/debug
+ $(use_with xml expat)
+ $(use_with lzma)
+ $(use_enable nls)
+ $(use_enable source-highlight)
+ $(use multitarget && echo --enable-targets=all)
+ $(use_with python python "${EPYTHON}")
+ $(use_with xxhash)
+ $(use_with guile)
+ )
+
+ if use sparc-solaris || use x86-solaris ; then
+ # Disable largefile support
+ # https://sourceware.org/ml/gdb-patches/2014-12/msg00058.html
+ myconf+=( --disable-largefile )
+ fi
+
+ # source-highlight is detected with pkg-config: bug #716558
+ export ac_cv_path_pkg_config_prog_path="$(tc-getPKG_CONFIG)"
+
+ export CC_FOR_BUILD="$(tc-getBUILD_CC)"
+
+ # ensure proper compiler is detected for Clang builds: bug #831202
+ export GCC_FOR_TARGET="${CC_FOR_TARGET:-$(tc-getCC)}"
+
+ econf "${myconf[@]}"
+}
+
+src_compile() {
+ emake V=1
+}
+
+src_install() {
+ emake V=1 DESTDIR="${D}" install
+
+ find "${ED}"/usr -name libiberty.a -delete || die
+
+ # Delete translations that conflict with binutils-libs. bug #528088
+ # Note: Should figure out how to store these in an internal gdb dir.
+ if use nls ; then
+ find "${ED}" \
+ -regextype posix-extended -regex '.*/(bfd|opcodes)[.]g?mo$' \
+ -delete || die
+ fi
+
+ # Don't install docs when building a cross-gdb
+ if [[ ${CTARGET} != ${CHOST} ]] ; then
+ rm -rf "${ED}"/usr/share/{doc,info,locale} || die
+ local f
+ for f in "${ED}"/usr/share/man/*/* ; do
+ if [[ ${f##*/} != ${CTARGET}-* ]] ; then
+ mv "${f}" "${f%/*}/${CTARGET}-${f##*/}" || die
+ fi
+ done
+ return 0
+ fi
+
+ # Install it by hand for now:
+ # https://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 gdbserver/gdbreplay ]] && dobin gdbserver/gdbreplay
+
+ docinto gdb
+ dodoc gdb/CONTRIBUTE gdb/README gdb/MAINTAINERS \
+ gdb/NEWS gdb/PROBLEMS
+ docinto sim
+ dodoc sim/{MAINTAINERS,README-HACKING}
+
+ if use server ; then
+ docinto gdbserver
+ dodoc gdbserver/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,ctf-spec,standards}.info*
+
+ if use python ; then
+ python_optimize "${ED}"/usr/share/gdb/python/gdb
+ fi
+}
+
+pkg_postinst() {
+ # Portage doesn't 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
+}
^ permalink raw reply related [flat|nested] 18+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: sys-devel/gdb/files/, sys-devel/gdb/
@ 2022-12-03 6:06 Sam James
0 siblings, 0 replies; 18+ messages in thread
From: Sam James @ 2022-12-03 6:06 UTC (permalink / raw
To: gentoo-commits
commit: 6744186d10bceadab7c2a4f5bc5c616d655877f7
Author: Sam James <sam <AT> gentoo <DOT> org>
AuthorDate: Sat Dec 3 05:01:15 2022 +0000
Commit: Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Sat Dec 3 06:06:06 2022 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=6744186d
sys-devel/gdb: fix configure w/ clang 16
Doesn't fix the other build problems yet, but given that implicit. func.
decls can affect all compilers...
Bug: https://bugs.gentoo.org/871543
Signed-off-by: Sam James <sam <AT> gentoo.org>
.../gdb/files/gdb-12.1-configure-clang16.patch | 112 ++++++++
sys-devel/gdb/gdb-12.1-r3.ebuild | 295 +++++++++++++++++++++
2 files changed, 407 insertions(+)
diff --git a/sys-devel/gdb/files/gdb-12.1-configure-clang16.patch b/sys-devel/gdb/files/gdb-12.1-configure-clang16.patch
new file mode 100644
index 000000000000..3b2c15de4895
--- /dev/null
+++ b/sys-devel/gdb/files/gdb-12.1-configure-clang16.patch
@@ -0,0 +1,112 @@
+https://sourceware.org/git/?p=binutils-gdb.git;a=commit;h=0075c53724f78c78aa1692cc8e3bf1433eeb0b9f
+https://gcc.gnu.org/git/?p=gcc.git;a=commitdiff;h=885b6660c17fb91980b5682514ef54668e544b02
+https://bugzilla.redhat.com/show_bug.cgi?id=2143992
+
+From FEDORA_PATCHES Mon Sep 17 00:00:00 2001
+From: Keith Seitz <keiths@redhat.com>
+Date: Tue, 29 Nov 2022 13:43:34 -0800
+Subject: gdb-rhbz2143992-libiberty-fix-c89isms-in-configure.patch
+
+;; libiberty: Fix C89-isms in configure tests
+;; (Florian Weimer, RHBZ 2143992)
+
+ libiberty/
+
+ * acinclude.m4 (ac_cv_func_strncmp_works): Add missing
+ int return type and parameter list to the definition of main.
+ Include <stdlib.h> and <string.h> for prototypes.
+ (ac_cv_c_stack_direction): Add missing
+ int return type and parameter list to the definitions of
+ main, find_stack_direction. Include <stdlib.h> for exit
+ prototype.
+ * configure: Regenerate.
+
+--- a/libiberty/acinclude.m4
++++ b/libiberty/acinclude.m4
+@@ -24,6 +24,8 @@ AC_CACHE_CHECK([for working strncmp], ac_cv_func_strncmp_works,
+ [AC_TRY_RUN([
+ /* Test by Jim Wilson and Kaveh Ghazi.
+ Check whether strncmp reads past the end of its string parameters. */
++#include <stdlib.h>
++#include <string.h>
+ #include <sys/types.h>
+
+ #ifdef HAVE_FCNTL_H
+@@ -51,7 +53,8 @@ AC_CACHE_CHECK([for working strncmp], ac_cv_func_strncmp_works,
+
+ #define MAP_LEN 0x10000
+
+-main ()
++int
++main (void)
+ {
+ #if defined(HAVE_MMAP) || defined(HAVE_MMAP_ANYWHERE)
+ char *p;
+@@ -157,7 +160,10 @@ if test $ac_cv_os_cray = yes; then
+ fi
+
+ AC_CACHE_CHECK(stack direction for C alloca, ac_cv_c_stack_direction,
+-[AC_TRY_RUN([find_stack_direction ()
++[AC_TRY_RUN([#include <stdlib.h>
++
++int
++find_stack_direction (void)
+ {
+ static char *addr = 0;
+ auto char dummy;
+@@ -169,7 +175,9 @@ AC_CACHE_CHECK(stack direction for C alloca, ac_cv_c_stack_direction,
+ else
+ return (&dummy > addr) ? 1 : -1;
+ }
+-main ()
++
++int
++main (void)
+ {
+ exit (find_stack_direction() < 0);
+ }],
+--- a/libiberty/configure
++++ b/libiberty/configure
+@@ -6918,7 +6918,10 @@ else
+ else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+ /* end confdefs.h. */
+-find_stack_direction ()
++#include <stdlib.h>
++
++int
++find_stack_direction (void)
+ {
+ static char *addr = 0;
+ auto char dummy;
+@@ -6930,7 +6933,9 @@ find_stack_direction ()
+ else
+ return (&dummy > addr) ? 1 : -1;
+ }
+-main ()
++
++int
++main (void)
+ {
+ exit (find_stack_direction() < 0);
+ }
+@@ -7755,6 +7760,8 @@ else
+
+ /* Test by Jim Wilson and Kaveh Ghazi.
+ Check whether strncmp reads past the end of its string parameters. */
++#include <stdlib.h>
++#include <string.h>
+ #include <sys/types.h>
+
+ #ifdef HAVE_FCNTL_H
+@@ -7782,7 +7789,8 @@ else
+
+ #define MAP_LEN 0x10000
+
+-main ()
++int
++main (void)
+ {
+ #if defined(HAVE_MMAP) || defined(HAVE_MMAP_ANYWHERE)
+ char *p;
+
diff --git a/sys-devel/gdb/gdb-12.1-r3.ebuild b/sys-devel/gdb/gdb-12.1-r3.ebuild
new file mode 100644
index 000000000000..d488fd670d9c
--- /dev/null
+++ b/sys-devel/gdb/gdb-12.1-r3.ebuild
@@ -0,0 +1,295 @@
+# Copyright 1999-2022 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{8..11} )
+inherit flag-o-matic python-single-r1 strip-linguas toolchain-funcs
+
+export CTARGET=${CTARGET:-${CHOST}}
+
+if [[ ${CTARGET} == ${CHOST} ]] ; then
+ if [[ ${CATEGORY} == cross-* ]] ; then
+ export CTARGET=${CATEGORY#cross-}
+ fi
+fi
+
+is_cross() { [[ ${CHOST} != ${CTARGET} ]] ; }
+
+case ${PV} in
+ 9999*)
+ # live git tree
+ EGIT_REPO_URI="https://sourceware.org/git/binutils-gdb.git"
+ inherit git-r3
+ SRC_URI=""
+ ;;
+ *.*.50.2???????)
+ # weekly snapshots
+ SRC_URI="ftp://sourceware.org/pub/gdb/snapshots/current/gdb-weekly-${PV}.tar.xz"
+ ;;
+ *)
+ # Normal upstream release
+ SRC_URI="mirror://gnu/gdb/${P}.tar.xz
+ ftp://sourceware.org/pub/gdb/releases/${P}.tar.xz"
+ ;;
+esac
+
+DESCRIPTION="GNU debugger"
+HOMEPAGE="https://sourceware.org/gdb/"
+SRC_URI="${SRC_URI}
+ ${PATCH_DEV:+https://dev.gentoo.org/~${PATCH_DEV}/distfiles/${P}-patches-${PATCH_VER}.tar.xz}
+ ${PATCH_VER:+mirror://gentoo/${P}-patches-${PATCH_VER}.tar.xz}"
+
+LICENSE="GPL-3+ LGPL-2.1+"
+SLOT="0"
+
+if [[ ${PV} != 9999* ]] ; then
+ KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~x64-cygwin ~amd64-linux ~x86-linux ~x64-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
+fi
+
+IUSE="cet guile lzma multitarget nls +python +server source-highlight test vanilla xml xxhash"
+REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} )"
+
+# In fact, gdb's test suite needs some work to get passing.
+# See e.g. https://sourceware.org/gdb/wiki/TestingGDB.
+# As of 11.2, on amd64: "# of unexpected failures 8600"
+# ia64 kernel crashes when gdb testsuite is running
+# in fact, gdb's test suite needs some work to get passing.
+# See e.g. https://sourceware.org/gdb/wiki/TestingGDB.
+# As of 11.2, on amd64: "# of unexpected failures 8600"
+RESTRICT="
+ ia64? ( test )
+ !test? ( test )
+ test
+"
+
+RDEPEND="
+ dev-libs/mpfr:0=
+ dev-libs/gmp:=
+ >=sys-libs/ncurses-5.2-r2:0=
+ >=sys-libs/readline-7:0=
+ sys-libs/zlib
+ elibc_glibc? ( net-libs/libnsl:= )
+ lzma? ( app-arch/xz-utils )
+ python? ( ${PYTHON_DEPS} )
+ guile? ( >=dev-scheme/guile-2.0 )
+ xml? ( dev-libs/expat )
+ source-highlight? (
+ dev-util/source-highlight
+ )
+ xxhash? (
+ dev-libs/xxhash
+ )
+"
+DEPEND="${RDEPEND}"
+BDEPEND="
+ app-arch/xz-utils
+ sys-apps/texinfo
+ app-alternatives/yacc
+ nls? ( sys-devel/gettext )
+ source-highlight? ( virtual/pkgconfig )
+ test? ( dev-util/dejagnu )
+"
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-8.3.1-verbose-build.patch
+ "${FILESDIR}"/${P}-readline-8.2-build.patch
+ "${FILESDIR}"/${P}-core-file-detach.patch
+ "${FILESDIR}"/${P}-configure-clang16.patch
+)
+
+pkg_setup() {
+ use python && python-single-r1_pkg_setup
+}
+
+src_prepare() {
+ default
+
+ strip-linguas -u bfd/po opcodes/po
+
+ # Avoid using ancient termcap from host on Prefix systems
+ sed -i -e 's/termcap tinfow/tinfow/g' \
+ gdb/configure{.ac,} || die
+}
+
+gdb_branding() {
+ printf "Gentoo ${PV} "
+
+ if ! use vanilla && [[ -n ${PATCH_VER} ]] ; then
+ printf "p${PATCH_VER}"
+ else
+ printf "vanilla"
+ fi
+
+ [[ -n ${EGIT_COMMIT} ]] && printf " ${EGIT_COMMIT}"
+}
+
+src_configure() {
+ strip-unsupported-flags
+
+ # See https://www.gnu.org/software/make/manual/html_node/Parallel-Output.html
+ # Avoid really confusing logs from subconfigure spam, makes logs far
+ # more legible.
+ MAKEOPTS="--output-sync=line ${MAKEOPTS}"
+
+ local myconf=(
+ # portage's econf() does not detect presence of --d-d-t
+ # because it greps only top-level ./configure. But not
+ # gnulib's or gdb's configure.
+ --disable-dependency-tracking
+
+ --with-pkgversion="$(gdb_branding)"
+ --with-bugurl='https://bugs.gentoo.org/'
+ --disable-werror
+ # Disable modules that are in a combined binutils/gdb tree. bug #490566
+ --disable-{binutils,etc,gas,gold,gprof,ld}
+
+ # avoid automagic dependency on (currently prefix) systems
+ # systems with debuginfod library, bug #754753
+ --without-debuginfod
+
+ $(use_enable test unit-tests)
+
+ # Allow user to opt into CET for host libraries.
+ # Ideally we would like automagic-or-disabled here.
+ # But the check does not quite work on i686: bug #760926.
+ $(use_enable cet)
+
+ # We need to set both configure options, --with-sysroot and --libdir,
+ # to fix cross build issues that happen when configuring gmp.
+ # We explicitly need --libdir. Having only --with-sysroot without
+ # --libdir would not fix the build issues.
+ # For some reason, it is not enough to set only --with-sysroot,
+ # also not enough to pass --with-gmp-xxx options.
+ --with-sysroot="${ESYSROOT}"
+ --libdir="${ESYSROOT}/usr/$(get_libdir)"
+ )
+
+ local sysroot="${EPREFIX}/usr/${CTARGET}"
+
+ is_cross && myconf+=(
+ --with-sysroot="${sysroot}"
+ --includedir="${sysroot}/usr/include"
+ --with-gdb-datadir="\${datadir}/gdb/${CTARGET}"
+ )
+
+ # 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, which is triggered
+ # whenever no --enable or --disable is given
+ if is_cross || use !server ; then
+ myconf+=( --disable-gdbserver )
+ fi
+
+ myconf+=(
+ --enable-64-bit-bfd
+ --disable-install-libbfd
+ --disable-install-libiberty
+ --enable-obsolete
+ # This only disables building in the readline subdir.
+ # For gdb itself, it'll use the system version.
+ --disable-readline
+ --with-system-readline
+ # This only disables building in the zlib subdir.
+ # For gdb itself, it'll use the system version.
+ --without-zlib
+ --with-system-zlib
+ --with-separate-debug-dir="${EPREFIX}"/usr/lib/debug
+ $(use_with xml expat)
+ $(use_with lzma)
+ $(use_enable nls)
+ $(use_enable source-highlight)
+ $(use multitarget && echo --enable-targets=all)
+ $(use_with python python "${EPYTHON}")
+ $(use_with xxhash)
+ $(use_with guile)
+ )
+
+ if use sparc-solaris || use x86-solaris ; then
+ # Disable largefile support
+ # https://sourceware.org/ml/gdb-patches/2014-12/msg00058.html
+ myconf+=( --disable-largefile )
+ fi
+
+ # source-highlight is detected with pkg-config: bug #716558
+ export ac_cv_path_pkg_config_prog_path="$(tc-getPKG_CONFIG)"
+
+ export CC_FOR_BUILD="$(tc-getBUILD_CC)"
+
+ # ensure proper compiler is detected for Clang builds: bug #831202
+ export GCC_FOR_TARGET="${CC_FOR_TARGET:-$(tc-getCC)}"
+
+ econf "${myconf[@]}"
+}
+
+src_compile() {
+ emake V=1
+}
+
+src_install() {
+ emake V=1 DESTDIR="${D}" install
+
+ find "${ED}"/usr -name libiberty.a -delete || die
+
+ # Delete translations that conflict with binutils-libs. bug #528088
+ # Note: Should figure out how to store these in an internal gdb dir.
+ if use nls ; then
+ find "${ED}" \
+ -regextype posix-extended -regex '.*/(bfd|opcodes)[.]g?mo$' \
+ -delete || die
+ fi
+
+ # Don't install docs when building a cross-gdb
+ if [[ ${CTARGET} != ${CHOST} ]] ; then
+ rm -rf "${ED}"/usr/share/{doc,info,locale} || die
+ local f
+ for f in "${ED}"/usr/share/man/*/* ; do
+ if [[ ${f##*/} != ${CTARGET}-* ]] ; then
+ mv "${f}" "${f%/*}/${CTARGET}-${f##*/}" || die
+ fi
+ done
+ return 0
+ fi
+
+ # Install it by hand for now:
+ # https://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 gdbserver/gdbreplay ]] && dobin gdbserver/gdbreplay
+
+ docinto gdb
+ dodoc gdb/CONTRIBUTE gdb/README gdb/MAINTAINERS \
+ gdb/NEWS gdb/PROBLEMS
+ docinto sim
+ dodoc sim/{MAINTAINERS,README-HACKING}
+
+ if use server ; then
+ docinto gdbserver
+ dodoc gdbserver/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,ctf-spec,standards}.info*
+
+ if use python ; then
+ python_optimize "${ED}"/usr/share/gdb/python/gdb
+ fi
+}
+
+pkg_postinst() {
+ # Portage doesn't 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
+}
^ permalink raw reply related [flat|nested] 18+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: sys-devel/gdb/files/, sys-devel/gdb/
@ 2023-03-19 21:52 Sam James
0 siblings, 0 replies; 18+ messages in thread
From: Sam James @ 2023-03-19 21:52 UTC (permalink / raw
To: gentoo-commits
commit: 572e86ac9b0838f4e227460fb482166bce46f961
Author: Sam James <sam <AT> gentoo <DOT> org>
AuthorDate: Sun Mar 19 21:51:59 2023 +0000
Commit: Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Sun Mar 19 21:51:59 2023 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=572e86ac
sys-devel/gdb: fix build w/ clang 16 (-Wenum-constexpr-conversion)
Closes: https://bugs.gentoo.org/894174
Signed-off-by: Sam James <sam <AT> gentoo.org>
...b-13.1-Wenum-constexpr-conversion-clang16.patch | 128 +++++++++++++++++++++
sys-devel/gdb/gdb-13.1-r1.ebuild | 1 +
2 files changed, 129 insertions(+)
diff --git a/sys-devel/gdb/files/gdb-13.1-Wenum-constexpr-conversion-clang16.patch b/sys-devel/gdb/files/gdb-13.1-Wenum-constexpr-conversion-clang16.patch
new file mode 100644
index 000000000000..adc09f83ea68
--- /dev/null
+++ b/sys-devel/gdb/files/gdb-13.1-Wenum-constexpr-conversion-clang16.patch
@@ -0,0 +1,128 @@
+https://bugs.gentoo.org/894174
+https://sourceware.org/git/?p=binutils-gdb.git;a=commit;h=ae61525fcf456ab395d55c45492a106d1275873a
+
+From ae61525fcf456ab395d55c45492a106d1275873a Mon Sep 17 00:00:00 2001
+From: Simon Marchi <simon.marchi@efficios.com>
+Date: Thu, 23 Feb 2023 12:35:40 -0500
+Subject: [PATCH] gdbsupport: ignore -Wenum-constexpr-conversion in
+ enum-flags.h
+
+When building with clang 16, we get:
+
+ CXX gdb.o
+ In file included from /home/smarchi/src/binutils-gdb/gdb/gdb.c:19:
+ In file included from /home/smarchi/src/binutils-gdb/gdb/defs.h:65:
+ /home/smarchi/src/binutils-gdb/gdb/../gdbsupport/enum-flags.h:95:52: error: integer value -1 is outside the valid range of values [0, 15] for this enumeration type [-Wenum-constexpr-conversion]
+ integer_for_size<sizeof (T), static_cast<bool>(T (-1) < T (0))>::type
+ ^
+
+The error message does not make it clear in the context of which enum
+flag this fails (i.e. what is T in this context), but it doesn't really
+matter, we have similar warning/errors for many of them, if we let the
+build go through.
+
+clang is right that the value -1 is invalid for the enum type we cast -1
+to. However, we do need this expression in order to select an integer
+type with the appropriate signedness. That is, with the same signedness
+as the underlying type of the enum.
+
+I first wondered if that was really needed, if we couldn't use
+std::underlying_type for that. It turns out that the comment just above
+says:
+
+ /* Note that std::underlying_type<enum_type> is not what we want here,
+ since that returns unsigned int even when the enum decays to signed
+ int. */
+
+I was surprised, because std::is_signed<std::underlying_type<enum_type>>
+returns the right thing. So I tried replacing all this with
+std::underlying_type, see if that would work. Doing so causes some
+build failures in unittests/enum-flags-selftests.c:
+
+ CXX unittests/enum-flags-selftests.o
+ /home/smarchi/src/binutils-gdb/gdb/unittests/enum-flags-selftests.c:254:1: error: static assertion failed due to requirement 'gdb::is_same<selftests::enum_flags_tests::check_valid_expr254::archetype<enum_flags<s
+ elftests::enum_flags_tests::RE>, selftests::enum_flags_tests::RE, enum_flags<selftests::enum_flags_tests::RE2>, selftests::enum_flags_tests::RE2, enum_flags<selftests::enum_flags_tests::URE>, selftests::enum_fla
+ gs_tests::URE, int>, selftests::enum_flags_tests::check_valid_expr254::archetype<enum_flags<selftests::enum_flags_tests::RE>, selftests::enum_flags_tests::RE, enum_flags<selftests::enum_flags_tests::RE2>, selfte
+ sts::enum_flags_tests::RE2, enum_flags<selftests::enum_flags_tests::URE>, selftests::enum_flags_tests::URE, unsigned int>>::value == true':
+ CHECK_VALID (true, int, true ? EF () : EF2 ())
+ ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ /home/smarchi/src/binutils-gdb/gdb/unittests/enum-flags-selftests.c:91:3: note: expanded from macro 'CHECK_VALID'
+ CHECK_VALID_EXPR_6 (EF, RE, EF2, RE2, UEF, URE, VALID, EXPR_TYPE, EXPR)
+ ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ /home/smarchi/src/binutils-gdb/gdb/../gdbsupport/valid-expr.h:105:3: note: expanded from macro 'CHECK_VALID_EXPR_6'
+ CHECK_VALID_EXPR_INT (ESC_PARENS (typename T1, typename T2, \
+ ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ /home/smarchi/src/binutils-gdb/gdb/../gdbsupport/valid-expr.h:66:3: note: expanded from macro 'CHECK_VALID_EXPR_INT'
+ static_assert (gdb::is_detected_exact<archetype<TYPES, EXPR_TYPE>, \
+ ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+This is a bit hard to decode, but basically enumerations have the
+following funny property that they decay into a signed int, even if
+their implicit underlying type is unsigned. This code:
+
+ enum A {};
+ enum B {};
+
+ int main() {
+ std::cout << std::is_signed<std::underlying_type<A>::type>::value
+ << std::endl;
+ std::cout << std::is_signed<std::underlying_type<B>::type>::value
+ << std::endl;
+ auto result = true ? A() : B();
+ std::cout << std::is_signed<decltype(result)>::value << std::endl;
+ }
+
+produces:
+
+ 0
+ 0
+ 1
+
+So, the "CHECK_VALID" above checks that this property works for enum flags the
+same way as it would if you were using their underlying enum types. And
+somehow, changing integer_for_size to use std::underlying_type breaks that.
+
+Since the current code does what we want, and I don't see any way of doing it
+differently, ignore -Wenum-constexpr-conversion around it.
+
+Change-Id: Ibc82ae7bbdb812102ae3f1dd099fc859dc6f3cc2
+--- a/gdbsupport/enum-flags.h
++++ b/gdbsupport/enum-flags.h
+@@ -91,9 +91,12 @@ template<> struct integer_for_size<8, 1> { typedef int64_t type; };
+ template<typename T>
+ struct enum_underlying_type
+ {
++ DIAGNOSTIC_PUSH
++ DIAGNOSTIC_IGNORE_ENUM_CONSTEXPR_CONVERSION
+ typedef typename
+ integer_for_size<sizeof (T), static_cast<bool>(T (-1) < T (0))>::type
+ type;
++ DIAGNOSTIC_POP
+ };
+
+ namespace enum_flags_detail
+--- a/include/diagnostics.h
++++ b/include/diagnostics.h
+@@ -76,6 +76,11 @@
+ # define DIAGNOSTIC_ERROR_SWITCH \
+ DIAGNOSTIC_ERROR ("-Wswitch")
+
++# if __has_warning ("-Wenum-constexpr-conversion")
++# define DIAGNOSTIC_IGNORE_ENUM_CONSTEXPR_CONVERSION \
++ DIAGNOSTIC_IGNORE ("-Wenum-constexpr-conversion")
++# endif
++
+ #elif defined (__GNUC__) /* GCC */
+
+ # define DIAGNOSTIC_IGNORE_DEPRECATED_DECLARATIONS \
+@@ -155,4 +160,8 @@
+ # define DIAGNOSTIC_ERROR_SWITCH
+ #endif
+
++#ifndef DIAGNOSTIC_IGNORE_ENUM_CONSTEXPR_CONVERSION
++# define DIAGNOSTIC_IGNORE_ENUM_CONSTEXPR_CONVERSION
++#endif
++
+ #endif /* DIAGNOSTICS_H */
+--
+2.31.1
diff --git a/sys-devel/gdb/gdb-13.1-r1.ebuild b/sys-devel/gdb/gdb-13.1-r1.ebuild
index bc86849c6276..60adac18680f 100644
--- a/sys-devel/gdb/gdb-13.1-r1.ebuild
+++ b/sys-devel/gdb/gdb-13.1-r1.ebuild
@@ -101,6 +101,7 @@ BDEPEND="
PATCHES=(
"${FILESDIR}"/${PN}-8.3.1-verbose-build.patch
+ "${FILESDIR}"/${P}-Wenum-constexpr-conversion-clang16.patch
)
pkg_setup() {
^ permalink raw reply related [flat|nested] 18+ messages in thread
end of thread, other threads:[~2023-03-19 21:52 UTC | newest]
Thread overview: 18+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2021-01-09 11:55 [gentoo-commits] repo/gentoo:master commit in: sys-devel/gdb/files/, sys-devel/gdb/ Sergei Trofimovich
-- strict thread matches above, loose matches on Subject: below --
2023-03-19 21:52 Sam James
2022-12-03 6:06 Sam James
2022-08-10 7:43 Sam James
2022-05-03 0:01 Sam James
2022-04-17 18:20 Sam James
2021-10-25 12:03 Sam James
2021-07-30 15:25 Sergei Trofimovich
2021-04-25 20:57 Sergei Trofimovich
2020-08-21 7:21 Sergei Trofimovich
2020-03-29 10:11 Sergei Trofimovich
2020-01-21 8:24 Sergei Trofimovich
2019-09-30 21:52 Sergei Trofimovich
2019-08-09 20:50 Andreas K. Hüttel
2019-03-14 22:49 Sergei Trofimovich
2019-01-28 22:01 Sergei Trofimovich
2018-10-21 16:27 Sergei Trofimovich
2018-06-30 11:06 Sergei Trofimovich
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox