summarylogtreecommitdiffstats
diff options
context:
space:
mode:
authorAndres Erbsen2018-10-13 15:43:02 -0400
committerAndres Erbsen2018-10-13 15:43:02 -0400
commite189979dc9857ecb85c607baad61b5084d201642 (patch)
tree26e40eed3e91811001805c8993ccc1715497e42d
downloadaur-riscv64-linux-gnu-gdb.tar.gz
gdb from community plus _target=riscv64-linux-gnu
-rw-r--r--.SRCINFO24
-rw-r--r--PKGBUILD54
-rw-r--r--fix_python37.patch66
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