mirror of
https://git.savannah.gnu.org/git/guix.git
synced 2026-04-06 21:20:33 +02:00
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
This commit is contained in:
committed by
Ludovic Courtès
parent
d7e71dad6d
commit
1d9cf8758e
@@ -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.
|
||||
|
||||
Reference in New Issue
Block a user