mbox

[bug#41579,0/2] Introduce 'cc-for-target'.

Message ID 20200528171137.29146-1-marius@gnu.org
Headers show

Message

Marius Bakke May 28, 2020, 5:11 p.m. UTC
Many packages specify a compiler "manually", which leads to this stanza
in order to work when cross-compiling:

  (string-append "CC="
                 (let ((target ,(%current-target-system)))
                   (if target
                       (string-append target "-gcc")
                       "gcc")))

To reduce duplication, the following patch introduces a 'cc-for-target'
procedure, so one can instead do:

  (string-append "CC=" ,(cc-for-target))

...and it will DTRT.

Thoughts?

Marius Bakke (2):
  utils: Add 'cc-for-target'.
  gnu: Use 'cc-for-target' instead of custom implementations.

 gnu/packages/compression.scm |   7 +-
 gnu/packages/linux.scm       |  22 ++----
 gnu/packages/mail.scm        |   5 +-
 gnu/packages/music.scm       |   6 +-
 gnu/packages/radio.scm       |   7 +-
 gnu/packages/suckless.scm    | 134 +++++++++++------------------------
 guix/utils.scm               |   9 ++-
 7 files changed, 60 insertions(+), 130 deletions(-)

Comments

Mathieu Othacehe May 28, 2020, 6:43 p.m. UTC | #1
Hello Marius,

> To reduce duplication, the following patch introduces a 'cc-for-target'
> procedure, so one can instead do:
>
>   (string-append "CC=" ,(cc-for-target))
>
> ...and it will DTRT.

This is definitely a nice improvement! Sometimes the issue also extends
to AR and LD for instance.

This has been discussed here[1]. Maybe we should deal with that directly
in the build system, and provide suitable default values for CC, AR, LD
& friends, when cross-compiling.

Anyway, your patch is already a big improvement and it LGTM.

Thanks,

Mathieu

[1]: https://lists.gnu.org/archive/html/guix-patches/2020-05/msg00423.html
Marius Bakke May 29, 2020, 1:58 p.m. UTC | #2
Mathieu Othacehe <othacehe@gnu.org> writes:

> Hello Marius,
>
>> To reduce duplication, the following patch introduces a 'cc-for-target'
>> procedure, so one can instead do:
>>
>>   (string-append "CC=" ,(cc-for-target))
>>
>> ...and it will DTRT.
>
> This is definitely a nice improvement! Sometimes the issue also extends
> to AR and LD for instance.
>
> This has been discussed here[1]. Maybe we should deal with that directly
> in the build system, and provide suitable default values for CC, AR, LD
> & friends, when cross-compiling.

That makes sense.  Can't think of any cases where setting these would
have an adverse effect, though I'm sure plenty of stuff will break.  ;-)

> Anyway, your patch is already a big improvement and it LGTM.

Thanks for checking, pushed!