aports/main/gdb/APKBUILD
2024-10-01 20:01:37 +00:00

122 lines
3.5 KiB
Text

# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=gdb
pkgver=15.2
pkgrel=0
pkgdesc="The GNU Debugger"
url="https://www.gnu.org/software/gdb/"
arch="all"
license="GPL-3.0-or-later AND LGPL-3.0-or-later"
makedepends="
autoconf
automake
expat-dev
gmp-dev
libtool
linux-headers
mpfr-dev
ncurses-dev
perl
python3-dev
readline-dev
texinfo
zlib-dev
zstd-dev
"
options="!check"
subpackages="$pkgname-dbg $pkgname-doc $pkgname-multiarch"
source="https://ftp.gnu.org/gnu/gdb/gdb-$pkgver.tar.xz
gcore-sh.patch
s390x-use-elf-gdb_fpregset_t.patch
ppc-musl.patch
ppc-ptregs.patch
musl-signals.patch
"
prepare() {
default_prepare
mkdir -p "$builddir"/vanilla "$builddir"/multiarch
}
build() {
local _config="
--build=$CBUILD
--host=$CHOST
--prefix=/usr
--target=$CTARGET
--with-build-sysroot=$CBUILDROOT
--with-python=/usr/bin/python3
--disable-nls
--disable-werror
--mandir=/usr/share/man
--infodir=/usr/share/info"
export CFLAGS="$CFLAGS -O2 -g1"
export CXXFLAGS="$CXXFLAGS -O2 -g1"
# use system readline if not cross compiling
[ "$CBUILD" = "$CHOST" ] && _config="$_config --with-system-readline"
# use system zlib if not cross compiling
[ "$CBUILD" = "$CHOST" ] && _config="$_config --with-system-zlib"
# avoid generation of mangled and non-mangled objects on ppc64
[ "$CARCH" = ppc64le ] && _config="$_config --enable-build-with-cxx=no"
cd "$builddir"/vanilla
../configure $_config
make
# XXX: As of GDB 12.1, --enable-targets=all is broken on 32-bit targets.
#
# See: https://sourceware.org/pipermail/gdb-patches/2022-May/189227.html
cd "$builddir"/multiarch
case "$CARCH" in
arm*|x86) ../configure $_config \
--disable-sim \
--enable-64-bit-bfd \
--enable-targets=all ;;
*) ../configure $_config --enable-targets=all ;;
esac
make
}
package() {
# backtracing/debugging pretty much anything is going to need libc debug symbols
# not everything, but the common case needs this, and it's a small dep in comparison
depends="musl-dbg"
cd "$builddir"/vanilla
make DESTDIR="$pkgdir" install
# resolve conflict with binutils-doc
rm -f "$pkgdir"/usr/share/info/bfd.info
rm -f "$pkgdir"/usr/share/info/ctf-spec.info
rm -f "$pkgdir"/usr/share/info/dir
# those are provided by binutils
rm -rf "$pkgdir"/usr/include
rm -rf "$pkgdir"/usr/lib
# resolve conflict with binutils-doc
rm "$pkgdir"/usr/share/info/sframe-spec.info
# install gdb-multiarch here for default dbg() split function to work
install -Dm755 "$builddir"/multiarch/gdb/gdb \
"$pkgdir"/usr/bin/gdb-multiarch
}
multiarch() {
depends="$pkgname"
pkgdesc="The GNU Debugger for all supported architectures"
amove usr/bin/gdb-multiarch
}
sha512sums="
624007deceb5b15ba89c0725883d1a699fa46714ef30887f3d0165e17c5d65d634671740a135aa69e437d916218abb08cfa2a38ed309ff19d48f51da56b2a8ba gdb-15.2.tar.xz
68f893e72742eac7e41fd7c3e688b8cccc79327f0422b03319302a1a9d24513e77d698bc6ff16f67236b521df321b9ff0ca2ee342c11f12933c492c5c530ec9b gcore-sh.patch
70e7d04e4d72461436da503b5bfa370c5779e03245c521f30e9779d5ff37dbb2d708b05f2afb27f43ad9defc44df4bd979d72f777e744851fdbf156295e1cc9f s390x-use-elf-gdb_fpregset_t.patch
04911f87904b62dd7662435f9182b20485afb29ddb3d6398a9d31fef13495f7b70639c77fdae3a40e2775e270d7cd40d0cfd7ddf832372b506808d33c8301e01 ppc-musl.patch
ab554899bbb2aa98261fd1b6beb4a71ed7c713a714bddd3fa7ec875258e39bd5474dc96a11accb4dadd316f3834f215e8395d3b373bf3affd122dc5b4a8fe710 ppc-ptregs.patch
58aacc7cdc119eab729a3c5a5521f6a0db41c6a5bc2d09d6e32cbdd071d85dd1a31b5e6559616f8da1237c5b79ad9e04aab485211e957b4d1ca752c0c5ad660b musl-signals.patch
"