Hi Chadwain,
Did you have a chance to look into this?
Thanks in advance!
Ludo’.
Maxime Devos <maximedevos@telenet.be> skribis:
Toggle quote (41 lines)
> Chadwain Holness schreef op zo 20-02-2022 om 03:11 [-0500]:
>> Hello Maxime, thank you for the suggestion. Is this new patch better in your opinion?
>
> It does look quite a bit better, but there's a cross-compilation
> problem now: when cross-compiling, 'which' looks in the 'native-inputs'
> instead of the 'inputs' (native-inputs = compiled for the architecture
> the build is performed on, inputs = compiled for the architecture
> 'cgdb' will be run on). You can use 'search-input-file' to solve this:
>
> (arguments
> (list
> #:phases
> #~(modify-phases %standard-phases
> (add-after 'unpack 'fix-paths
> (lambda* (#:key inputs #:allow-other-keys)
> (define gdb (search-input-file inputs "bin/gdb"))
> (define sh (search-input-file inputs "bin/sh"))
> (substitute* "lib/util/fork_util.cpp"
> (("GDB = \"gdb\"") (string-append "GDB = \"" gdb))
> (("/bin/sh") sh)))))))
>
>> (inputs
>> - (list ncurses readline))
>> + (list ncurses readline gdb))
>
> You are using a 'sh' from 'inputs' in 'fix-paths', so the package
> 'bash-minimal' needs to be included, otherwise the build would fail
> when cross-compiling.
>
> ('bash-minimal' is an (implicit) native-input, so the build failure
> would not happen when compiling natively).
>
> To test whether cross-compiling cgdb works, you can try
>
> ./pre-inst-env guix build cgdb --target=aarch64-linux-gnu
>
> (warning: this might build a cross-compiler toolchain first, which can
> take quite some time, and possibly 'gdb' is not cross-compilable!)
>
> Greetings,
> Maxime.