# Maintainer: Alexey Pavlov # Contributor: Ray Donnelly _realname=gdb pkgbase=mingw-w64-${_realname} pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}" "${MINGW_PACKAGE_PREFIX}-${_realname}-multiarch") pkgver=14.2 pkgrel=1 pkgdesc="GNU Debugger (mingw-w64)" arch=('any') mingw_arch=('mingw32' 'mingw64' 'ucrt64' 'clang64' 'clang32') url="https://www.gnu.org/software/gdb/" msys2_references=( "cpe: cpe:/a:gnu:gdb" ) license=('spdx:GPL-3.0-or-later') groups=($( [[ ${MINGW_PACKAGE_PREFIX} == *-clang-* ]] || echo "${MINGW_PACKAGE_PREFIX}-toolchain" )) depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs" "${MINGW_PACKAGE_PREFIX}-mpc" "${MINGW_PACKAGE_PREFIX}-mpfr" "${MINGW_PACKAGE_PREFIX}-ncurses" "${MINGW_PACKAGE_PREFIX}-python" "${MINGW_PACKAGE_PREFIX}-readline" "${MINGW_PACKAGE_PREFIX}-xxhash" "${MINGW_PACKAGE_PREFIX}-zlib" "${MINGW_PACKAGE_PREFIX}-zstd") optdepends=("${MINGW_PACKAGE_PREFIX}-python-pygments: for syntax highlighting") checkdepends=('dejagnu' 'bc') # gmp, mpfr and xz (lzma) are linked statically makedepends=("${MINGW_PACKAGE_PREFIX}-cc" "${MINGW_PACKAGE_PREFIX}-autotools" "${MINGW_PACKAGE_PREFIX}-iconv" "${MINGW_PACKAGE_PREFIX}-xz") source=(https://ftp.gnu.org/gnu/${_realname}/${_realname}-${pkgver}.tar.xz{,.sig} '0001-Workaround-performance-regression-in-info-func-var-t.patch' '0002-Fix-using-gnu-print.patch' '0003-configure-Disable-static-linking-with-standard-libs.patch' '0004-Python-Configure-path-fixes.patch' '0005-W32-Always-check-USERPROFILE-if-HOME-is-not-set.patch') validpgpkeys=('F40ADB902B24264AA42E50BF92EDB04BFF325CF3') sha256sums=('2d4dd8061d8ded12b6c63f55e45344881e8226105f4d2a9b234040efa5ce7772' 'SKIP' '428cda7dcc107c236225ae89704390b0f1e70c276b5ca6b1741988f384b21d62' 'cf12bce0b988765ecac26a6895238c48ef9676d6fc01f986f75dcbc8bd8d3f07' '0eb291cd81f7392610d16a83f436a30d3384a99661c6b6ffd1bfb243d5aee6dd' '7ef9c6e238a4e232bc689e15e48ee2d8045542c47f0b156d9fc92a7c14e6757e' '39d1cb2a1be8d60c16404ad96882f10cd3ebd942d8b7af62a7416a230a50de93') apply_patch_with_msg() { for _patch in "$@" do msg2 "Applying ${_patch}" patch -Nbp1 -i "${srcdir}/${_patch}" done } prepare() { cd ${srcdir}/${_realname}-${pkgver} # https://sourceware.org/bugzilla/show_bug.cgi?id=15412 apply_patch_with_msg \ 0001-Workaround-performance-regression-in-info-func-var-t.patch apply_patch_with_msg \ 0002-Fix-using-gnu-print.patch # https://sourceware.org/bugzilla/show_bug.cgi?id=21078 apply_patch_with_msg \ 0003-configure-Disable-static-linking-with-standard-libs.patch apply_patch_with_msg \ 0004-Python-Configure-path-fixes.patch \ 0005-W32-Always-check-USERPROFILE-if-HOME-is-not-set.patch # hack! - libiberty configure tests for header files using "$CPP $CPPFLAGS" sed -i "/ac_cpp=/s/\$CPPFLAGS/\$CPPFLAGS -O2/" libiberty/configure } do_build() { builddir=${srcdir}/build-${MSYSTEM}$1 mkdir ${builddir} && cd ${builddir} if [ "${CARCH}" != "x86_64" ]; then LDFLAGS+=" -Wl,--large-address-aware" fi if check_option "debug" "y"; then CFLAGS+=" -O0" CXXFLAGS+=" -O0" fi CPPFLAGS+=" -I${MINGW_PREFIX}/include/ncurses" CFLAGS+=" -I${MINGW_PREFIX}/include/ncurses" CXXFLAGS+=" -I${MINGW_PREFIX}/include/ncurses" ../${_realname}-${pkgver}/configure \ --build=${MINGW_CHOST} \ --host=${MINGW_CHOST} \ --target=${MINGW_CHOST} \ --prefix=${MINGW_PREFIX} \ $2 \ --enable-64-bit-bfd \ --disable-werror \ --disable-win32-registry \ --disable-rpath \ --disable-sim \ --with-curses \ --with-system-gdbinit=${MINGW_PREFIX}/etc/gdbinit \ --with-system-readline \ --with-system-zlib \ --with-python=${MINGW_PREFIX}/bin/python \ --with-libiconv-prefix=${MINGW_PREFIX} \ --with-{expat,gmp,mpfr,lzma,zstd}=${MINGW_PREFIX} \ --enable-tui \ --enable-source-highlight=no make } build() { do_build do_build -multiarch --enable-targets=all } package_gdb() { cd ${srcdir}/build-${MSYSTEM} make DESTDIR=${pkgdir} install # Remove unwanted files rm -rf ${pkgdir}${MINGW_PREFIX}/share/{man,info} rm -f ${pkgdir}${MINGW_PREFIX}/include/*.h rm -f ${pkgdir}${MINGW_PREFIX}/lib/*.a } package_gdb-multiarch() { pkgdesc="GNU Debugger (supports all targets)" depends=("${MINGW_PACKAGE_PREFIX}-${_realname}=${pkgver}") provides=("${MINGW_PACKAGE_PREFIX}-arm-none-eabi-gdb=${pkgver}" "${MINGW_PACKAGE_PREFIX}-avr-gdb=${pkgver}") conflicts=("${MINGW_PACKAGE_PREFIX}-arm-none-eabi-gdb" "${MINGW_PACKAGE_PREFIX}-avr-gdb") replaces=("${MINGW_PACKAGE_PREFIX}-arm-none-eabi-gdb" "${MINGW_PACKAGE_PREFIX}-avr-gdb") builddir=${srcdir}/build-${MSYSTEM}-multiarch cd ${builddir} make DESTDIR=${builddir}/inst install-gdb install-gdbserver destdir=${pkgdir}${MINGW_PREFIX}/bin bindir=${builddir}/inst${MINGW_PREFIX}/bin mkdir -p $destdir cp -p ${bindir}/gdb.exe ${destdir}/gdb-multiarch.exe cp -p ${bindir}/gdbserver.exe ${destdir}/gdbserver-multiarch.exe } # template start; name=mingw-w64-splitpkg-wrappers; version=1.0; # vim: set ft=bash : # generate wrappers for _name in "${pkgname[@]}"; do _short="package_${_name#${MINGW_PACKAGE_PREFIX}-}" _func="$(declare -f "${_short}")" eval "${_func/#${_short}/package_${_name}}" done # template end;