--- Begin Message ---
Subject: |
Incorrect Native *_PATH's when linux source is not a tarball. |
Date: |
Tue, 21 Feb 2023 15:45:42 -0500 |
This is a bit of a convoluted bug but here it goes. The title may not be
entirely correct.
When ~set-paths~ is called it adds all of the inputs to ~C_INCLUDE_PATH~
and friends /except/ the source input.
#+BEGIN_SRC scheme
(define-public linux-zynq
(customize-linux #:name "linux-zynq"
#:linux linux-libre-5.15
#:source (package-source linux-xlnx-5.15.0)
#:defconfig "xilinx_zynq_defconfig"))
#+END_SRC
However, below is a snippet from the `set-paths` phase targeting
arm-linux-gnueabihf
>>>
environment variable `C_INCLUDE_PATH' set to
`/gnu/store/1y1ycvzgg363ih16qs5nhmlsmn77kjl7-git-checkout/include:/gnu/store/plr00nij45964cyy7sfcg5rcsi8hks0h-openssl-1.1.1l/include:/gnu/store/jp6027624wl2f4xx5yz1vjzd2b9yvwl9-elfutils-0.183/include:/gnu/store/b4mskl4py1zqmxdy1v260r3h6x5p92fm-flex-2.6.4/include:/gnu/store/fwbiihd2sbhai63y1pvvdh0f2bakfzrf-gmp-6.2.1/include:/gnu/store/pmq05n0q25v4qjyibxfrp53v4391k7vh-mpfr-4.1.0/include:/gnu/store/ba02g5xkqiss6s5z8mbj9cvkal6l7b9g-mpc-1.2.1/include:/gnu/store/pdf9myikb674k906x70g3yzs72f61qm3-gcc-cross-arm-linux-gnueabihf-10.3.0/include:/gnu/store/0na4hgqh61fpc73dj9qgval3wdbsr393-binutils-cross-arm-linux-gnueabihf-2.37/include:/gnu/store/s3hl12jxz9ybs7nsy7kq7ybzz7qnzmsg-bzip2-1.0.8/include:/gnu/store/c8isj4jq6knv0icfgr43di6q3nvdzkx7-xz-5.2.5/include:/gnu/store/4ic6244i3ca4b4rxc2wnrgllsidyishv-file-5.39/include:/gnu/store/690qz3fg334dpwn3pn6k59n4wc943p2b-gawk-5.1.0/include:/gnu/store/55cbpsi18mahg131nmiya6km5b4mscfa-make-4.3/include:/gnu/store/rc781v4k0drhaqn90xfwwpspki5x0bvf-binutils-2.37/include:/gnu/store/069aq2v993kpc41yabp5b6vm4wb9jkhg-gcc-10.3.0/include:/gnu/store/5h2w4qi9hk1qzzgi1w83220ydslinr4s-glibc-2.33/include:/gnu/store/6mjww4iz4xdan74d5bbjfh7il8rngfkk-linux-libre-headers-5.10.35/include'
<<<
This only happens when source is a git repository, and only when
building the kernel.
When a tarball is used this does not happen because it is not a directory in
the store.
When other packages with git sources are cross compiled their
C_INCLUDE_PATH does not contain the sources.
During the configure phase some includes in the kconfig program end up
linking there way back to =/gnu/store/...git-checkout/include/linux/=
because it is top priority in `C_INCLUDE_PATH`.
- Mitchell
--- End Message ---
--- Begin Message ---
Subject: |
Re: bug#61698: Incorrect Native *_PATH's when linux source is not a tarball. |
Date: |
Thu, 02 Mar 2023 16:23:16 -0500 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/28.2 (gnu/linux) |
Hello Mitchell,
Mitchell Schmeisser <mitchellschmeisser@librem.one> writes:
> This is a bit of a convoluted bug but here it goes. The title may not be
> entirely correct.
>
> When ~set-paths~ is called it adds all of the inputs to ~C_INCLUDE_PATH~
> and friends /except/ the source input.
>
> #+BEGIN_SRC scheme
> (define-public linux-zynq
> (customize-linux #:name "linux-zynq"
> #:linux linux-libre-5.15
> #:source (package-source linux-xlnx-5.15.0)
> #:defconfig "xilinx_zynq_defconfig"))
> #+END_SRC
>
> However, below is a snippet from the `set-paths` phase targeting
> arm-linux-gnueabihf
[...]
> This only happens when source is a git repository, and only when
> building the kernel.
> When a tarball is used this does not happen because it is not a directory in
> the store.
This has already been fixed on the core-updates branch [0], which is
scheduled for a merge in a not too distant future. See commit
6454208222 ("build: gnu-build-system: Remove source from native
inputs.").
Closing.
--
Thanks,
Maxim
--- End Message ---