diff options
| author | Yelninei <yelninei@tutamail.com> | 2026-01-15 13:13:25 +0000 |
|---|---|---|
| committer | Ludovic Courtès <ludo@gnu.org> | 2026-01-26 10:28:45 +0100 |
| commit | 1d9cf8758ecf49343457b98c1bbb084d214a602b (patch) | |
| tree | 45379886700c44d34331161f246404683825addd /gnu | |
| parent | d7e71dad6d3c64cf2bcda00e3425c614aa7702ba (diff) | |
gnu: gdb: Enable scripting when cross compiling.
Python detection failed because gdb was not able to find the flags for linking
with python.
Follow https://www.sourceware.org/gdb/wiki/CrossCompilingWithPythonSupport but
dispatch to pkg-config.
Guile detection was failing because gdb only tried the unprefixed pkg-config.
Also a native guile is needed to compile the scheme files.
Fixes guix/guix#5634.
* gnu/packages/gdb.scm (gdb-python-config): New procedure.
(gdb-14)[configure-flags]: Add --with-python
[#:phases]: Add a phase for guile detection.
[native-inputs]: Add guile-3.0.
Change-Id: I4a151ac292eba1472725a1535b72b9168bc10742
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
Merges: #5645
Diffstat (limited to 'gnu')
| -rw-r--r-- | gnu/packages/gdb.scm | 41 |
1 files changed, 38 insertions, 3 deletions
diff --git a/gnu/packages/gdb.scm b/gnu/packages/gdb.scm index d6757adee00..7a111dbd0ba 100644 --- a/gnu/packages/gdb.scm +++ b/gnu/packages/gdb.scm @@ -48,6 +48,26 @@ #:use-module ((guix build utils) #:select (alist-replace)) #:use-module (srfi srfi-1)) + +(define (gdb-python-config pkg-config) + "Return a script to satisfy gdb to enable python support." + ;; based on https://www.sourceware.org/gdb/wiki/CrossCompilingWithPythonSupport + (program-file "gdb-python-config" + #~(begin + (use-modules (ice-9 match)) + (let ((pkg-config #$pkg-config)) + (match (command-line) + ((_ _ "--includes") + (execlp pkg-config pkg-config + "python3-embed" "--cflags")) + ((_ _ "--ldflags") + (execlp pkg-config pkg-config + "python3-embed" "--libs")) + ((_ _ "--exec-prefix") + (execlp pkg-config pkg-config + "python3-embed" "--variable=exec_prefix")) + (_ (exit 1))))))) + (define-public gdb-14 (package (name "gdb") @@ -67,9 +87,16 @@ #:out-of-source? #t #:modules `((srfi srfi-1) ,@%default-gnu-modules) - #:configure-flags (if (target-hurd64?) - #~'("--enable-targets=i586-pc-gnu,x86_64-pc-gnu") - #~'()) + #:configure-flags + #~(list + #$@(if (and (this-package-input "python-wrapper") + (%current-target-system)) + #~((string-append "--with-python=" + #+(gdb-python-config (pkg-config-for-target)))) + #~()) + #$@(if (target-hurd64?) + #~("--enable-targets=i586-pc-gnu,x86_64-pc-gnu") + #~())) #:phases #~(modify-phases %standard-phases ;; The following phase only applies to gdb@12, which ;; inherits from this package. Remove it when removing @@ -81,6 +108,13 @@ (("aarch64_get_CPSR_bits \\(sim_cpu \\*, uint32_t\\)") "aarch64_get_CPSR_bits (sim_cpu *, FlagMask)"))))) #~()) + #$@(if (%current-target-system) + #~((add-after 'unpack 'enable-guile + (lambda* (#:key native-inputs #:allow-other-keys) + (setenv "ac_cv_guild_program_name" (which "guild")) + (setenv "ac_cv_path_pkg_config_prog_path" + (which #$(pkg-config-for-target)))))) + #~()) (add-after 'unpack 'patch-paths (lambda* (#:key inputs #:allow-other-keys) (let ((sh (string-append (assoc-ref inputs "bash") @@ -136,6 +170,7 @@ `(("texinfo" ,texinfo) ("dejagnu" ,dejagnu) ("pkg-config" ,pkg-config) + ("guile" ,guile-3.0) ;; cross-compiling ,@(if (target-hurd?) ;; When cross-compiling from x86_64-linux, make sure to use a ;; 32-bit MiG because we assume target i586-pc-gnu. |
