Subject: bug#30756: GCC >= 6 '-isystem' and C_INCLUDE_PATH behavior changed, breaking

From: Ludovic Courtès <[email-masked]>
Date: Thu, 23 Jan 2020 21:45:54 +0100

Hello!

Thanks for investigating.

Maxim Cournoyer <[email-masked]> skribis:

> It'd be very cool to embed arbitrary logic such as sorting, filtering,
> or whatever else we need doing directly in a search path specification
> :-).  Do you thing this could be done?  Perhaps Gexps could be useful
> for this?

No, that sounds pretty unreasonable to me.  :-)

However, I’m sure we should be able to sort things appropriately in
guix/build-system/gnu.scm and/or in ‘%final-inputs’, no?

‘%final-inputs’ order actually looks good:

--8<---------------cut here---------------start------------->8---
scheme@(gnu packages commencement)> (map car %final-inputs)
$2 = ("tar" "gzip" "bzip2" "xz" "file" "diffutils" "patch" "findutils" "gawk" "sed" "grep" "coreutils" "make" "bash" "ld-wrapper" "binutils" "gcc" "libc" "libc:static" "locales")
--8<---------------cut here---------------end--------------->8---

But then it breaks when we add everything:

--8<---------------cut here---------------start------------->8---
scheme@(guile-user)> (map car (bag-transitive-inputs (package->bag coreutils)))
$5 = ("source" "perl" "tar" "gzip" "bzip2" "xz" "file" "diffutils" "patch" "findutils" "gawk" "sed" "grep" "coreutils" "make" "bash" "ld-wrapper" "binutils" "gcc" "libc" "libc:static" "locales" "acl" "gmp" "libcap" "kernel-headers")
--8<---------------cut here---------------end--------------->8---

Here acl, gmp, and libcap should be before libc and all
(‘bag-transitive-inputs’ is used by ‘bag->derivation’.)

So I think we should arrange to have the right order in
‘bag->derivation’.

WDYT?

Ludo’.