"Thompson, David" <dthomps...@worcester.edu> skribis:

> On Thu, Apr 14, 2016 at 1:25 PM, Ludovic Courtès <l...@gnu.org> wrote:
>> David Thompson <dthomps...@worcester.edu> skribis:
>>
>>> * gnu/packages/avr.scm (avr-gcc): New variable.
>>
>> [...]
>>
>>> +          `(modify-phases ,phases
>>> +             ;; Without a working multilib build, the resulting GCC lacks
>>> +             ;; support for nearly every AVR chip.
>>> +             (add-after 'unpack 'fix-genmultilib
>>> +               (lambda _
>>> +                 (substitute* "gcc/genmultilib"
>>> +                   (("#!/bin/sh") (string-append "#!" (which "sh"))))
>>
>> Just: (patch-shebang "gcc/genmultilib").
>>
>> I think the reason this file is not automatically patched during the
>> ‘patch-shebangs’ phase is because it does not have the executable bit.
>> Would be worth mentioning in a comment IMO.
>>
>> What’s unclear, though, is why the invalid shebang is a problem at all
>> given that this file is not executable anyway.  Thoughts?
>
> It turns out that gcc/genmultilib is a script that generates many
> scripts, and thus has many instances of #!/bin/sh in it.  So,
> patch-shebang was inadequate for the job and I've stuck with the
> original solution.

OK.

>>> +      (native-search-paths
>>> +       (list (search-path-specification
>>> +              (variable "CROSS_CPATH")
>>> +              (files '("avr/include")))
>>> +             (search-path-specification
>>> +              (variable "CROSS_LIBRARY_PATH")
>>> +              (files '("avr/lib"))))))))
>>
>> That these go in ‘native-search-paths’ feels wrong.
>>
>> But I think it’s because we’re trying to build avr-libc like a “normal”
>> package with a cross-toolchain as its input.
>>
>> Instead, the “intended use” is that libc is treated specially as in
>> ‘cross-libc’ in cross-base.scm.  Probably we need to:
>>
>>   1. Remove #:configure-flags and ‘native-inputs’ from the ‘avr-libc’
>>      package.
>>
>>   2. Add (supported-systems '()) or similar to the ‘avr-libc’ package.
>>
>>   3. Use something similar to ‘cross-libc’ but that uses avr-libc
>>      instead of glibc in cross-base.scm, thus setting CROSS_CPATH and
>>      CROSS_LIBRARY_PATH appropriately.
>
> As explained in the thread about the avr-toolchain, this is a special
> scenario because the only use for avr-gcc is to cross-compile and you
> cannot actually port any part of Guix to the AVR architecture.  Maybe
> there's still something to revisit later, but having a working AVR
> toolchain is a big win for now.

Yes, makes sense.

> Pushed with the other issues addressed.  Thanks!

Thanks for this patch series!

Ludo’.

Reply via email to