# Maintainer: Alexey Pavlov pkgname=gdb pkgname=("gdb" "gdb-multiarch") pkgver=14.2 pkgrel=2 _gcc_ver=13.2.0 pkgdesc="GNU Debugger (MSYS2 version)" arch=('i686' 'x86_64') license=('spdx:GPL-3.0-or-later') url="https://www.gnu.org/software/gdb/" msys2_references=( "cpe: cpe:/a:gnu:gdb" ) depends=('gcc-libs' 'zlib' 'python' 'libexpat' 'libreadline' 'mpc' 'mpfr' 'xxhash' 'libguile' 'zstd') #checkdepends=('dejagnu' 'bc') makedepends=(autotools gcc guile libexpat-devel libguile-devel liblzma-devel libreadline-devel libzstd-devel mpfr-devel ncurses-devel python-devel zlib-devel) options=('staticlibs' '!distcc' '!ccache') source=("https://ftp.gnu.org/gnu/gdb/gdb-${pkgver}.tar.xz"{,.sig} 'gdbinit' 0001-Teach-gdb-how-to-unwind-cygwin-_sigbe-and-sigdelayed.patch 0002-7.8-windows-nat-cygwin.patch 0003-Better-handling-for-realpath-failures-in-windows_mak.patch 0004-7.8-symtab-cygwin.patch 0005-msysize.patch 0006-autoreconf.patch) validpgpkeys=('F40ADB902B24264AA42E50BF92EDB04BFF325CF3') sha256sums=('2d4dd8061d8ded12b6c63f55e45344881e8226105f4d2a9b234040efa5ce7772' 'SKIP' '2bbe7eddb1828c394d0ff99777058df79b1a596172603bb0e30d983fc1ea8785' 'c717af701b421e28dced2f424c1ba91bad37a25d8cd63561d02d3f48f003973a' '5ef60706d31ee8d8839f7e38a8a3c22c3a84ef541ec884dfe42325a1433b0b5b' '797860ab5dbac68f127589251906a63ede129fee678a5ce96e28decdc49004d3' 'a05c009801dc5c05fba94f40df31406b8ee6213ee45d54d54ef84218fb6e42e3' '87a9ffcdc3d0c549efb390c7e59e86e9059ae29946fadcb269ee8b7578293483' '9f349e441e0d2e10d78327c9a172ee99dfe69eaeb7024a0f370583b3043a47f2') prepare() { cd ${srcdir}/${pkgname}-${pkgver} patch -p1 -i ${srcdir}/0005-msysize.patch patch -p1 -i ${srcdir}/0006-autoreconf.patch patch -p1 -i ${srcdir}/0001-Teach-gdb-how-to-unwind-cygwin-_sigbe-and-sigdelayed.patch patch -p1 -i ${srcdir}/0002-7.8-windows-nat-cygwin.patch patch -p1 -i ${srcdir}/0003-Better-handling-for-realpath-failures-in-windows_mak.patch patch -p1 -i ${srcdir}/0004-7.8-symtab-cygwin.patch } do_build() { builddir=${srcdir}/build-${CHOST}$1 [[ -d "$builddir" ]] && rm -rf "$builddir" mkdir -p "$builddir" && pushd "$builddir" ../${pkgname}-${pkgver}/configure \ --build=${CHOST} \ --host=${CHOST} \ --prefix=/usr \ $2 \ --enable-64-bit-bfd \ --disable-werror \ --disable-sim \ --disable-staticlib \ --with-system-gdbinit=/etc/gdbinit \ --with-python=/usr/bin/python3 \ --without-tcl \ --without-tk \ --with-guile \ --with-{expat,gmp,mpfr,lzma,zstd}=/usr \ --without-libexpat-prefix \ --with-system-readline \ --with-libiconv-prefix=/usr \ --with-system-zlib \ --enable-tui make } build() { do_build do_build -multiarch --enable-targets=all } check() { cd ${srcdir}/build-${CHOST} make check || true } package_gdb() { cd ${srcdir}/build-${CHOST} make DESTDIR=${pkgdir} install # install "custom" system gdbinit install -D -m644 ${srcdir}/gdbinit ${pkgdir}/etc/gdbinit sed -i 's|%GCC_NAME%|gcc-'${_gcc_ver}'|g' ${pkgdir}/etc/gdbinit # these are shipped by binutils rm -fr ${pkgdir}/usr/{include,lib}/ ${pkgdir}/usr/share/locale/ rm -f ${pkgdir}/usr/share/info/{bfd,configure,standards,ctf-spec,sframe-spec}.info python3 -m compileall -o 0 -o 1 -s "${pkgdir}" "${pkgdir}/usr/share/gdb/python" # install license files install -Dm644 "${srcdir}/${pkgname}-${pkgver}/README" "${pkgdir}/usr/share/licenses/${pkgname}/README" install -Dm644 "${srcdir}/${pkgname}-${pkgver}/COPYING" "${pkgdir}/usr/share/licenses/${pkgname}/COPYING" install -Dm644 "${srcdir}/${pkgname}-${pkgver}/COPYING.LIB" "${pkgdir}/usr/share/licenses/${pkgname}/COPYING.LIB" install -Dm644 "${srcdir}/${pkgname}-${pkgver}/COPYING" "${pkgdir}/usr/share/licenses/${pkgname}/COPYING3" install -Dm644 "${srcdir}/${pkgname}-${pkgver}/COPYING.LIB" "${pkgdir}/usr/share/licenses/${pkgname}/COPYING3.LIB" } package_gdb-multiarch() { pkgdesc="GNU Debugger (supports all targets)" depends=("gdb=${pkgver}") builddir=${srcdir}/build-${CHOST}-multiarch cd ${builddir} make DESTDIR=${builddir}/inst install-gdb install-gdbserver destdir=${pkgdir}/usr/bin bindir=${builddir}/inst/usr/bin mkdir -p $destdir cp -p ${bindir}/gdb.exe ${destdir}/gdb-multiarch.exe cp -p ${bindir}/gdbserver.exe ${destdir}/gdbserver-multiarch.exe }