GNU bug report logs - #66263
[PATCH 00/23] guix: Add avr as a platform.

Previous Next

Package: guix-patches;

Reported by: Jean-Pierre De Jesus DIAZ <jean <at> foundationdevices.com>

Date: Fri, 29 Sep 2023 09:15:02 UTC

Severity: normal

Tags: moreinfo, patch

Done: Efraim Flashner <efraim <at> flashner.co.il>

Bug is archived. No further changes may be made.

Full log


Message #119 received at 66263 <at> debbugs.gnu.org (full text, mbox):

From: Maxim Cournoyer <maxim.cournoyer <at> gmail.com>
To: Jean-Pierre De Jesus DIAZ <jean <at> foundationdevices.com>
Cc: 66263 <at> debbugs.gnu.org, vagrant <at> debian.org, efraim <at> flashner.co.il
Subject: Re: [bug#66263] [PATCH 14/23] gnu: cross-gcc-arguments: Handle AVR
 target.
Date: Thu, 05 Oct 2023 10:59:39 -0400
Hi,

Jean-Pierre De Jesus DIAZ <jean <at> foundationdevices.com> writes:

> * gnu/packages/cross-base.scm (cross-gcc-arguments): Handle AVR target.
> ---
>  gnu/packages/cross-base.scm | 25 ++++++++++++++++++++-----
>  1 file changed, 20 insertions(+), 5 deletions(-)
>
> diff --git a/gnu/packages/cross-base.scm b/gnu/packages/cross-base.scm
> index fc21e7c4fd..10d912b755 100644
> --- a/gnu/packages/cross-base.scm
> +++ b/gnu/packages/cross-base.scm
> @@ -204,23 +204,38 @@ (define (cross-gcc-arguments target xgcc libc)
>                                  #~("--enable-multilib")
>                                  #~())
>  
> +                         #$@(if (and libc (target-avr? target))
> +                                #~("--enable-languages=c,c++"
> +                                   (string-append "--with-native-system-header-dir="
> +                                                  #$libc "/avr/include" ))
>                                  #~()))
>  
>                     (remove
>                       (lambda (flag)
>                         (or (and (string-match "--enable-languages.*" flag)
>                                  #$libc)
> +                           (and (string-match "--with-native-system-header-dir.*"
> +                                              flag)
> +                                #$libc
> +                                #$(target-avr? target))
>                             (and (string-match "--disable-multilib" flag)
>                                  #$(target-avr? target))))
>                       #$flags)))
>          ((#:make-flags flags)
> -         (if libc
> -             #~(let ((libc (assoc-ref %build-inputs "libc")))
> +         (cond
> +           ((and (target-avr? target) libc)
> +            #~(let ((libc (assoc-ref %build-inputs "libc")))

While at it, you may want to use the more modern #$(this-package-input
"libc")

>                  ;; FLAGS_FOR_TARGET are needed for the target libraries to receive
>                  ;; the -Bxxx for the startfiles.
> -                 (cons (string-append "FLAGS_FOR_TARGET=-B" libc "/lib")
> -                       #$flags))
> -             flags))
> +                (cons (string-append "FLAGS_FOR_TARGET=-B" libc "/avr/lib")
> +                      #$flags)))
> +           (libc
> +            #~(let ((libc (assoc-ref %build-inputs "libc")))
> +                ;; FLAGS_FOR_TARGET are needed for the target libraries to receive
> +                ;; the -Bxxx for the startfiles.
> +                (cons (string-append "FLAGS_FOR_TARGET=-B" libc "/lib")
> +                      #$flags)))
> +           (else flags)))

The only thing that needs to be made conditional here is the "/lib" vs
"/avr/lib" prefix, so you could let-bind a LIB-PREFIX variable
conditionally and keep the rest shared.

-- 
Thanks,
Maxim




This bug report was last modified 1 year and 222 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.