Message ID | CAAGQtHz7kPXufua4atYTJXr2aQQOht-=kMRvSpLesYYG=i0d6Q@mail.gmail.com |
---|---|
State | New |
Headers | show |
Series | [bug#58971] gnu: Add avr-gdb. | expand |
Context | Check | Description |
---|---|---|
cbaines/comparison | success | View comparision |
cbaines/git-branch | success | View Git branch |
cbaines/applying patch | success | |
cbaines/issue | success | View issue |
Hello Kristian, Kristian Lein-Mathisen <kristianlein@gmail.com> writes: > To be honest, I don't know why the AVR target isn't supported in the standard GDB > build and I haven't been able to figure out how to list all supported targets. I'm new to GDB in > general so > I don't know if I'm the right person to do this writeup. Normally GDB is built to support only one target. It's possible to make it support more targets by passing a list of targets (or the special “all” value) to the ‘--enable-targets’ option of its configure script. Actually, one alternative to your patch would be to add “--enable-targets=all” to the configure list of the regular GDB package. I don't know why distros don't do that. IMHO it's simpler than having different GDB packages for different architectures. The GDB binary would get bigger, but not nearly enough that it would be a problem for today's disks… > However, I'm looking at https://github.com/dwtk/dwtk (which I also intend to package for Guix if it's > of interest), > and the standard gdb gives me a bunch of error messages when I connect to dwtk's remote > gdbserver. I'm guessing this > incompatibility applies to all gdbservers implemented for AVR chips. I haven't found much clarity of > this in the GDB docs. > I presume this is the reason most distros package avr-gdb separately from gdb like we're doing > here. I think you are right. Ubuntu has a gdb-multiarch package which supports more targets, but for some reason it doesn't support AVR and has a separate gdb-avr package. Strange. > I've taken the "synopsis" from Arch Linux, removed unsupported languages from the description, > and just > mentioned that this is for the specific AVR microcontroller architecture. Please let me know if that's > good enough. I think your synopsis and description are good, thank you. I hope you don't mind if I have one more suggestion: add comments to the list of configure flags explaining why they're necessary — except for the “--target=avr” one, which is self-explanatory :-). Also, out of curiosity: is there a reason why you restrict the enabled languages to C and C++? A quick search suggests that it's possible to use Rust as well, maybe more languages?
Kristian Lein-Mathisen <kristianlein@gmail.com> writes: > Hi Chris and thanks for looking into this, > > Your proposal is very reasonable. I wasn't sure what to write but I've > given it a try in this replacement commit. The patch you attached looks good to me, I've gone ahead and pushed to master as d60c9fbf95409a72013d8368e6f50c1ac055df5a. Thanks! Chris
From 5a78944fbb6f5768286ccbeaa1168397096a7063 Mon Sep 17 00:00:00 2001 From: Kristian Lein-Mathisen <kristianlein@gmail.com> Date: Wed, 2 Nov 2022 20:36:51 +0100 Subject: [PATCH] gnu: Add avr-gdb. * gnu/packages/gdb.scm (avr-gdb): New variable. --- gnu/packages/gdb.scm | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/gnu/packages/gdb.scm b/gnu/packages/gdb.scm index 7d8416c7c5..fd0bc80e44 100644 --- a/gnu/packages/gdb.scm +++ b/gnu/packages/gdb.scm @@ -171,3 +171,24 @@ (define-public gdb-minimal (name "gdb-minimal") (inputs (fold alist-delete (package-inputs gdb) '("libxml2" "ncurses" "python-wrapper" "source-highlight"))))) + +(define-public avr-gdb + (package/inherit gdb-12 + (name "avr-gdb") + (arguments + `(#:configure-flags + (list "--target=avr" + "--disable-nls" + "--enable-languages=c,c++" + "--with-system-readline" + "--enable-source-highlight") + ,@(package-arguments gdb-12))) + (synopsis "The GNU Debugger for AVR") + (description + "GDB is the GNU debugger. With it, you can monitor what a program is +doing while it runs or what it was doing just before a crash. It allows you +to specify the runtime conditions, to define breakpoints, and to change how +the program is running to try to fix bugs. + +This variant of GDB can be used to debug programs written for the AVR +microcontroller architecture."))) base-commit: 807bfe55dc382b88ab0fdade6886dfa2b15487ee -- 2.38.0