diff options
author | Andres Erbsen | 2018-10-13 15:43:02 -0400 |
---|---|---|
committer | Andres Erbsen | 2018-10-13 15:43:02 -0400 |
commit | e189979dc9857ecb85c607baad61b5084d201642 (patch) | |
tree | 26e40eed3e91811001805c8993ccc1715497e42d | |
download | aur-riscv64-linux-gnu-gdb.tar.gz |
gdb from community plus _target=riscv64-linux-gnu
-rw-r--r-- | .SRCINFO | 24 | ||||
-rw-r--r-- | PKGBUILD | 54 | ||||
-rw-r--r-- | fix_python37.patch | 66 |
3 files changed, 144 insertions, 0 deletions
diff --git a/.SRCINFO b/.SRCINFO new file mode 100644 index 000000000000..7883b205c5db --- /dev/null +++ b/.SRCINFO @@ -0,0 +1,24 @@ +pkgbase = riscv64-linux-gnu-gdb + pkgdesc = The GNU Debugger for for 32bit and 64bit RISC-V bare-metal + pkgver = 8.2 + pkgrel = 2 + url = http://www.gnu.org/software/gdb/ + arch = x86_64 + license = GPL3 + depends = xz + depends = ncurses + depends = expat + depends = python + depends = guile2.0 + depends = gdb-common + depends = mpfr + optdepends = riscv-openocd: for on-chip debugging + options = !emptydirs + source = ftp://ftp.gnu.org/gnu/gdb/gdb-8.2.tar.xz + source = ftp://ftp.gnu.org/gnu/gdb/gdb-8.2.tar.xz.sig + validpgpkeys = F40ADB902B24264AA42E50BF92EDB04BFF325CF3 + sha256sums = c3a441a29c7c89720b734e5a9c6289c0a06be7e0c76ef538f7bbcef389347c39 + sha256sums = SKIP + +pkgname = riscv64-linux-gnu-gdb + diff --git a/PKGBUILD b/PKGBUILD new file mode 100644 index 000000000000..24575f5e041f --- /dev/null +++ b/PKGBUILD @@ -0,0 +1,54 @@ +# Maintainer: Andres Erbsen <andreser mit edu> +# Contributor: Anatol Pomozov <anatol.pomozov@gmail.com> +# Contributor: Martin Schmölzer <mschmoelzer@gmail.com> + +_target=riscv64-linux-gnu +pkgname=$_target-gdb +pkgver=8.2 +pkgrel=2 +pkgdesc='The GNU Debugger for for 32bit and 64bit RISC-V bare-metal' +arch=(x86_64) +url='http://www.gnu.org/software/gdb/' +license=(GPL3) +depends=(xz ncurses expat python guile2.0 gdb-common mpfr) +optdepends=('riscv-openocd: for on-chip debugging') +options=(!emptydirs) +source=(ftp://ftp.gnu.org/gnu/gdb/gdb-$pkgver.tar.xz{,.sig}) +sha256sums=('c3a441a29c7c89720b734e5a9c6289c0a06be7e0c76ef538f7bbcef389347c39' + 'SKIP') +validpgpkeys=('F40ADB902B24264AA42E50BF92EDB04BFF325CF3') # Joel Brobecker <brobecker@adacore.com> + +prepare() { + cd gdb-$pkgver + sed -i "/ac_cpp=/s/\$CPPFLAGS/\$CPPFLAGS -O2/" libiberty/configure +} + +build() { + cd gdb-$pkgver + + ./configure \ + --target=$_target \ + --prefix=/usr \ + --enable-languages=c,c++ \ + --enable-multilib \ + --enable-interwork \ + --with-system-readline \ + --disable-nls \ + --with-python=/usr/bin/python3 \ + --with-guile=guile-2.0 \ + --with-system-gdbinit=/etc/gdb/gdbinit + + make +} + +package() { + cd gdb-$pkgver + + make -C gdb DESTDIR=$pkgdir install + + # Following files conflict with 'gdb'/'gdb-common' packages + rm -r $pkgdir/usr/include/gdb/ + rm -r $pkgdir/usr/share/gdb/ + rm -r $pkgdir/usr/share/info/ + rm -r $pkgdir/usr/share/man/man5/ +} diff --git a/fix_python37.patch b/fix_python37.patch new file mode 100644 index 000000000000..9725a6472b42 --- /dev/null +++ b/fix_python37.patch @@ -0,0 +1,66 @@ +From aeab512851bf6ed623d1c6c4305b6ce05e51a10c Mon Sep 17 00:00:00 2001 +From: Paul Koning <paul_koning@dell.com> +Date: Fri, 8 Jun 2018 13:26:36 -0400 +Subject: [PATCH] Fix build issue with Python 3.7 + +Originally reported in +https://bugzilla.redhat.com/show_bug.cgi?id=1577396 -- gdb build fails +with Python 3.7 due to references to a Python internal function whose +declaration changed in 3.7. + +gdb/ChangeLog +2018-06-08 Paul Koning <paul_koning@dell.com> + + PR gdb/23252 + + * python/python.c (do_start_initialization): + Avoid call to internal Python API. + (init__gdb_module): New function. +--- + gdb/ChangeLog | 8 ++++++++ + gdb/python/python.c | 18 +++++++++++++++--- + 2 files changed, 23 insertions(+), 3 deletions(-) + +diff --git a/gdb/python/python.c b/gdb/python/python.c +index 1805c906284..20fc674f20a 100644 +--- a/gdb/python/python.c ++++ b/gdb/python/python.c +@@ -1667,6 +1667,17 @@ finalize_python (void *ignore) + restore_active_ext_lang (previous_active); + } + ++#ifdef IS_PY3K ++/* This is called via the PyImport_AppendInittab mechanism called ++ during initialization, to make the built-in _gdb module known to ++ Python. */ ++PyMODINIT_FUNC ++init__gdb_module (void) ++{ ++ return PyModule_Create (&python_GdbModuleDef); ++} ++#endif ++ + static bool + do_start_initialization () + { +@@ -1707,6 +1718,9 @@ do_start_initialization () + remain alive for the duration of the program's execution, so + it is not freed after this call. */ + Py_SetProgramName (progname_copy); ++ ++ /* Define _gdb as a built-in module. */ ++ PyImport_AppendInittab ("_gdb", init__gdb_module); + #else + Py_SetProgramName (progname.release ()); + #endif +@@ -1716,9 +1730,7 @@ do_start_initialization () + PyEval_InitThreads (); + + #ifdef IS_PY3K +- gdb_module = PyModule_Create (&python_GdbModuleDef); +- /* Add _gdb module to the list of known built-in modules. */ +- _PyImport_FixupBuiltin (gdb_module, "_gdb"); ++ gdb_module = PyImport_ImportModule ("_gdb"); + #else + gdb_module = Py_InitModule ("_gdb", python_GdbMethods); + #endif |